Skip to content

Commit 9fefe3e

Browse files
test: call router for router operations
Before this patch, most tests used an assumption that main server is a router. Yet these are two different concepts. `main_server` entity was introduced in Cartridge test helpers Cluster as some server you may refer to for maintenance work, like clusterwide configuration update. Any cluster server is fine to do such operation: router or not. Since most cluster configurations start with router definition, it is often a first server in a list and is chosen to be main_server as well. But no one guarantees that main_server provides router API (both for vshard and crud).
1 parent 23054c6 commit 9fefe3e

31 files changed

+810
-822
lines changed

test/helper.lua

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ function helpers.insert_objects(g, space_name, objects)
133133
local inserted_objects = {}
134134

135135
for _, obj in ipairs(objects) do
136-
local result, err = g.cluster.main_server.net_box:call('crud.insert_object', {space_name, obj})
136+
local result, err = g.router:call('crud.insert_object', {space_name, obj})
137137

138138
t.assert_equals(err, nil)
139139

@@ -354,7 +354,7 @@ function helpers.assert_ge(actual, expected, message)
354354
end
355355

356356
function helpers.get_other_storage_bucket_id(cluster, bucket_id)
357-
return cluster.main_server.net_box:eval([[
357+
return cluster:server('router'):eval([[
358358
local vshard = require('vshard')
359359
360360
local bucket_id = ...
@@ -392,7 +392,7 @@ end
392392
helpers.tarantool_version_at_least = crud_utils.tarantool_version_at_least
393393

394394
function helpers.update_sharding_key_cache(cluster, space_name)
395-
return cluster.main_server.net_box:eval([[
395+
return cluster:server('router'):eval([[
396396
local sharding_key = require('crud.common.sharding_key')
397397
398398
local space_name = ...
@@ -401,7 +401,7 @@ function helpers.update_sharding_key_cache(cluster, space_name)
401401
end
402402

403403
function helpers.get_sharding_key_cache(cluster)
404-
return cluster.main_server.net_box:eval([[
404+
return cluster:server('router'):eval([[
405405
local vshard = require('vshard')
406406
local sharding_metadata_cache = require('crud.common.sharding.router_metadata_cache')
407407
@@ -416,7 +416,7 @@ end
416416
-- object through net.box that's why we get a sign of record
417417
-- existence of cache but not the cache itself
418418
function helpers.update_sharding_func_cache(cluster, space_name)
419-
return cluster.main_server.net_box:eval([[
419+
return cluster:server('router'):eval([[
420420
local sharding_func = require('crud.common.sharding_func')
421421
422422
local space_name = ...
@@ -433,7 +433,7 @@ end
433433
-- object through net.box that's why we get size of cache
434434
-- but not the cache itself
435435
function helpers.get_sharding_func_cache_size(cluster)
436-
return cluster.main_server.net_box:eval([[
436+
return cluster:server('router'):eval([[
437437
local vshard = require('vshard')
438438
local sharding_metadata_cache = require('crud.common.sharding.router_metadata_cache')
439439
@@ -734,6 +734,9 @@ function helpers.start_cluster(g, cartridge_cfg, vshard_cfg)
734734
vtest.cluster_new(g, g.cfg)
735735
g.cfg.engine = nil
736736
end
737+
738+
g.router = g.cluster:server('router')
739+
assert(g.router ~= nil, 'router found')
737740
end
738741

739742
function helpers.stop_cluster(cluster, backend)
@@ -744,14 +747,6 @@ function helpers.stop_cluster(cluster, backend)
744747
end
745748
end
746749

747-
function helpers.get_router(cluster, backend)
748-
if backend == helpers.backend.CARTRIDGE then
749-
return cluster:server('router')
750-
elseif backend == helpers.backend.VSHARD then
751-
return cluster.main_server
752-
end
753-
end
754-
755750
function helpers.parse_module_version(str)
756751
-- https://github.com/tarantool/luatest/blob/f37b353b77be50a1f1ce87c1ff2edf0c1b96d5d1/luatest/utils.lua#L166-L173
757752
local splitstr = str:split('.')

test/integration/borders_test.lua

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ end)
2626

2727
pgroup.test_non_existent_space = function(g)
2828
-- min
29-
local result, err = g.cluster.main_server.net_box:call('crud.min', {
29+
local result, err = g.router:call('crud.min', {
3030
'non_existent_space',
3131
nil,
3232
{mode = 'write'},
@@ -36,7 +36,7 @@ pgroup.test_non_existent_space = function(g)
3636
t.assert_str_contains(err.err, "Space \"non_existent_space\" doesn't exist")
3737

3838
-- max
39-
local result, err = g.cluster.main_server.net_box:call('crud.max', {
39+
local result, err = g.router:call('crud.max', {
4040
'non_existent_space',
4141
nil,
4242
{mode = 'write'},
@@ -48,7 +48,7 @@ end
4848

4949
pgroup.test_non_existent_index = function(g)
5050
-- min
51-
local result, err = g.cluster.main_server.net_box:call('crud.min', {
51+
local result, err = g.router:call('crud.min', {
5252
'customers',
5353
'non_existent_index',
5454
{mode = 'write'},
@@ -57,7 +57,7 @@ pgroup.test_non_existent_index = function(g)
5757
t.assert_equals(result, nil)
5858
t.assert_str_contains(err.err, "Index \"non_existent_index\" of space \"customers\" doesn't exist")
5959

60-
local result, err = g.cluster.main_server.net_box:call('crud.min', {
60+
local result, err = g.router:call('crud.min', {
6161
'customers',
6262
13,
6363
{mode = 'write'},
@@ -67,7 +67,7 @@ pgroup.test_non_existent_index = function(g)
6767
t.assert_str_contains(err.err, "Index \"13\" of space \"customers\" doesn't exist")
6868

6969
-- max
70-
local result, err = g.cluster.main_server.net_box:call('crud.max', {
70+
local result, err = g.router:call('crud.max', {
7171
'customers',
7272
'non_existent_index',
7373
{mode = 'write'},
@@ -76,7 +76,7 @@ pgroup.test_non_existent_index = function(g)
7676
t.assert_equals(result, nil)
7777
t.assert_str_contains(err.err, "Index \"non_existent_index\" of space \"customers\" doesn't exist")
7878

79-
local result, err = g.cluster.main_server.net_box:call('crud.max', {
79+
local result, err = g.router:call('crud.max', {
8080
'customers',
8181
13,
8282
{mode = 'write'},
@@ -88,7 +88,7 @@ end
8888

8989
pgroup.test_empty_space = function(g)
9090
-- min
91-
local result, err = g.cluster.main_server.net_box:call('crud.min', {
91+
local result, err = g.router:call('crud.min', {
9292
'customers',
9393
nil,
9494
{mode = 'write'},
@@ -98,7 +98,7 @@ pgroup.test_empty_space = function(g)
9898
t.assert_equals(#result.rows, 0)
9999

100100
-- min by age index with fields
101-
local result, err = g.cluster.main_server.net_box:call('crud.min', {
101+
local result, err = g.router:call('crud.min', {
102102
'customers',
103103
'age_index',
104104
{fields = {'name'}, mode = 'write'},
@@ -108,7 +108,7 @@ pgroup.test_empty_space = function(g)
108108
t.assert_equals(#result.rows, 0)
109109

110110
-- max
111-
local result, err = g.cluster.main_server.net_box:call('crud.max', {
111+
local result, err = g.router:call('crud.max', {
112112
'customers',
113113
nil,
114114
{mode = 'write'},
@@ -118,7 +118,7 @@ pgroup.test_empty_space = function(g)
118118
t.assert_equals(#result.rows, 0)
119119

120120
-- max by age index with fields
121-
local result, err = g.cluster.main_server.net_box:call('crud.max', {
121+
local result, err = g.router:call('crud.max', {
122122
'customers',
123123
'age_index',
124124
{fields = {'name'}, mode = 'write'},
@@ -148,71 +148,71 @@ pgroup.test_min = function(g)
148148
table.sort(customers, function(obj1, obj2) return obj1.id < obj2.id end)
149149

150150
-- by primary
151-
local result, err = g.cluster.main_server.net_box:call('crud.min', {
151+
local result, err = g.router:call('crud.min', {
152152
'customers', nil, {mode = 'write'},
153153
})
154154
t.assert_equals(err, nil)
155155
local objects = crud.unflatten_rows(result.rows, result.metadata)
156156
t.assert_equals(objects, helpers.get_objects_by_idxs(customers, {1}))
157157

158158
-- by primary, index ID is specified
159-
local result, err = g.cluster.main_server.net_box:call('crud.min', {
159+
local result, err = g.router:call('crud.min', {
160160
'customers', 0, {mode = 'write'},
161161
})
162162
t.assert_equals(err, nil)
163163
local objects = crud.unflatten_rows(result.rows, result.metadata)
164164
t.assert_equals(objects, helpers.get_objects_by_idxs(customers, {1}))
165165

166166
-- by primary with fields
167-
local result, err = g.cluster.main_server.net_box:call('crud.min', {
167+
local result, err = g.router:call('crud.min', {
168168
'customers', nil, {fields = {'name', 'last_name'}, mode = 'write'},
169169
})
170170
t.assert_equals(err, nil)
171171
local objects = crud.unflatten_rows(result.rows, result.metadata)
172172
t.assert_equals(objects, {{name = "Elizabeth", last_name = "Jackson"}})
173173

174174
-- by age index
175-
local result, err = g.cluster.main_server.net_box:call('crud.min', {
175+
local result, err = g.router:call('crud.min', {
176176
'customers', 'age_index', {mode = 'write'},
177177
})
178178
t.assert_equals(err, nil)
179179
local objects = crud.unflatten_rows(result.rows, result.metadata)
180180
t.assert_equals(objects, helpers.get_objects_by_idxs(customers, {4}))
181181

182182
-- by age index, index ID is specified
183-
local result, err = g.cluster.main_server.net_box:call('crud.min', {
183+
local result, err = g.router:call('crud.min', {
184184
'customers', 2, {mode = 'write'},
185185
})
186186
t.assert_equals(err, nil)
187187
local objects = crud.unflatten_rows(result.rows, result.metadata)
188188
t.assert_equals(objects, helpers.get_objects_by_idxs(customers, {4}))
189189

190190
-- by age index with fields
191-
local result, err = g.cluster.main_server.net_box:call('crud.min', {
191+
local result, err = g.router:call('crud.min', {
192192
'customers', 'age_index', {fields = {'name', 'last_name'}, mode = 'write'},
193193
})
194194
t.assert_equals(err, nil)
195195
local objects = crud.unflatten_rows(result.rows, result.metadata)
196196
t.assert_equals(objects, {{name = "William", last_name = "White"}})
197197

198198
-- by composite index full_name
199-
local result, err = g.cluster.main_server.net_box:call('crud.min', {
199+
local result, err = g.router:call('crud.min', {
200200
'customers', 'full_name', {mode = 'write'},
201201
})
202202
t.assert_equals(err, nil)
203203
local objects = crud.unflatten_rows(result.rows, result.metadata)
204204
t.assert_equals(objects, helpers.get_objects_by_idxs(customers, {3}))
205205

206206
-- by composite index full_name, index ID is specified
207-
local result, err = g.cluster.main_server.net_box:call('crud.min', {
207+
local result, err = g.router:call('crud.min', {
208208
'customers', 5, {mode = 'write'},
209209
})
210210
t.assert_equals(err, nil)
211211
local objects = crud.unflatten_rows(result.rows, result.metadata)
212212
t.assert_equals(objects, helpers.get_objects_by_idxs(customers, {3}))
213213

214214
-- by composite index full_name with fields
215-
local result, err = g.cluster.main_server.net_box:call('crud.min', {
215+
local result, err = g.router:call('crud.min', {
216216
'customers', 'full_name', {fields = {'name', 'last_name'}, mode = 'write'},
217217
})
218218
t.assert_equals(err, nil)
@@ -240,71 +240,71 @@ pgroup.test_max = function(g)
240240
table.sort(customers, function(obj1, obj2) return obj1.id < obj2.id end)
241241

242242
-- by primary
243-
local result, err = g.cluster.main_server.net_box:call('crud.max', {
243+
local result, err = g.router:call('crud.max', {
244244
'customers', nil, {mode = 'write'},
245245
})
246246
t.assert_equals(err, nil)
247247
local objects = crud.unflatten_rows(result.rows, result.metadata)
248248
t.assert_equals(objects, helpers.get_objects_by_idxs(customers, {4}))
249249

250250
-- by primary, index ID is specified
251-
local result, err = g.cluster.main_server.net_box:call('crud.max', {
251+
local result, err = g.router:call('crud.max', {
252252
'customers', 0, {mode = 'write'},
253253
})
254254
t.assert_equals(err, nil)
255255
local objects = crud.unflatten_rows(result.rows, result.metadata)
256256
t.assert_equals(objects, helpers.get_objects_by_idxs(customers, {4}))
257257

258258
-- by primary with fields
259-
local result, err = g.cluster.main_server.net_box:call('crud.max', {
259+
local result, err = g.router:call('crud.max', {
260260
'customers', nil, {fields = {'name', 'last_name'}, mode = 'write'}
261261
})
262262
t.assert_equals(err, nil)
263263
local objects = crud.unflatten_rows(result.rows, result.metadata)
264264
t.assert_equals(objects, {{name = "William", last_name = "White"}})
265265

266266
-- by age index
267-
local result, err = g.cluster.main_server.net_box:call('crud.max', {
267+
local result, err = g.router:call('crud.max', {
268268
'customers', 'age_index', {mode = 'write'},
269269
})
270270
t.assert_equals(err, nil)
271271
local objects = crud.unflatten_rows(result.rows, result.metadata)
272272
t.assert_equals(objects, helpers.get_objects_by_idxs(customers, {2}))
273273

274274
-- by age index, index ID is specified
275-
local result, err = g.cluster.main_server.net_box:call('crud.max', {
275+
local result, err = g.router:call('crud.max', {
276276
'customers', 2, {mode = 'write'},
277277
})
278278
t.assert_equals(err, nil)
279279
local objects = crud.unflatten_rows(result.rows, result.metadata)
280280
t.assert_equals(objects, helpers.get_objects_by_idxs(customers, {2}))
281281

282282
-- by age index with fields
283-
local result, err = g.cluster.main_server.net_box:call('crud.max', {
283+
local result, err = g.router:call('crud.max', {
284284
'customers', 'age_index', {fields = {'name', 'last_name'}, mode = 'write'},
285285
})
286286
t.assert_equals(err, nil)
287287
local objects = crud.unflatten_rows(result.rows, result.metadata)
288288
t.assert_equals(objects, {{name = "Mary", last_name = "Brown"}})
289289

290290
-- by composite index full_name
291-
local result, err = g.cluster.main_server.net_box:call('crud.max', {
291+
local result, err = g.router:call('crud.max', {
292292
'customers', 'full_name', {mode = 'write'},
293293
})
294294
t.assert_equals(err, nil)
295295
local objects = crud.unflatten_rows(result.rows, result.metadata)
296296
t.assert_equals(objects, helpers.get_objects_by_idxs(customers, {4}))
297297

298298
-- by composite index full_name, index ID is specified
299-
local result, err = g.cluster.main_server.net_box:call('crud.max', {
299+
local result, err = g.router:call('crud.max', {
300300
'customers', 5, {mode = 'write'},
301301
})
302302
t.assert_equals(err, nil)
303303
local objects = crud.unflatten_rows(result.rows, result.metadata)
304304
t.assert_equals(objects, helpers.get_objects_by_idxs(customers, {4}))
305305

306306
-- by composite index full_name with fields
307-
local result, err = g.cluster.main_server.net_box:call('crud.max', {
307+
local result, err = g.router:call('crud.max', {
308308
'customers', 'full_name', {fields = {'name', 'last_name'}, mode = 'write'},
309309
})
310310
t.assert_equals(err, nil)
@@ -334,15 +334,15 @@ pgroup.test_equal_secondary_keys = function(g)
334334
table.sort(customers, function(obj1, obj2) return obj1.id < obj2.id end)
335335

336336
-- min
337-
local result, err = g.cluster.main_server.net_box:call('crud.min', {
337+
local result, err = g.router:call('crud.min', {
338338
'customers', 'age_index', {mode = 'write'},
339339
})
340340
t.assert_equals(err, nil)
341341
local objects = crud.unflatten_rows(result.rows, result.metadata)
342342
t.assert_equals(objects, helpers.get_objects_by_idxs(customers, {1}))
343343

344344
-- max
345-
local result, err = g.cluster.main_server.net_box:call('crud.max', {
345+
local result, err = g.router:call('crud.max', {
346346
'customers', 'age_index', {mode = 'write'},
347347
})
348348
t.assert_equals(err, nil)
@@ -369,7 +369,7 @@ pgroup.test_opts_not_damaged = function(g)
369369

370370
-- min
371371
local min_opts = {timeout = 1, fields = {'name', 'age'}, mode = 'write'}
372-
local new_min_opts, err = g.cluster.main_server:eval([[
372+
local new_min_opts, err = g.router:eval([[
373373
local crud = require('crud')
374374
375375
local min_opts = ...
@@ -384,7 +384,7 @@ pgroup.test_opts_not_damaged = function(g)
384384

385385
-- max
386386
local max_opts = {timeout = 1, fields = {'name', 'age'}, mode = 'write'}
387-
local new_max_opts, err = g.cluster.main_server:eval([[
387+
local new_max_opts, err = g.router:eval([[
388388
local crud = require('crud')
389389
390390
local max_opts = ...

0 commit comments

Comments
 (0)