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
|
#!/bin/bash
. $(dirname $0)/../include.rc
. $(dirname $0)/../volume.rc
. $(dirname $0)/../cluster.rc
. $(dirname $0)/../snapshot.rc
. $(dirname $0)/../snapshot_zfs.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 $1 $2 no-timestamp&
PID_1=$!
wait $PID_1
}
function delete_snapshot() {
$CLI_1 snapshot delete $1 &
PID_1=$!
wait $PID_1
}
if ! verify_zfs_version; then
SKIP_TESTS
exit 0;
fi
cleanup;
TEST verify_zfs_version;
#Create cluster with 3 nodes
TEST launch_cluster 3;
TEST setup_zfs 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 $V0 'Status';
EXPECT 'Created' volinfo_field $V1 'Status';
start_volumes 2
EXPECT 'Started' volinfo_field $V0 'Status';
EXPECT 'Started' volinfo_field $V1 'Status';
TEST $CLI_1 snapshot config activate-on-create enable
#Snapshot Operations
create_snapshots ${V0}_snap ${V0};
create_snapshots ${V1}_snap ${V1};
EXPECT 'Started' snapshot_status ${V0}_snap;
EXPECT 'Started' snapshot_status ${V1}_snap;
sleep 5
TEST $CLI_1 snapshot clone ${V0}_clone ${V0}_snap
TEST $CLI_1 snapshot clone ${V1}_clone ${V1}_snap
EXPECT 'Created' volinfo_field ${V0}_clone 'Status';
EXPECT 'Created' volinfo_field ${V1}_clone 'Status';
TEST $CLI_1 volume start ${V0}_clone force;
TEST $CLI_1 volume start ${V1}_clone force;
EXPECT 'Started' volinfo_field ${V0}_clone 'Status';
EXPECT 'Started' volinfo_field ${V1}_clone 'Status';
TEST glusterfs -s $H1 --volfile-id=/${V0}_clone $M0
TEST glusterfs -s $H2 --volfile-id=/${V1}_clone $M1
TEST touch $M0/file1
TEST touch $M1/file1
TEST echo "Hello world" $M0/file1
TEST echo "Hello world" $M1/file1
EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $M0
EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $M1
TEST kill_glusterd 2;
sleep 15
TEST $glusterd_2;
sleep 15
EXPECT_WITHIN $PROBE_TIMEOUT 2 peer_count;
EXPECT_WITHIN $PROCESS_UP_TIMEOUT 'Started' volinfo_field ${V0}_clone 'Status';
EXPECT_WITHIN $PROCESS_UP_TIMEOUT 'Started' volinfo_field ${V1}_clone 'Status';
TEST $CLI_1 volume stop ${V0}_clone
TEST $CLI_1 volume stop ${V1}_clone
TEST $CLI_1 volume delete ${V0}_clone
TEST $CLI_1 volume delete ${V1}_clone
TEST $CLI_1 snapshot clone ${V0}_clone ${V0}_snap
TEST $CLI_1 snapshot clone ${V1}_clone ${V1}_snap
EXPECT 'Created' volinfo_field ${V0}_clone 'Status';
EXPECT 'Created' volinfo_field ${V1}_clone 'Status';
#Clean up
stop_force_volumes 2
EXPECT_WITHIN $CONFIG_UPDATE_TIMEOUT 'Stopped' volinfo_field $V0 'Status';
EXPECT_WITHIN $CONFIG_UPDATE_TIMEOUT 'Stopped' volinfo_field $V1 'Status';
TEST delete_snapshot ${V0}_snap
TEST delete_snapshot ${V1}_snap
TEST ! snapshot_exists 1 ${V0}_snap
TEST ! snapshot_exists 1 ${V1}_snap
delete_volumes 2
EXPECT_WITHIN $CONFIG_UPDATE_TIMEOUT "N" volume_exists $V0
EXPECT_WITHIN $CONFIG_UPDATE_TIMEOUT "N" volume_exists $V1
cleanup;
|