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 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172
|
#!/bin/bash
. $(dirname $0)/../include.rc
. $(dirname $0)/../volume.rc
. $(dirname $0)/../cluster.rc
. $(dirname $0)/../snapshot.rc
V1="patchy2"
function create_volumes() {
$CLI_1 volume create $V0 $H1:$L1 &
PID_1=$!
$CLI_2 volume create $V1 $H2:$L2 $H3:$L3 &
PID_2=$!
wait $PID_1 $PID_2
}
function create_snapshots() {
$CLI_1 snapshot create ${V0}_snap ${V0} no-timestamp &
PID_1=$!
$CLI_1 snapshot create ${V1}_snap ${V1} no-timestamp &
PID_2=$!
wait $PID_1 $PID_2
}
function create_snapshots_with_timestamp() {
$CLI_1 snapshot create ${V0}_snap1 ${V0}&
PID_1=$!
$CLI_1 snapshot create ${V1}_snap1 ${V1}&
PID_2=$!
wait $PID_1 $PID_2
}
function activate_snapshots() {
$CLI_1 snapshot activate ${V0}_snap &
PID_1=$!
$CLI_1 snapshot activate ${V1}_snap &
PID_2=$!
wait $PID_1 $PID_2
}
function deactivate_snapshots() {
$CLI_1 snapshot deactivate ${V0}_snap &
PID_1=$!
$CLI_1 snapshot deactivate ${V1}_snap &
PID_2=$!
wait $PID_1 $PID_2
}
function delete_snapshots() {
$CLI_1 snapshot delete $1 &
PID_1=$!
$CLI_1 snapshot delete $2 &
PID_2=$!
wait $PID_1 $PID_2
}
function restore_snapshots() {
$CLI_1 snapshot restore ${V0}_snap &
PID_1=$!
$CLI_1 snapshot restore ${V1}_snap &
PID_2=$!
wait $PID_1 $PID_2
}
cleanup;
TEST verify_lvm_version;
#Create cluster with 3 nodes
TEST launch_cluster 3;
TEST setup_lvm 3
TEST $CLI_1 peer probe $H2;
TEST $CLI_1 peer probe $H3;
EXPECT_WITHIN $PROBE_TIMEOUT 2 peer_count;
create_volumes
EXPECT 'Created' volinfo_field_1 $V0 'Status';
EXPECT 'Created' volinfo_field_1 $V1 'Status';
start_volumes 2
EXPECT 'Started' volinfo_field_1 $V0 'Status';
EXPECT 'Started' volinfo_field_1 $V1 'Status';
TEST $CLI_1 snapshot config activate-on-create enable
#Snapshot Operations
create_snapshots
EXPECT 'Started' snapshot_status ${V0}_snap;
EXPECT 'Started' snapshot_status ${V1}_snap;
EXPECT '1' volinfo_field_1 $V0 'Snapshot Count';
EXPECT '1' volinfo_field_1 $V1 'Snapshot Count';
EXPECT "1" get-cmd-field-xml "volume info $V0" "snapshotCount"
EXPECT "1" get-cmd-field-xml "volume info $V1" "snapshotCount"
deactivate_snapshots
EXPECT 'Stopped' snapshot_status ${V0}_snap;
EXPECT 'Stopped' snapshot_status ${V1}_snap;
activate_snapshots
EXPECT 'Started' snapshot_status ${V0}_snap;
EXPECT 'Started' snapshot_status ${V1}_snap;
deactivate_snapshots
activate_snapshots
TEST snapshot_exists 1 ${V0}_snap
TEST snapshot_exists 1 ${V1}_snap
TEST $CLI_1 snapshot config $V0 snap-max-hard-limit 100
TEST $CLI_1 snapshot config $V1 snap-max-hard-limit 100
TEST glusterfs -s $H1 --volfile-id=/snaps/${V0}_snap/${V0} $M0
EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $M0
TEST glusterfs -s $H2 --volfile-id=/snaps/${V1}_snap/${V1} $M0
EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $M0
#create timestamp appended snaps
create_snapshots_with_timestamp;
new_name1=`$CLI_1 snapshot list ${V0} | grep ${V0}_snap1`;
new_name2=`$CLI_1 snapshot list ${V1} | grep ${V1}_snap1`;
EXPECT '2' volinfo_field_1 $V0 'Snapshot Count';
EXPECT '2' volinfo_field_1 $V1 'Snapshot Count';
EXPECT "2" get-cmd-field-xml "volume info $V0" "snapshotCount"
EXPECT "2" get-cmd-field-xml "volume info $V1" "snapshotCount"
EXPECT_NOT "{V0}_snap1" echo $new_name1;
EXPECT_NOT "{V1}_snap1" echo $new_name1;
delete_snapshots $new_name1 $new_name2;
EXPECT '1' volinfo_field_1 $V0 'Snapshot Count';
EXPECT '1' volinfo_field_1 $V1 'Snapshot Count';
EXPECT "1" get-cmd-field-xml "volume info $V0" "snapshotCount"
EXPECT "1" get-cmd-field-xml "volume info $V1" "snapshotCount"
#Clean up
stop_force_volumes 2
EXPECT 'Stopped' volinfo_field_1 $V0 'Status';
EXPECT 'Stopped' volinfo_field_1 $V1 'Status';
restore_snapshots
TEST ! snapshot_exists 1 ${V0}_snap
TEST ! snapshot_exists 1 ${V1}_snap
EXPECT '0' volinfo_field_1 $V0 'Snapshot Count';
EXPECT '0' volinfo_field_1 $V1 'Snapshot Count';
EXPECT "0" get-cmd-field-xml "volume info $V0" "snapshotCount"
EXPECT "0" get-cmd-field-xml "volume info $V1" "snapshotCount"
delete_volumes 2
EXPECT_WITHIN $CONFIG_UPDATE_TIMEOUT "N" volume_exists_1 $V0
EXPECT_WITHIN $CONFIG_UPDATE_TIMEOUT "N" volume_exists_1 $V1
cleanup;
|