glusterfs

Форк
0
/
georep-basic-dr-tarssh.t 
226 строк · 8.5 Кб
1
#!/bin/bash
2

3
. $(dirname $0)/../include.rc
4
. $(dirname $0)/../volume.rc
5
. $(dirname $0)/../geo-rep.rc
6
. $(dirname $0)/../env.rc
7

8
SCRIPT_TIMEOUT=500
9

10
AREQUAL_PATH=$(dirname $0)/../utils
11
test "`uname -s`" != "Linux" && {
12
    CFLAGS="$CFLAGS -lintl";
13
}
14
build_tester $AREQUAL_PATH/arequal-checksum.c $CFLAGS
15

16
### Basic Tests with Distribute Replicate volumes
17

18
##Cleanup and start glusterd
19
cleanup;
20
TEST glusterd;
21
TEST pidof glusterd
22

23

24
##Variables
25
GEOREP_CLI="$CLI volume geo-replication"
26
primary=$GMV0
27
secondary=${H0}::${GSV0}
28
num_active=2
29
num_passive=2
30
primary_mnt=$M0
31
secondary_mnt=$M1
32

33
############################################################
34
#SETUP VOLUMES AND GEO-REPLICATION
35
############################################################
36

37
##create_and_start_primary_volume
38
TEST $CLI volume create $GMV0 replica 2 $H0:$B0/${GMV0}{1,2,3,4};
39
TEST $CLI volume start $GMV0
40

41
##create_and_start_secondary_volume
42
TEST $CLI volume create $GSV0 replica 2 $H0:$B0/${GSV0}{1,2,3,4};
43
TEST $CLI volume start $GSV0
44
TEST $CLI volume set $GSV0 performance.stat-prefetch off
45
TEST $CLI volume set $GSV0 performance.quick-read off
46
TEST $CLI volume set $GSV0 performance.readdir-ahead off
47
TEST $CLI volume set $GSV0 performance.read-ahead off
48

49
##Create, start and mount meta_volume
50
TEST $CLI volume create $META_VOL replica 3 $H0:$B0/${META_VOL}{1,2,3};
51
TEST $CLI volume start $META_VOL
52
TEST mkdir -p $META_MNT
53
TEST glusterfs -s $H0 --volfile-id $META_VOL $META_MNT
54

55
##Mount primary
56
TEST glusterfs -s $H0 --volfile-id $GMV0 $M0
57

58
##Mount secondary
59
TEST glusterfs -s $H0 --volfile-id $GSV0 $M1
60

61
############################################################
62
#BASIC GEO-REPLICATION TESTS
63
############################################################
64

65
#Check Hybrid Crawl
66
TEST create_data "hybrid"
67
TEST create_georep_session $primary $secondary
68
EXPECT_WITHIN $GEO_REP_TIMEOUT 4 check_status_num_rows "Created"
69

70
#Config gluster-command-dir
71
TEST $GEOREP_CLI $primary $secondary config gluster-command-dir ${GLUSTER_CMD_DIR}
72

73
#Config gluster-command-dir
74
TEST $GEOREP_CLI $primary $secondary config secondary-gluster-command-dir ${GLUSTER_CMD_DIR}
75

76
#Enable_metavolume
77
TEST $GEOREP_CLI $primary $secondary config use_meta_volume true
78

79
#Set changelog roll-over time to 3 secs
80
TEST $CLI volume set $GMV0 changelog.rollover-time 3
81

82
#Config tarssh as sync-engine
83
TEST $GEOREP_CLI $primary $secondary config sync-method tarssh
84

85
#Wait for common secret pem file to be created
86
EXPECT_WITHIN $GEO_REP_TIMEOUT  0 check_common_secret_file
87

88
#Verify the keys are distributed
89
EXPECT_WITHIN $GEO_REP_TIMEOUT  0 check_keys_distributed
90

91
#Verify "features.read-only" Option
92
EXPECT_WITHIN $GEO_REP_TIMEOUT 0 check_secondary_read_only $GSV0
93

94
#Start_georep
95
TEST $GEOREP_CLI $primary $secondary start
96

97
EXPECT_WITHIN $GEO_REP_TIMEOUT  2 check_status_num_rows "Active"
98
EXPECT_WITHIN $GEO_REP_TIMEOUT  2 check_status_num_rows "Passive"
99

100
#data_tests "hybrid"
101
EXPECT_WITHIN $GEO_REP_TIMEOUT 0 regular_file_ok ${secondary_mnt}/hybrid_f1
102
EXPECT_WITHIN $GEO_REP_TIMEOUT 0 directory_ok ${secondary_mnt}/hybrid_d1
103
EXPECT_WITHIN $GEO_REP_TIMEOUT 0 rename_file_ok ${secondary_mnt}/hybrid_f3 ${secondary_mnt}/hybrid_f4
104
EXPECT_WITHIN $GEO_REP_TIMEOUT 0 rename_dir_ok ${secondary_mnt}/hybrid_d3 ${secondary_mnt}/hybrid_d4
105
EXPECT_WITHIN $GEO_REP_TIMEOUT 0 symlink_ok hybrid_f1 ${secondary_mnt}/hybrid_sl1
106
EXPECT_WITHIN $GEO_REP_TIMEOUT 0 hardlink_file_ok ${secondary_mnt}/hybrid_f1 ${secondary_mnt}/hybrid_hl1
107
EXPECT_WITHIN $GEO_REP_TIMEOUT 1 unlink_ok ${secondary_mnt}/hybrid_f2
108
EXPECT_WITHIN $GEO_REP_TIMEOUT 1 unlink_ok ${secondary_mnt}/hybrid_d2
109
EXPECT_WITHIN $GEO_REP_TIMEOUT 0 data_ok ${secondary_mnt}/hybrid_f1 "HelloWorld!"
110
EXPECT_WITHIN $GEO_REP_TIMEOUT 0 chown_file_ok ${secondary_mnt}/hybrid_chown_f1
111

112
#Check History Crawl.
113
TEST $GEOREP_CLI $primary $secondary stop
114
TEST create_data "history"
115
TEST $GEOREP_CLI $primary $secondary start
116
EXPECT_WITHIN $GEO_REP_TIMEOUT  2 check_status_num_rows "Active"
117
EXPECT_WITHIN $GEO_REP_TIMEOUT  2 check_status_num_rows "Passive"
118

119
#data_tests "history"
120
EXPECT_WITHIN $GEO_REP_TIMEOUT 0 regular_file_ok ${secondary_mnt}/history_f1
121
EXPECT_WITHIN $GEO_REP_TIMEOUT 0 directory_ok ${secondary_mnt}/history_d1
122
EXPECT_WITHIN $GEO_REP_TIMEOUT 0 rename_file_ok ${secondary_mnt}/history_f3 ${secondary_mnt}/history_f4
123
EXPECT_WITHIN $GEO_REP_TIMEOUT 0 rename_dir_ok ${secondary_mnt}/history_d3 ${secondary_mnt}/history_d4
124
EXPECT_WITHIN $GEO_REP_TIMEOUT 0 symlink_ok history_f1 ${secondary_mnt}/history_sl1
125
EXPECT_WITHIN $GEO_REP_TIMEOUT 0 hardlink_file_ok ${secondary_mnt}/history_f1 ${secondary_mnt}/history_hl1
126
EXPECT_WITHIN $GEO_REP_TIMEOUT 1 unlink_ok ${secondary_mnt}/history_f2
127
EXPECT_WITHIN $GEO_REP_TIMEOUT 1 unlink_ok ${secondary_mnt}/history_d2
128
EXPECT_WITHIN $GEO_REP_TIMEOUT 0 data_ok ${secondary_mnt}/history_f1 "HelloWorld!"
129
EXPECT_WITHIN $GEO_REP_TIMEOUT 0 chown_file_ok ${secondary_mnt}/history_chown_f1
130

131
#Check Changelog Crawl.
132
EXPECT_WITHIN $GEO_REP_TIMEOUT 2 check_status_num_rows "Changelog Crawl"
133
TEST create_data "changelog"
134

135
# logrotate test
136
logrotate_file=${primary_mnt}/logrotate/lg_test_file
137
TEST mkdir -p ${primary_mnt}/logrotate
138
logrotate_simulate $logrotate_file 2
139
logrotate_simulate $logrotate_file 2
140
logrotate_simulate $logrotate_file 2
141
logrotate_simulate $logrotate_file 2
142

143
# CREATE + RENAME
144
create_rename ${primary_mnt}/rename_test_file
145

146
# hard-link rename
147
hardlink_rename ${primary_mnt}/hardlink_rename_test_file
148

149
#SYNC CHECK
150
#data_tests "changelog"
151
EXPECT_WITHIN $GEO_REP_TIMEOUT 0 regular_file_ok ${secondary_mnt}/changelog_f1
152
EXPECT_WITHIN $GEO_REP_TIMEOUT 0 directory_ok ${secondary_mnt}/changelog_d1
153
EXPECT_WITHIN $GEO_REP_TIMEOUT 0 rename_file_ok ${secondary_mnt}/changelog_f3 ${secondary_mnt}/changelog_f4
154
EXPECT_WITHIN $GEO_REP_TIMEOUT 0 rename_dir_ok ${secondary_mnt}/changelog_d3 ${secondary_mnt}/changelog_d4
155
EXPECT_WITHIN $GEO_REP_TIMEOUT 0 symlink_ok changelog_f1 ${secondary_mnt}/changelog_sl1
156
EXPECT_WITHIN $GEO_REP_TIMEOUT 0 hardlink_file_ok ${secondary_mnt}/changelog_f1 ${secondary_mnt}/changelog_hl1
157
EXPECT_WITHIN $GEO_REP_TIMEOUT 1 unlink_ok ${secondary_mnt}/changelog_f2
158
EXPECT_WITHIN $GEO_REP_TIMEOUT 1 unlink_ok ${secondary_mnt}/changelog_d2
159
EXPECT_WITHIN $GEO_REP_TIMEOUT 0 data_ok ${secondary_mnt}/changelog_f1 "HelloWorld!"
160
EXPECT_WITHIN $GEO_REP_TIMEOUT 0 chown_file_ok ${secondary_mnt}/changelog_chown_f1
161

162
#logrotate
163
EXPECT_WITHIN $GEO_REP_TIMEOUT 0 directory_ok ${secondary_mnt}/logrotate
164
EXPECT_WITHIN $GEO_REP_TIMEOUT "x0" arequal_checksum ${primary_mnt}/logrotate ${secondary_mnt}/logrotate
165

166
#CREATE+RENAME
167
EXPECT_WITHIN $GEO_REP_TIMEOUT 0 create_rename_ok ${secondary_mnt}/create_rename_test_file
168

169
#hardlink rename
170
EXPECT_WITHIN $GEO_REP_TIMEOUT 0 hardlink_rename_ok ${secondary_mnt}/hardlink_rename_test_file
171

172
#Stop Geo-rep
173
TEST $GEOREP_CLI $primary $secondary stop
174

175
#Symlink testcase: Rename symlink and create dir with same name
176
TEST create_symlink_rename_mkdir_data
177

178
#hardlink-rename-unlink usecase. Sonatype Nexus3 Usecase. BUG:1512483
179
TEST create_hardlink_rename_data
180

181
#rsnapshot usecase
182
TEST create_rsnapshot_data
183

184
#Start Geo-rep
185
TEST $GEOREP_CLI $primary $secondary start
186

187
#Wait for geo-rep to come up
188
EXPECT_WITHIN $GEO_REP_TIMEOUT  2 check_status_num_rows "Active"
189
EXPECT_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
193
EXPECT_WITHIN $GEO_REP_TIMEOUT 0 hardlink_rename_ok ${secondary_mnt}/hardlink_rename_test_file
194

195
#Symlink testcase: Rename symlink and create dir with same name
196
EXPECT_WITHIN $GEO_REP_TIMEOUT 0 verify_symlink_rename_mkdir_data ${secondary_mnt}/symlink_test1
197

198
#hardlink-rename-unlink usecase. Sonatype Nexus3 Usecase. BUG:1512483
199
EXPECT_WITHIN $GEO_REP_TIMEOUT 0 verify_hardlink_rename_data ${secondary_mnt}
200

201
#rsnapshot usecase
202
EXPECT_WITHIN $GEO_REP_TIMEOUT 0 verify_rsnapshot_data ${secondary_mnt}
203

204
#rename with existing destination case BUG:1694820
205
TEST create_rename_with_existing_destination ${primary_mnt}
206
#verify rename with existing destination case BUG:1694820
207
EXPECT_WITHIN $GEO_REP_TIMEOUT 0 verify_rename_with_existing_destination ${secondary_mnt}
208

209
#Verify arequal for whole volume
210
EXPECT_WITHIN $GEO_REP_TIMEOUT "x0" arequal_checksum ${primary_mnt} ${secondary_mnt}
211

212
#Stop Geo-rep
213
TEST $GEOREP_CLI $primary $secondary stop
214

215
#Delete Geo-rep
216
TEST $GEOREP_CLI $primary $secondary delete
217

218
#Cleanup are-equal binary
219
TEST rm $AREQUAL_PATH/arequal-checksum
220

221
#Cleanup authorized keys
222
sed -i '/^command=.*SSH_ORIGINAL_COMMAND#.*/d' ~/.ssh/authorized_keys
223
sed -i '/^command=.*gsyncd.*/d' ~/.ssh/authorized_keys
224

225
cleanup;
226
#G_TESTDEF_TEST_STATUS_NETBSD7=BAD_TEST,BUG=000000
227

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.