diff options
Diffstat (limited to 'tests/geo-rep.rc')
| -rw-r--r-- | tests/geo-rep.rc | 342 |
1 files changed, 299 insertions, 43 deletions
diff --git a/tests/geo-rep.rc b/tests/geo-rep.rc index cdad4f1cb62..9ba4262730e 100644 --- a/tests/geo-rep.rc +++ b/tests/geo-rep.rc @@ -1,9 +1,70 @@ -GEO_REP_TIMEOUT=60 +GEO_REP_TIMEOUT=120 +CHECK_MOUNT_TIMEOUT=50 +#check for mount point +function check_mounted () { + df | grep $1 | wc -l +} function check_status_num_rows() { local search_key=$1 - $GEOREP_CLI $master $slave status detail | egrep -i "$search_key" | wc -l + $GEOREP_CLI $master $slave status | grep -F "$search_key" | wc -l +} + +function check_fanout_status_num_rows() +{ + local search_key=$1 + $GEOREP_CLI $master status | grep -F "$search_key" | wc -l +} + +function check_fanout_status_detail_num_rows() +{ + local search_key=$1 + $GEOREP_CLI $master status detail | grep -F "$search_key" | wc -l +} + +function check_all_status_num_rows() +{ + local search_key=$1 + $GEOREP_CLI status | grep -F "$search_key" | wc -l +} + +function check_all_status_detail_num_rows() +{ + local search_key=$1 + $GEOREP_CLI status detail | grep -F "$search_key" | wc -l +} + +function verify_checkpoint_met() +{ + local master=$1 + local slave=$2 + $GEOREP_CLI $master $slave status detail| grep -F "Yes" | wc -l +} + +function check_keys_distributed() +{ + local search_key=$(cat /var/lib/glusterd/geo-replication/master_slave_common_secret.pem.pub) + grep -F "$search_key" ~/.ssh/authorized_keys > /dev/null + echo $? +} + +function check_common_secret_file() +{ + stat /var/lib/glusterd/geo-replication/master_slave_common_secret.pem.pub + echo $? +} + +function create_rename_symlink_case() +{ + mkdir ${mastermnt}/MUL_REN_SYMLINK + cd ${mastermnt}/MUL_REN_SYMLINK + mkdir sym_dir1 + ln -s "sym_dir1" sym1 + mv sym1 sym2 + mv sym2 sym3 + mv sym3 sym4 + cd - } function create_data() @@ -22,42 +83,75 @@ function create_data() # GF_FOP_CREATE # GF_FOP_SETATTR - # Regular file - touch ${master_mnt}/${prefix}_f1 + # Regular file + data + echo "HelloWorld!" > ${master_mnt}/${prefix}_f1 touch ${master_mnt}/${prefix}_f2 touch ${master_mnt}/${prefix}_f3 + # non-ascii filename test + echo "Hello non-ascii" > ${master_mnt}/${prefix}_f1_ಸಂತಸ + touch ${master_mnt}/${prefix}_f2_ಸಂತಸ + touch ${master_mnt}/${prefix}_f3_ಸಂತಸ + # dir mkdir ${master_mnt}/${prefix}_d1 mkdir ${master_mnt}/${prefix}_d2 - touch ${master_mnt}/${prefix}_d3 + mkdir ${master_mnt}/${prefix}_d3 + + # non-ascii dir and filename test + mkdir ${master_mnt}/${prefix}_d1_ನನ್ನ + mkdir ${master_mnt}/${prefix}_d2_ಸಂತಸ + mkdir ${master_mnt}/${prefix}_d3_ಸಂತಸ + echo "Hello non-ascii" > ${master_mnt}/${prefix}_d1_ನನ್ನ/ಸಂತಸ - # Hardlink + # Hardlink + non-ascii name ln ${master_mnt}/${prefix}_f1 ${master_mnt}/${prefix}_hl1 + ln ${master_mnt}/${prefix}_f1 ${master_mnt}/${prefix}_hl1_ಸಂತಸ # Symlink cd ${master_mnt} ln -s ${prefix}_f1 ${prefix}_sl1 + ln -s ${prefix}_f1 ${prefix}_sl1_ಸಂತಸ cd - - # data - echo "HelloWorld!" >> ${master_mnt}/${prefix}_f1 - # UNLINK rm ${master_mnt}/${prefix}_f2 + rm ${master_mnt}/${prefix}_f2_ಸಂತಸ # RMDIR rmdir ${master_mnt}/${prefix}_d2 + rmdir ${master_mnt}/${prefix}_d2_ಸಂತಸ # Rename - File mv ${master_mnt}/${prefix}_f3 ${master_mnt}/${prefix}_f4 + mv ${master_mnt}/${prefix}_f3_ಸಂತಸ ${master_mnt}/${prefix}_f4_ಸಂತಸ # Rename - Dir mv ${master_mnt}/${prefix}_d3 ${master_mnt}/${prefix}_d4 + mv ${master_mnt}/${prefix}_d3_ಸಂತಸ ${master_mnt}/${prefix}_d4_ಸಂತಸ # chown touch ${master_mnt}/${prefix}_chown_f1 chown 1000:1000 ${master_mnt}/${prefix}_chown_f1 + touch ${master_mnt}/${prefix}_chown_f1_ಸಂತಸ + chown 1000:1000 ${master_mnt}/${prefix}_chown_f1_ಸಂತಸ +} + +function create_data_hang() +{ + prefix=$1 + mkdir ${master_mnt}/${prefix} + cd ${master_mnt}/${prefix} + # ~1k files is required with 1 sync-job and hang happens if + # stderr buffer of tar/ssh executed with Popen is full (i.e., 64k). + # 64k is hit when ~800 files were not found while syncing data + # from master. So around 1k files is required to hit the condition. + for i in {1..1000} + do + echo "test data" > file$i + mv -f file$i file + done + cd - } function chown_file_ok() @@ -92,17 +186,20 @@ function hardlink_file_ok() orig_inode=$(stat --format "%i" "$orig_file") rc=$? - if test $rc != 0; then echo $rc; fi - - link_inode=$(stat --format "%i" "$link_file") - rc=$? - if test $rc != 0; then echo $rc; fi - - if test $orig_inode != $link_inode - then - echo 1 + if test $rc != 0; then + echo $rc else - echo 0 + link_inode=$(stat --format "%i" "$link_file") + rc=$? + if test $rc != 0; then + echo $rc + else + if test $orig_inode != $link_inode; then + echo 1 + else + echo 0 + fi + fi fi } @@ -113,8 +210,7 @@ function data_ok() data2=$(cat $path) echo "data1:$data1" echo "data2:$data2" - if test "X$data1" != "X$data2" - then + if test "X$data1" != "X$data2"; then echo 1 else echo 0 @@ -125,7 +221,8 @@ function arequal_checksum() { master=$1 slave=$2 - diff <(arequal-checksum -p $master) <(arequal-checksum -p $slave) | wc -l + ret=$(diff <(arequal-checksum -p $master) <(arequal-checksum -p $slave) | wc -l) + echo x$ret } function symlink_ok() @@ -134,38 +231,62 @@ function symlink_ok() local symlink_file=$2 local file_type=$(stat --format "%F" "$symlink_file") - if test "X$file_type" != "Xsymbolic link"; then echo 1;else echo 0; fi + if test "X$file_type" != "Xsymbolic link"; then + echo 1 + else + local fname=$(readlink $symlink_file) + if test "X$fname" != "X$orig_file_name"; then + echo 2 + else + echo 0 + fi + fi - local fname=$(readlink $symlink_file) - if test "X$fname" != "X$orig_file_name"; then echo 1;else echo 0; fi } -function rename_ok() +function rename_file_ok() { old_name=$1 new_name=$2 - if [ -f $old_name ] - then + if [ -f $old_name ]; then echo 1 + elif [ ! -f $new_name ]; then + echo 2 + else + echo 0 fi +} + +function rename_dir_ok() +{ + old_name=$1 + new_name=$2 - if [ ! -f $new_name ] - then + if [ -d $old_name ]; then echo 1 + elif [ ! -d $new_name ]; then + echo 2 + else + echo 0 fi - echo 0 } function create_georep_session() { $CLI system:: execute gsec_create rc=$? - if test $rc != 0; then echo $rc; fi - $CLI volume geo-rep $master $slave create push-pem - rc=$? - if test $rc != 0; then echo $rc; fi - echo 0 + if test $rc != 0; then + echo $rc + else + $CLI volume geo-rep $master $slave create push-pem + rc=$? + if test $rc != 0; then + echo $rc + else + echo 0 + fi + fi } # logrotate_simulate should be called (rotate_count + 1) times to cause @@ -214,9 +335,10 @@ function create_rename_ok() # to be recreated i.e. a dangling entry without a corresponding # back-end gfid link should not exist on the slave if [ -f "$file_name" ]; then - echo 1 + echo 1 + else + echo 0 fi - echo 0 } function hardlink_rename() @@ -224,16 +346,150 @@ function hardlink_rename() file_name=$1 echo $file_name > $file_name ln $file_name $file_name.hl - mv $file_name.hl $file_name + mv $file_name.hl $file_name.hl1 } function hardlink_rename_ok() { file_name=$1 # the hardlink file should not exist on the slave after renaming - # to one of its links - if [ -f "$file_name.hl" ]; then - echo 1 + # to one of its links on changelog reprocessing + if [ ! -f "$file_name" ]; then + echo 1 + elif [ ! -f "$file_name.hl1" ]; then + echo 2 + elif [ -f "$file_name.hl" ]; then + echo 3 + else + echo 0 + fi +} + +function create_symlink_rename_mkdir_data() +{ + mkdir ${master_mnt}/symlink_test1 + touch ${master_mnt}/symlink_test1/file1 + ln -s "./file1" ${master_mnt}/symlink_test1/sym_link + mv ${master_mnt}/symlink_test1/sym_link ${master_mnt}/symlink_test1/rn_sym_link + mkdir ${master_mnt}/symlink_test1/sym_link +} +function verify_symlink_rename_mkdir_data() +{ + sym_dir=$1 + if [ ! -f $sym_dir/file1 ]; then + echo 1 + elif [ ! -h $sym_dir/rn_sym_link ]; then + echo 2 + elif [ ! -d $sym_dir/sym_link ]; then + echo 3 + else + echo 0 + fi +} + +function create_rsnapshot_data() +{ + rm -rf /tmp/rsnapshot_symlinkbug + mkdir /tmp/rsnapshot_symlinkbug + ln -f -s /does/not/exist /tmp/rsnapshot_symlinkbug/a_symlink + rsync -a /tmp/rsnapshot_symlinkbug ${master_mnt}/ + cp -al ${master_mnt}/rsnapshot_symlinkbug ${master_mnt}/rsnapshot_symlinkbug.0 + ln -f -s /does/not/exist2 /tmp/rsnapshot_symlinkbug/a_symlink + rsync -a /tmp/rsnapshot_symlinkbug ${master_mnt}/ + cp -al ${master_mnt}/rsnapshot_symlinkbug ${master_mnt}/rsnapshot_symlinkbug.1 +} + +function verify_rsnapshot_data() +{ + dir="$1/rsnapshot_symlinkbug" + dir0="$1/rsnapshot_symlinkbug.0" + dir1="$1/rsnapshot_symlinkbug.1" + if [ ! -d "$dir" ]; then + echo 1 + elif [ ! -h $dir/a_symlink ]; then + echo 2 + elif test "X$(readlink $dir/a_symlink)" != "X/does/not/exist2"; then + echo 3 + elif [ ! -h $dir0/a_symlink ]; then + echo 4 + elif test "X$(readlink $dir0/a_symlink)" != "X/does/not/exist"; then + echo 5 + elif [ ! -h $dir1/a_symlink ]; then + echo 6 + elif test "X$(readlink $dir1/a_symlink)" != "X/does/not/exist2"; then + echo 7 + else + echo 0 + fi +} + +function create_hardlink_rename_data() +{ + dir=${master_mnt}/hardlink_rename_issue + mkdir $dir + echo "test_data" > $dir/f1 + ln $dir/f1 $dir/f2 + mv $dir/f2 $dir/f3 + unlink $dir/f1 +} + +function verify_hardlink_rename_data() +{ + dir=$1/hardlink_rename_issue + if [ ! -d $dir ]; then + echo 1 + elif [ -f $dir/f1 ]; then + echo 2 + elif [ -f $dir/f2 ]; then + echo 3 + elif [ ! -f $dir/f3 ]; then + echo 4 + elif test "Xtest_data" != "X$(cat $dir/f3)"; then + echo 5 + else + echo 0 + fi +} + +function check_slave_read_only() +{ + volum=$1 + gluster volume info $1 | grep 'features.read-only: on' + echo $? +} + +function create_rename_with_existing_destination() +{ + dir=$1/rename_with_existing_destination + mkdir $dir + for i in {1..5} + do + echo "Data_set$i" > $dir/data_set$i + mv $dir/data_set$i $dir/data_set -f + done +} + +function verify_rename_with_existing_destination() +{ + dir=$1/rename_with_existing_destination + + if [ ! -d $dir ]; then + echo 1 + elif [ ! -f $dir/data_set ]; then + echo 2 + elif [ -f $dir/data_set1 ]; then + echo 3 + elif [ -f $dir/data_set2 ]; then + echo 4 + elif [ -f $dir/data_set3 ]; then + echo 5 + elif [ -f $dir/data_set4 ]; then + echo 6 + elif [ -f $dir/data_set5 ]; then + echo 7 + elif test "XData_set5" != "X$(cat $dir/data_set)"; then + echo 8 + else + echo 0 fi - echo 0 } |
