summaryrefslogtreecommitdiffstats
path: root/tests/bugs/bug-1087203.t
blob: 8926274dac71e2418432f380d0572b2765bfb61f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#!/bin/bash

. $(dirname $0)/../include.rc
. $(dirname $0)/../volume.rc
. $(dirname $0)/../snapshot.rc
. $(dirname $0)/../cluster.rc

function config_validate ()
{
        local var=$1
        $CLI_1 snapshot config | grep "^$var" | sed 's/.*: //'
}

function snap_create ()
{
        local limit=$1;
        local i=0
        while [ $i -lt $limit ]
        do
                $CLI_1 snapshot create snap$i ${V0}
                i=$[$i+1]
        done
}

function snap_delete ()
{
        local limit=$1;
        local i=0
        while [ $i -lt $limit ]
        do
                $CLI_1 snapshot delete snap$i
                i=$[$i+1]
        done
}

function get_snap_count ()
{
        $CLI_1 snapshot list | wc -l
}

function get_volume_info ()
{
        local var=$1
        $CLI_1 volume info $V0 | grep "^$var" | sed 's/.*: //'
}

function is_snapshot_present ()
{
        $CLI_1 snapshot list
}

cleanup;

TEST verify_lvm_version
TEST launch_cluster 2
TEST setup_lvm 2

TEST $CLI_1 peer probe $H2;
EXPECT_WITHIN $PROBE_TIMEOUT 1 peer_count;

TEST $CLI_1 volume create $V0 $H1:$L1 $H2:$L2
EXPECT "$V0" get_volume_info 'Volume Name';
EXPECT 'Created' get_volume_info 'Status';

TEST $CLI_1 volume start $V0
EXPECT 'Started' get_volume_info 'Status';


# Setting system limit
TEST $CLI_1 snapshot config snap-max-hard-limit 100

# Volume limit cannot exceed system limit, as limit is set to 100,
# this should fail.
TEST ! $CLI_1 snapshot config $V0 snap-max-hard-limit 101

# Following are the invalid cases
TEST ! $CLI_1 snapshot config $V0 snap-max-hard-limit a10
TEST ! $CLI_1 snapshot config snap-max-hard-limit 10a
TEST ! $CLI_1 snapshot config snap-max-hard-limit 10%
TEST ! $CLI_1 snapshot config snap-max-soft-limit 50%1
TEST ! $CLI_1 snapshot config snap-max-soft-limit 0111
TEST ! $CLI_1 snapshot config snap-max-hard-limit OXA
TEST ! $CLI_1 snapshot config snap-max-hard-limit 11.11
TEST ! $CLI_1 snapshot config snap-max-soft-limit 50%
TEST ! $CLI_1 snapshot config snap-max-hard-limit -100
TEST ! $CLI_1 snapshot config snap-max-soft-limit -90

# Soft limit cannot be assigned to volume
TEST ! $CLI_1 snapshot config $V0 snap-max-soft-limit 10

# Valid case
TEST $CLI_1 snapshot config snap-max-soft-limit 50
TEST $CLI_1 snapshot config $V0 snap-max-hard-limit 10

# Validating auto-delete feature
# Make sure auto-delete is disabled by default
EXPECT 'disable' config_validate 'auto-delete'

TEST $CLI_1 snapshot config snap-max-hard-limit 6
TEST $CLI_1 snapshot config snap-max-soft-limit 50

# Create 4 snapshots
TEST snap_create 4;

# If auto-delete is disabled then oldest snapshot
# should not be deleted automatically.
EXPECT '4' get_snap_count;

TEST snap_delete 4;

# After all those 4 snaps are deleted, There will not be any snaps present
EXPECT 'No snapshots present' is_snapshot_present;

TEST $CLI_1 snapshot config auto-delete enable
# auto-delete is already enabled, Hence expect a failure.
TEST ! $CLI_1 snapshot config auto-delete enable
EXPECT 'enable' config_validate 'auto-delete'

# Try to create 4 snaps again, As auto-delete is enabled
# oldest snap should be deleted and snapcount should be 3

TEST snap_create 4;
EXPECT '3' get_snap_count;

TEST $CLI_1 snapshot config auto-delete disable
EXPECT 'disable' config_validate 'auto-delete'

cleanup;