@@ -89,6 +89,11 @@ func TestNamespace(t *testing.T) {
89
89
require .NoError (t , r .Err ())
90
90
require .Equal (t , "OK" , r .Val ())
91
91
}
92
+ for ns , token := range nsTokens {
93
+ r := rdb .Do (ctx , "NAMESPACE" , "GET" , ns )
94
+ require .NoError (t , r .Err ())
95
+ require .Equal (t , token , r .Val ())
96
+ }
92
97
93
98
srv .Restart ()
94
99
for ns , token := range nsTokens {
@@ -167,9 +172,9 @@ func TestNamespaceReplicate(t *testing.T) {
167
172
"n4" : "t4" ,
168
173
}
169
174
170
- t .Run ("Replicate namespaces " , func (t * testing.T ) {
171
- require .NoError (t , masterRdb .ConfigSet (ctx , "repl-namespace-enabled" , "yes " ).Err ())
172
- require .NoError (t , slaveRdb .ConfigSet (ctx , "repl-namespace-enabled" , "yes " ).Err ())
175
+ t .Run ("Disable Replicate namespces " , func (t * testing.T ) {
176
+ require .NoError (t , masterRdb .ConfigSet (ctx , "repl-namespace-enabled" , "no " ).Err ())
177
+ require .NoError (t , slaveRdb .ConfigSet (ctx , "repl-namespace-enabled" , "no " ).Err ())
173
178
174
179
for ns , token := range nsTokens {
175
180
r := masterRdb .Do (ctx , "NAMESPACE" , "ADD" , ns , token )
@@ -178,53 +183,61 @@ func TestNamespaceReplicate(t *testing.T) {
178
183
}
179
184
util .WaitForOffsetSync (t , slaveRdb , masterRdb )
180
185
186
+ // Can read namespaces on master
181
187
for ns , token := range nsTokens {
182
- r := slaveRdb .Do (ctx , "NAMESPACE" , "GET" , ns )
188
+ r := masterRdb .Do (ctx , "NAMESPACE" , "GET" , ns )
183
189
require .NoError (t , r .Err ())
184
190
require .Equal (t , token , r .Val ())
185
191
}
192
+ // Can't read namespaces on slave
193
+ for ns := range nsTokens {
194
+ r := slaveRdb .Do (ctx , "NAMESPACE" , "GET" , ns )
195
+ require .EqualError (t , r .Err (), redis .Nil .Error ())
196
+ }
186
197
187
198
for ns := range nsTokens {
188
199
r := masterRdb .Do (ctx , "NAMESPACE" , "DEL" , ns )
189
200
require .NoError (t , r .Err ())
190
201
require .Equal (t , "OK" , r .Val ())
191
202
}
192
- util .WaitForOffsetSync (t , slaveRdb , masterRdb )
193
-
194
- for ns := range nsTokens {
195
- r := slaveRdb .Do (ctx , "NAMESPACE" , "GET" , ns )
196
- require .EqualError (t , r .Err (), redis .Nil .Error ())
197
- }
198
203
})
199
204
200
- t .Run ("Don't allow to operate slave's namespace if replication is enabled" , func (t * testing.T ) {
201
- r := slaveRdb .Do (ctx , "NAMESPACE" , "ADD" , "ns_xxxx" , "token_xxxx" )
202
- util .ErrorRegexp (t , r .Err (), ".*ERR namespace is read-only for slave.*" )
203
- })
205
+ t .Run ("Enable Replicate namespaces" , func (t * testing.T ) {
206
+ require .NoError (t , masterRdb .ConfigSet (ctx , "repl-namespace-enabled" , "yes" ).Err ())
207
+ require .NoError (t , slaveRdb .ConfigSet (ctx , "repl-namespace-enabled" , "yes" ).Err ())
204
208
205
- t .Run ("Turn off namespace replication" , func (t * testing.T ) {
206
- require .NoError (t , masterRdb .ConfigSet (ctx , "repl-namespace-enabled" , "no" ).Err ())
207
- require .NoError (t , slaveRdb .ConfigSet (ctx , "repl-namespace-enabled" , "no" ).Err ())
208
209
for ns , token := range nsTokens {
209
210
r := masterRdb .Do (ctx , "NAMESPACE" , "ADD" , ns , token )
210
211
require .NoError (t , r .Err ())
211
212
require .Equal (t , "OK" , r .Val ())
212
213
}
214
+ util .WaitForOffsetSync (t , slaveRdb , masterRdb )
215
+
213
216
for ns , token := range nsTokens {
214
- r := masterRdb .Do (ctx , "NAMESPACE" , "GET" , ns )
217
+ r := slaveRdb .Do (ctx , "NAMESPACE" , "GET" , ns )
215
218
require .NoError (t , r .Err ())
216
219
require .Equal (t , token , r .Val ())
217
220
}
221
+
222
+ for ns := range nsTokens {
223
+ r := masterRdb .Do (ctx , "NAMESPACE" , "DEL" , ns )
224
+ require .NoError (t , r .Err ())
225
+ require .Equal (t , "OK" , r .Val ())
226
+ }
218
227
util .WaitForOffsetSync (t , slaveRdb , masterRdb )
228
+
219
229
for ns := range nsTokens {
220
230
r := slaveRdb .Do (ctx , "NAMESPACE" , "GET" , ns )
221
231
require .EqualError (t , r .Err (), redis .Nil .Error ())
222
232
}
223
233
})
224
234
225
- t .Run ("Allow to operate slave's namespace if replication is disabled " , func (t * testing.T ) {
235
+ t .Run ("Don't allow to operate slave's namespace if replication is enabled " , func (t * testing.T ) {
226
236
r := slaveRdb .Do (ctx , "NAMESPACE" , "ADD" , "ns_xxxx" , "token_xxxx" )
227
- require .NoError (t , r .Err ())
228
- require .Equal (t , "OK" , r .Val ())
237
+ util .ErrorRegexp (t , r .Err (), ".*ERR namespace is read-only for slave.*" )
238
+ })
239
+
240
+ t .Run ("Turn off namespace replication is not allowed" , func (t * testing.T ) {
241
+ util .ErrorRegexp (t , masterRdb .ConfigSet (ctx , "repl-namespace-enabled" , "no" ).Err (), ".*cannot switch off repl_namespace_enabled when namespaces exist in db.*" )
229
242
})
230
243
}
0 commit comments