diff options
Diffstat (limited to 'tests/00-geo-rep')
-rw-r--r-- | tests/00-geo-rep/00-georep-verify-non-root-setup.t | 27 | ||||
-rw-r--r-- | tests/00-geo-rep/00-georep-verify-setup.t | 3 | ||||
-rw-r--r-- | tests/00-geo-rep/georep-upgrade.t | 79 |
3 files changed, 99 insertions, 10 deletions
diff --git a/tests/00-geo-rep/00-georep-verify-non-root-setup.t b/tests/00-geo-rep/00-georep-verify-non-root-setup.t index 27ed82732c9..a55fd3e5e6a 100644 --- a/tests/00-geo-rep/00-georep-verify-non-root-setup.t +++ b/tests/00-geo-rep/00-georep-verify-non-root-setup.t @@ -5,7 +5,7 @@ . $(dirname $0)/../geo-rep.rc . $(dirname $0)/../env.rc -SCRIPT_TIMEOUT=500 +SCRIPT_TIMEOUT=600 ### Basic Non-root geo-rep setup test with Distribute Replicate volumes @@ -144,12 +144,15 @@ TEST pidof glusterd; TEST $CLI volume create $META_VOL replica 3 $H0:$B0/${META_VOL}{1,2,3}; TEST $CLI volume start $META_VOL TEST mkdir -p $META_MNT +EXPECT_WITHIN ${PROCESS_UP_TIMEOUT} "3" brick_count ${META_VOL} TEST glusterfs -s $H0 --volfile-id $META_VOL $META_MNT ##Mount master +EXPECT_WITHIN ${PROCESS_UP_TIMEOUT} "4" brick_count $GMV0 TEST glusterfs -s $H0 --volfile-id $GMV0 $M0 ##Mount slave +EXPECT_WITHIN ${PROCESS_UP_TIMEOUT} "4" brick_count $GSV0 TEST glusterfs -s $H0 --volfile-id $GSV0 $M1 ## Check status of mount-broker @@ -189,6 +192,8 @@ TEST gluster-georep-sshkey generate TEST $GEOREP_CLI $master $slave_url create push-pem +#check for session creation +EXPECT_WITHIN $GEO_REP_TIMEOUT 4 check_status_non_root "Created" #Config gluster-command-dir TEST $GEOREP_CLI $master $slave_url config gluster-command-dir ${GLUSTER_CMD_DIR} @@ -240,21 +245,25 @@ TEST ! $GEOREP_CLI $master $slave_url config ssh-port 22a TEST $GEOREP_CLI $master $slave config ssh-port 22 #Hybrid directory rename test BZ#1763439 + TEST $GEOREP_CLI $master $slave_url config change_detector xsync -mkdir ${master_mnt}/dir1 -mkdir ${master_mnt}/dir1/dir2 -mkdir ${master_mnt}/dir1/dir3 -mkdir ${master_mnt}/hybrid_d1 +#verify master and slave mount -EXPECT_WITHIN $GEO_REP_TIMEOUT 0 directory_ok ${slave_mnt}/hybrid_d1 -EXPECT_WITHIN $GEO_REP_TIMEOUT 0 directory_ok ${slave_mnt}/dir1 -EXPECT_WITHIN $GEO_REP_TIMEOUT 0 directory_ok ${slave_mnt}/dir1/dir2 -EXPECT_WITHIN $GEO_REP_TIMEOUT 0 directory_ok ${slave_mnt}/dir1/dir3 +EXPECT_WITHIN $CHECK_MOUNT_TIMEOUT "^1$" check_mounted ${master_mnt} +EXPECT_WITHIN $CHECK_MOUNT_TIMEOUT "^1$" check_mounted ${slave_mnt} + +#Create test data for hybrid crawl +TEST mkdir ${master_mnt}/dir1 +TEST mkdir ${master_mnt}/dir1/dir2 +TEST mkdir ${master_mnt}/dir1/dir3 +TEST mkdir ${master_mnt}/hybrid_d1 mv ${master_mnt}/hybrid_d1 ${master_mnt}/hybrid_rn_d1 mv ${master_mnt}/dir1/dir2 ${master_mnt}/rn_dir2 mv ${master_mnt}/dir1/dir3 ${master_mnt}/dir1/rn_dir3 +#Verify hybrid crawl data on slave +EXPECT_WITHIN $GEO_REP_TIMEOUT 0 directory_ok ${slave_mnt}/dir1 EXPECT_WITHIN $GEO_REP_TIMEOUT 0 directory_ok ${slave_mnt}/hybrid_rn_d1 EXPECT_WITHIN $GEO_REP_TIMEOUT 0 directory_ok ${slave_mnt}/rn_dir2 EXPECT_WITHIN $GEO_REP_TIMEOUT 0 directory_ok ${slave_mnt}/dir1/rn_dir3 diff --git a/tests/00-geo-rep/00-georep-verify-setup.t b/tests/00-geo-rep/00-georep-verify-setup.t index cdfccd35db5..0d46c04102d 100644 --- a/tests/00-geo-rep/00-georep-verify-setup.t +++ b/tests/00-geo-rep/00-georep-verify-setup.t @@ -5,7 +5,8 @@ . $(dirname $0)/../geo-rep.rc . $(dirname $0)/../env.rc -SCRIPT_TIMEOUT=300 +SCRIPT_TIMEOUT=400 +GEO_REP_TIMEOUT=200 ##Cleanup and start glusterd cleanup; diff --git a/tests/00-geo-rep/georep-upgrade.t b/tests/00-geo-rep/georep-upgrade.t new file mode 100644 index 00000000000..7523068ed50 --- /dev/null +++ b/tests/00-geo-rep/georep-upgrade.t @@ -0,0 +1,79 @@ +#!/bin/bash + +. $(dirname $0)/../include.rc + +SCRIPT_TIMEOUT=500 + +############################################################################################### +#Before upgrade +############################################################################################### +brick=/bricks/brick1 +epoch1=$(date '+%s') +sleep 1 +epoch2=$(date '+%s') +mkdir -p /bricks/brick1/.glusterfs/changelogs/htime +mkdir -p /bricks/brick1/.glusterfs/changelogs + +#multiple htime files(changelog enable/disable scenario) +TEST touch /bricks/brick1/.glusterfs/changelogs/htime/HTIME.$epoch1 +TEST touch /bricks/brick1/.glusterfs/changelogs/htime/HTIME.$epoch2 + +#changelog files +TEST touch /bricks/brick1/.glusterfs/changelogs/CHANGELOG.$epoch1 +TEST touch /bricks/brick1/.glusterfs/changelogs/CHANGELOG.$epoch2 + +htime_file1=/bricks/brick1/.glusterfs/changelogs/htime/HTIME.$epoch1 +htime_file2=/bricks/brick1/.glusterfs/changelogs/htime/HTIME.$epoch2 + +#data inside htime files before upgrade +data1=/bricks/brick1/.glusterfs/changelogs/CHANGELOG.$epoch1 +data2=/bricks/brick1/.glusterfs/changelogs/CHANGELOG.$epoch2 + +#data inside htime files after upgrade +updated_data1=/bricks/brick1/.glusterfs/changelogs/`echo $(date '+%Y/%m/%d')`/CHANGELOG.$epoch1 +updated_data2=/bricks/brick1/.glusterfs/changelogs/`echo $(date '+%Y/%m/%d')`/CHANGELOG.$epoch2 + +echo -n $data1>$htime_file1 +echo -n $data2>$htime_file2 + +echo "Before upgrade:" +EXPECT '1' echo $(grep $data1 $htime_file1 | wc -l) +EXPECT '1' echo $(grep $data2 $htime_file2 | wc -l) + +EXPECT '1' echo $(ls /bricks/brick1/.glusterfs/changelogs/CHANGELOG.$epoch1 | wc -l) +EXPECT '1' echo $(ls /bricks/brick1/.glusterfs/changelogs/htime/HTIME.$epoch1 | wc -l) +EXPECT '1' echo $(ls /bricks/brick1/.glusterfs/changelogs/CHANGELOG.$epoch2 | wc -l) +EXPECT '1' echo $(ls /bricks/brick1/.glusterfs/changelogs/htime/HTIME.$epoch2 | wc -l) +############################################################################################### +#Upgrade +############################################################################################### +### This needed to be fixed as this very vague finding a file with name in '/' +### multiple file with same name can exist +### for temp fix picking only 1st result +TEST upgrade_script=$(find / -type f -name glusterfs-georep-upgrade.py -print | head -n 1) +TEST python3 $upgrade_script $brick + +############################################################################################### +#After upgrade +############################################################################################### +echo "After upgrade:" +EXPECT '1' echo $(grep $updated_data1 $htime_file1 | wc -l) +EXPECT '1' echo $(grep $updated_data2 $htime_file2 | wc -l) + +#Check directory structure inside changelogs +TEST ! ls /bricks/brick1/.glusterfs/changelogs/CHANGELOG.$epoch1 +EXPECT '1' echo $(ls /bricks/brick1/.glusterfs/changelogs/htime/HTIME.$epoch1 | wc -l) +EXPECT '1' echo $(ls /bricks/brick1/.glusterfs/changelogs/htime/HTIME.$epoch1.bak | wc -l) +EXPECT '1' echo $(ls /bricks/brick1/.glusterfs/changelogs/`echo $(date '+%Y')` | wc -l) +EXPECT '1' echo $(ls /bricks/brick1/.glusterfs/changelogs/`echo $(date '+%Y/%m')` | wc -l) +EXPECT '2' echo $(ls /bricks/brick1/.glusterfs/changelogs/`echo $(date '+%Y/%m/%d')` | wc -l) +EXPECT '1' echo $(ls /bricks/brick1/.glusterfs/changelogs/`echo $(date '+%Y/%m/%d')`/CHANGELOG.$epoch1 | wc -l) + +TEST ! ls /bricks/brick1/.glusterfs/changelogs/CHANGELOG.$epoch2 +EXPECT '1' echo $(ls /bricks/brick1/.glusterfs/changelogs/htime/HTIME.$epoch2 | wc -l) +EXPECT '1' echo $(ls /bricks/brick1/.glusterfs/changelogs/htime/HTIME.$epoch2.bak | wc -l) +EXPECT '1' echo $(ls /bricks/brick1/.glusterfs/changelogs/`echo $(date '+%Y')` | wc -l) +EXPECT '1' echo $(ls /bricks/brick1/.glusterfs/changelogs/`echo $(date '+%Y/%m')`| wc -l) +EXPECT '1' echo $(ls /bricks/brick1/.glusterfs/changelogs/`echo $(date '+%Y/%m/%d')`/CHANGELOG.$epoch2 | wc -l) + +TEST rm -rf /bricks |