1
0
mirror of https://github.com/gluster/glusterfs.git synced 2026-02-07 03:48:44 +01:00
Files
glusterfs/tests/basic/volume-snapshot.t
Xavi Hernandez d009ce27bf tests: fix duplicated code (#3475)
There were some duplicated functions inside include.rc with identical
code. These have been removed.

There were also two functions with the same name but with different
implementations in include.rc and snapshot.rc. This worked because
some tests did include the files in different order depending on
what they really need.

To address this, the following changes have been applied:

- Moved the function from snapshot.rc to cluster.rc and renamed it.
- Moved the function from include.rc to volume.rc.
- Fixed include order from all scripts.
- Modified scripts that required the renamed function.

Change-Id: I82d220da4e8cd0148d123a49d96ebefbeb7a954c
Updates: #3469
Signed-off-by: Xavi Hernandez <xhernandez@redhat.com>
2022-05-04 11:44:34 +05:30

173 lines
4.3 KiB
Bash
Executable File

#!/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;