glusterfs

Форк
0
/
georep-basic-dr-rsync-arbiter.t 
233 строки · 8.7 Кб
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=4
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 3 arbiter 1 $H0:$B0/${GMV0}{1,2,3,4,5,6};
39
TEST $CLI volume start $GMV0
40

41
##create_and_start_secondary_volume
42
TEST $CLI volume create $GSV0 replica 3 arbiter 1 $H0:$B0/${GSV0}{1,2,3,4,5,6};
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 6 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
#Wait for common secret pem file to be created
83
EXPECT_WITHIN $GEO_REP_TIMEOUT  0 check_common_secret_file
84

85
#Verify the keys are distributed
86
EXPECT_WITHIN $GEO_REP_TIMEOUT  0 check_keys_distributed
87

88
#Verify "features.read-only" Option
89
EXPECT_WITHIN $GEO_REP_TIMEOUT 0 check_secondary_read_only $GSV0
90

91
#Start_georep
92
TEST $GEOREP_CLI $primary $secondary start
93

94
EXPECT_WITHIN $GEO_REP_TIMEOUT  2 check_status_num_rows "Active"
95
EXPECT_WITHIN $GEO_REP_TIMEOUT  4 check_status_num_rows "Passive"
96

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

109
#Check History Crawl.
110
TEST $GEOREP_CLI $primary $secondary stop
111
TEST create_data "history"
112
TEST $GEOREP_CLI $primary $secondary start
113
EXPECT_WITHIN $GEO_REP_TIMEOUT  2 check_status_num_rows "Active"
114
EXPECT_WITHIN $GEO_REP_TIMEOUT  4 check_status_num_rows "Passive"
115

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

128
#Check Changelog Crawl.
129
EXPECT_WITHIN $GEO_REP_TIMEOUT 2 check_status_num_rows "Changelog Crawl"
130
TEST create_data "changelog"
131

132
# logrotate test
133
logrotate_file=${primary_mnt}/logrotate/lg_test_file
134
TEST mkdir -p ${primary_mnt}/logrotate
135
logrotate_simulate $logrotate_file 2
136
logrotate_simulate $logrotate_file 2
137
logrotate_simulate $logrotate_file 2
138
logrotate_simulate $logrotate_file 2
139

140
# CREATE + RENAME
141
create_rename ${primary_mnt}/rename_test_file
142

143
# hard-link rename
144
hardlink_rename ${primary_mnt}/hardlink_rename_test_file
145

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

159
#logrotate
160
EXPECT_WITHIN $GEO_REP_TIMEOUT 0 directory_ok ${secondary_mnt}/logrotate
161
EXPECT_WITHIN $GEO_REP_TIMEOUT "x0" arequal_checksum ${primary_mnt}/logrotate ${secondary_mnt}/logrotate
162

163
#CREATE+RENAME
164
EXPECT_WITHIN $GEO_REP_TIMEOUT 0 create_rename_ok ${secondary_mnt}/create_rename_test_file
165

166
#hardlink rename
167
EXPECT_WITHIN $GEO_REP_TIMEOUT 0 hardlink_rename_ok ${secondary_mnt}/hardlink_rename_test_file
168

169
#Stop Geo-rep
170
TEST $GEOREP_CLI $primary $secondary stop
171

172
#Symlink testcase: Rename symlink and create dir with same name
173
TEST create_symlink_rename_mkdir_data
174

175
#hardlink-rename-unlink usecase. Sonatype Nexus3 Usecase. BUG:1512483
176
#TEST create_hardlink_rename_data
177

178
#rsnapshot usecase
179
TEST create_rsnapshot_data
180

181
#Start Geo-rep
182
TEST $GEOREP_CLI $primary $secondary start
183

184
#Wait for geo-rep to come up
185
EXPECT_WITHIN $GEO_REP_TIMEOUT  2 check_status_num_rows "Active"
186
EXPECT_WITHIN $GEO_REP_TIMEOUT  4 check_status_num_rows "Passive"
187

188
#Check for hardlink rename case. BUG: 1296174
189
#It should not create src file again on changelog reprocessing
190
EXPECT_WITHIN $GEO_REP_TIMEOUT 0 hardlink_rename_ok ${secondary_mnt}/hardlink_rename_test_file
191

192
#Symlink testcase: Rename symlink and create dir with same name
193
EXPECT_WITHIN $GEO_REP_TIMEOUT 0 verify_symlink_rename_mkdir_data ${secondary_mnt}/symlink_test1
194

195
#hardlink-rename-unlink usecase. Sonatype Nexus3 Usecase. BUG:1512483
196
#EXPECT_WITHIN $GEO_REP_TIMEOUT 0 verify_hardlink_rename_data ${secondary_mnt}
197

198
#rsnapshot usecase
199
EXPECT_WITHIN $GEO_REP_TIMEOUT 0 verify_rsnapshot_data ${secondary_mnt}
200

201
#Test rsync-options set BUG:1629561
202
TEST gluster volume geo-rep $primary $secondary config rsync-options "--whole-file"
203
TEST "echo sampledata > $primary_mnt/rsync_option_test_file"
204

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

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

213
#Pause geo-replication session
214
TEST $GEOREP_CLI  $primary $secondary pause force
215

216
#Resume geo-replication session
217
TEST $GEOREP_CLI  $primary $secondary resume force
218

219
#Stop Geo-rep
220
TEST $GEOREP_CLI $primary $secondary stop
221

222
#Delete Geo-rep
223
TEST $GEOREP_CLI $primary $secondary delete
224

225
#Cleanup are-equal binary
226
TEST rm $AREQUAL_PATH/arequal-checksum
227

228
#Cleanup authorized keys
229
sed -i '/^command=.*SSH_ORIGINAL_COMMAND#.*/d' ~/.ssh/authorized_keys
230
sed -i '/^command=.*gsyncd.*/d' ~/.ssh/authorized_keys
231

232
cleanup;
233
#G_TESTDEF_TEST_STATUS_NETBSD7=BAD_TEST,BUG=000000
234

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

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

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

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