glusterfs
226 строк · 8.5 Кб
1#!/bin/bash
2
3. $(dirname $0)/../include.rc4. $(dirname $0)/../volume.rc5. $(dirname $0)/../geo-rep.rc6. $(dirname $0)/../env.rc7
8SCRIPT_TIMEOUT=5009
10AREQUAL_PATH=$(dirname $0)/../utils11test "`uname -s`" != "Linux" && {12CFLAGS="$CFLAGS -lintl";13}
14build_tester $AREQUAL_PATH/arequal-checksum.c $CFLAGS15
16### Basic Tests with Distribute Replicate volumes
17
18##Cleanup and start glusterd
19cleanup;20TEST glusterd;21TEST pidof glusterd
22
23
24##Variables
25GEOREP_CLI="$CLI volume geo-replication"26primary=$GMV027secondary=${H0}::${GSV0}28num_active=229num_passive=230primary_mnt=$M031secondary_mnt=$M132
33############################################################
34#SETUP VOLUMES AND GEO-REPLICATION
35############################################################
36
37##create_and_start_primary_volume
38TEST $CLI volume create $GMV0 replica 2 $H0:$B0/${GMV0}{1,2,3,4};39TEST $CLI volume start $GMV040
41##create_and_start_secondary_volume
42TEST $CLI volume create $GSV0 replica 2 $H0:$B0/${GSV0}{1,2,3,4};43TEST $CLI volume start $GSV044TEST $CLI volume set $GSV0 performance.stat-prefetch off45TEST $CLI volume set $GSV0 performance.quick-read off46TEST $CLI volume set $GSV0 performance.readdir-ahead off47TEST $CLI volume set $GSV0 performance.read-ahead off48
49##Create, start and mount meta_volume
50TEST $CLI volume create $META_VOL replica 3 $H0:$B0/${META_VOL}{1,2,3};51TEST $CLI volume start $META_VOL52TEST mkdir -p $META_MNT53TEST glusterfs -s $H0 --volfile-id $META_VOL $META_MNT54
55##Mount primary
56TEST glusterfs -s $H0 --volfile-id $GMV0 $M057
58##Mount secondary
59TEST glusterfs -s $H0 --volfile-id $GSV0 $M160
61############################################################
62#BASIC GEO-REPLICATION TESTS
63############################################################
64
65#Check Hybrid Crawl
66TEST create_data "hybrid"67TEST create_georep_session $primary $secondary68EXPECT_WITHIN $GEO_REP_TIMEOUT 4 check_status_num_rows "Created"69
70#Config gluster-command-dir
71TEST $GEOREP_CLI $primary $secondary config gluster-command-dir ${GLUSTER_CMD_DIR}72
73#Config gluster-command-dir
74TEST $GEOREP_CLI $primary $secondary config secondary-gluster-command-dir ${GLUSTER_CMD_DIR}75
76#Enable_metavolume
77TEST $GEOREP_CLI $primary $secondary config use_meta_volume true78
79#Set changelog roll-over time to 3 secs
80TEST $CLI volume set $GMV0 changelog.rollover-time 381
82#Config tarssh as sync-engine
83TEST $GEOREP_CLI $primary $secondary config sync-method tarssh84
85#Wait for common secret pem file to be created
86EXPECT_WITHIN $GEO_REP_TIMEOUT 0 check_common_secret_file87
88#Verify the keys are distributed
89EXPECT_WITHIN $GEO_REP_TIMEOUT 0 check_keys_distributed90
91#Verify "features.read-only" Option
92EXPECT_WITHIN $GEO_REP_TIMEOUT 0 check_secondary_read_only $GSV093
94#Start_georep
95TEST $GEOREP_CLI $primary $secondary start96
97EXPECT_WITHIN $GEO_REP_TIMEOUT 2 check_status_num_rows "Active"98EXPECT_WITHIN $GEO_REP_TIMEOUT 2 check_status_num_rows "Passive"99
100#data_tests "hybrid"
101EXPECT_WITHIN $GEO_REP_TIMEOUT 0 regular_file_ok ${secondary_mnt}/hybrid_f1102EXPECT_WITHIN $GEO_REP_TIMEOUT 0 directory_ok ${secondary_mnt}/hybrid_d1103EXPECT_WITHIN $GEO_REP_TIMEOUT 0 rename_file_ok ${secondary_mnt}/hybrid_f3 ${secondary_mnt}/hybrid_f4104EXPECT_WITHIN $GEO_REP_TIMEOUT 0 rename_dir_ok ${secondary_mnt}/hybrid_d3 ${secondary_mnt}/hybrid_d4105EXPECT_WITHIN $GEO_REP_TIMEOUT 0 symlink_ok hybrid_f1 ${secondary_mnt}/hybrid_sl1106EXPECT_WITHIN $GEO_REP_TIMEOUT 0 hardlink_file_ok ${secondary_mnt}/hybrid_f1 ${secondary_mnt}/hybrid_hl1107EXPECT_WITHIN $GEO_REP_TIMEOUT 1 unlink_ok ${secondary_mnt}/hybrid_f2108EXPECT_WITHIN $GEO_REP_TIMEOUT 1 unlink_ok ${secondary_mnt}/hybrid_d2109EXPECT_WITHIN $GEO_REP_TIMEOUT 0 data_ok ${secondary_mnt}/hybrid_f1 "HelloWorld!"110EXPECT_WITHIN $GEO_REP_TIMEOUT 0 chown_file_ok ${secondary_mnt}/hybrid_chown_f1111
112#Check History Crawl.
113TEST $GEOREP_CLI $primary $secondary stop114TEST create_data "history"115TEST $GEOREP_CLI $primary $secondary start116EXPECT_WITHIN $GEO_REP_TIMEOUT 2 check_status_num_rows "Active"117EXPECT_WITHIN $GEO_REP_TIMEOUT 2 check_status_num_rows "Passive"118
119#data_tests "history"
120EXPECT_WITHIN $GEO_REP_TIMEOUT 0 regular_file_ok ${secondary_mnt}/history_f1121EXPECT_WITHIN $GEO_REP_TIMEOUT 0 directory_ok ${secondary_mnt}/history_d1122EXPECT_WITHIN $GEO_REP_TIMEOUT 0 rename_file_ok ${secondary_mnt}/history_f3 ${secondary_mnt}/history_f4123EXPECT_WITHIN $GEO_REP_TIMEOUT 0 rename_dir_ok ${secondary_mnt}/history_d3 ${secondary_mnt}/history_d4124EXPECT_WITHIN $GEO_REP_TIMEOUT 0 symlink_ok history_f1 ${secondary_mnt}/history_sl1125EXPECT_WITHIN $GEO_REP_TIMEOUT 0 hardlink_file_ok ${secondary_mnt}/history_f1 ${secondary_mnt}/history_hl1126EXPECT_WITHIN $GEO_REP_TIMEOUT 1 unlink_ok ${secondary_mnt}/history_f2127EXPECT_WITHIN $GEO_REP_TIMEOUT 1 unlink_ok ${secondary_mnt}/history_d2128EXPECT_WITHIN $GEO_REP_TIMEOUT 0 data_ok ${secondary_mnt}/history_f1 "HelloWorld!"129EXPECT_WITHIN $GEO_REP_TIMEOUT 0 chown_file_ok ${secondary_mnt}/history_chown_f1130
131#Check Changelog Crawl.
132EXPECT_WITHIN $GEO_REP_TIMEOUT 2 check_status_num_rows "Changelog Crawl"133TEST create_data "changelog"134
135# logrotate test
136logrotate_file=${primary_mnt}/logrotate/lg_test_file137TEST mkdir -p ${primary_mnt}/logrotate138logrotate_simulate $logrotate_file 2139logrotate_simulate $logrotate_file 2140logrotate_simulate $logrotate_file 2141logrotate_simulate $logrotate_file 2142
143# CREATE + RENAME
144create_rename ${primary_mnt}/rename_test_file145
146# hard-link rename
147hardlink_rename ${primary_mnt}/hardlink_rename_test_file148
149#SYNC CHECK
150#data_tests "changelog"
151EXPECT_WITHIN $GEO_REP_TIMEOUT 0 regular_file_ok ${secondary_mnt}/changelog_f1152EXPECT_WITHIN $GEO_REP_TIMEOUT 0 directory_ok ${secondary_mnt}/changelog_d1153EXPECT_WITHIN $GEO_REP_TIMEOUT 0 rename_file_ok ${secondary_mnt}/changelog_f3 ${secondary_mnt}/changelog_f4154EXPECT_WITHIN $GEO_REP_TIMEOUT 0 rename_dir_ok ${secondary_mnt}/changelog_d3 ${secondary_mnt}/changelog_d4155EXPECT_WITHIN $GEO_REP_TIMEOUT 0 symlink_ok changelog_f1 ${secondary_mnt}/changelog_sl1156EXPECT_WITHIN $GEO_REP_TIMEOUT 0 hardlink_file_ok ${secondary_mnt}/changelog_f1 ${secondary_mnt}/changelog_hl1157EXPECT_WITHIN $GEO_REP_TIMEOUT 1 unlink_ok ${secondary_mnt}/changelog_f2158EXPECT_WITHIN $GEO_REP_TIMEOUT 1 unlink_ok ${secondary_mnt}/changelog_d2159EXPECT_WITHIN $GEO_REP_TIMEOUT 0 data_ok ${secondary_mnt}/changelog_f1 "HelloWorld!"160EXPECT_WITHIN $GEO_REP_TIMEOUT 0 chown_file_ok ${secondary_mnt}/changelog_chown_f1161
162#logrotate
163EXPECT_WITHIN $GEO_REP_TIMEOUT 0 directory_ok ${secondary_mnt}/logrotate164EXPECT_WITHIN $GEO_REP_TIMEOUT "x0" arequal_checksum ${primary_mnt}/logrotate ${secondary_mnt}/logrotate165
166#CREATE+RENAME
167EXPECT_WITHIN $GEO_REP_TIMEOUT 0 create_rename_ok ${secondary_mnt}/create_rename_test_file168
169#hardlink rename
170EXPECT_WITHIN $GEO_REP_TIMEOUT 0 hardlink_rename_ok ${secondary_mnt}/hardlink_rename_test_file171
172#Stop Geo-rep
173TEST $GEOREP_CLI $primary $secondary stop174
175#Symlink testcase: Rename symlink and create dir with same name
176TEST create_symlink_rename_mkdir_data
177
178#hardlink-rename-unlink usecase. Sonatype Nexus3 Usecase. BUG:1512483
179TEST create_hardlink_rename_data
180
181#rsnapshot usecase
182TEST create_rsnapshot_data
183
184#Start Geo-rep
185TEST $GEOREP_CLI $primary $secondary start186
187#Wait for geo-rep to come up
188EXPECT_WITHIN $GEO_REP_TIMEOUT 2 check_status_num_rows "Active"189EXPECT_WITHIN $GEO_REP_TIMEOUT 2 check_status_num_rows "Passive"190
191#Check for hardlink rename case. BUG: 1296174
192#It should not create src file again on changelog reprocessing
193EXPECT_WITHIN $GEO_REP_TIMEOUT 0 hardlink_rename_ok ${secondary_mnt}/hardlink_rename_test_file194
195#Symlink testcase: Rename symlink and create dir with same name
196EXPECT_WITHIN $GEO_REP_TIMEOUT 0 verify_symlink_rename_mkdir_data ${secondary_mnt}/symlink_test1197
198#hardlink-rename-unlink usecase. Sonatype Nexus3 Usecase. BUG:1512483
199EXPECT_WITHIN $GEO_REP_TIMEOUT 0 verify_hardlink_rename_data ${secondary_mnt}200
201#rsnapshot usecase
202EXPECT_WITHIN $GEO_REP_TIMEOUT 0 verify_rsnapshot_data ${secondary_mnt}203
204#rename with existing destination case BUG:1694820
205TEST create_rename_with_existing_destination ${primary_mnt}206#verify rename with existing destination case BUG:1694820
207EXPECT_WITHIN $GEO_REP_TIMEOUT 0 verify_rename_with_existing_destination ${secondary_mnt}208
209#Verify arequal for whole volume
210EXPECT_WITHIN $GEO_REP_TIMEOUT "x0" arequal_checksum ${primary_mnt} ${secondary_mnt}211
212#Stop Geo-rep
213TEST $GEOREP_CLI $primary $secondary stop214
215#Delete Geo-rep
216TEST $GEOREP_CLI $primary $secondary delete217
218#Cleanup are-equal binary
219TEST rm $AREQUAL_PATH/arequal-checksum220
221#Cleanup authorized keys
222sed -i '/^command=.*SSH_ORIGINAL_COMMAND#.*/d' ~/.ssh/authorized_keys223sed -i '/^command=.*gsyncd.*/d' ~/.ssh/authorized_keys224
225cleanup;226#G_TESTDEF_TEST_STATUS_NETBSD7=BAD_TEST,BUG=000000
227