@@ -243,7 +243,7 @@ class ServerTest < ActiveSupport::TestCase
243
243
end
244
244
end
245
245
246
- test 'Server find_available without or with empty tag returns untagged server with lowest load' do
246
+ test 'Server find_available without or with empty tag or with none tag returns untagged server with lowest load' do
247
247
RedisStore . with_connection do |redis |
248
248
redis . mapped_hmset ( 'server:test-1' , url : 'https://test-1.example.com/bigbluebutton/api' , secret : 'test-1-secret' ,
249
249
tag : 'test-tag' , enabled : 'true' )
@@ -276,6 +276,12 @@ class ServerTest < ActiveSupport::TestCase
276
276
277
277
server = Server . find_available ( '!' )
278
278
assert_equal ( 'test-3' , server . id )
279
+
280
+ server = Server . find_available ( 'none' )
281
+ assert_equal ( 'test-3' , server . id )
282
+
283
+ server = Server . find_available ( 'none!' )
284
+ assert_equal ( 'test-3' , server . id )
279
285
end
280
286
281
287
test 'Server find_available with tag argument returns matching tagged server with lowest load' do
@@ -316,6 +322,44 @@ class ServerTest < ActiveSupport::TestCase
316
322
assert_equal ( 'test-tag' , server . tag )
317
323
end
318
324
325
+ test 'Server find_available with multiple tag arguments returns matching tagged server with lowest load' do
326
+ RedisStore . with_connection do |redis |
327
+ redis . mapped_hmset ( 'server:test-1' , url : 'https://test-1.example.com/bigbluebutton/api' , secret : 'test-1-secret' ,
328
+ enabled : 'true' )
329
+ redis . sadd? ( 'servers' , 'test-1' )
330
+ redis . sadd? ( 'server_enabled' , 'test-1' )
331
+ redis . zadd ( 'server_load' , 1 , 'test-1' )
332
+ redis . mapped_hmset ( 'server:test-2' , url : 'https://test-2.example.com/bigbluebutton/api' , secret : 'test-2-secret' ,
333
+ tag : 'test-tag' , enabled : 'true' )
334
+ redis . sadd? ( 'servers' , 'test-2' )
335
+ redis . sadd? ( 'server_enabled' , 'test-2' )
336
+ redis . zadd ( 'server_load' , 3 , 'test-2' )
337
+ redis . mapped_hmset ( 'server:test-3' , url : 'https://test-3.example.com/bigbluebutton/api' , secret : 'test-3-secret' ,
338
+ tag : 'test-tag2' , enabled : 'true' )
339
+ redis . sadd? ( 'servers' , 'test-3' )
340
+ redis . sadd? ( 'server_enabled' , 'test-3' )
341
+ redis . zadd ( 'server_load' , 2 , 'test-3' )
342
+ redis . mapped_hmset ( 'server:test-4' , url : 'https://test-4.example.com/bigbluebutton/api' , secret : 'test-4-secret' ,
343
+ tag : 'wrong-tag' , enabled : 'true' )
344
+ redis . sadd? ( 'servers' , 'test-4' )
345
+ redis . sadd? ( 'server_enabled' , 'test-4' )
346
+ redis . zadd ( 'server_load' , 1 , 'test-4' )
347
+ end
348
+
349
+ server = Server . find_available ( 'test-tag,test-tag2' )
350
+ assert_equal ( 'test-3' , server . id )
351
+ assert_equal ( 'https://test-3.example.com/bigbluebutton/api' , server . url )
352
+ assert_equal ( 'test-3-secret' , server . secret )
353
+ assert_equal ( 'test-tag2' , server . tag )
354
+ assert ( server . enabled )
355
+ assert_nil ( server . state )
356
+ assert_equal ( 2 , server . load )
357
+
358
+ server = Server . find_available ( 'test-tag,test-tag2!' )
359
+ assert_equal ( 'test-3' , server . id )
360
+ assert_equal ( 'test-tag2' , server . tag )
361
+ end
362
+
319
363
test 'Server find_available with optional tag returns untagged server with lowest load if no matching tagged server available' do
320
364
RedisStore . with_connection do |redis |
321
365
redis . mapped_hmset ( 'server:test-1' , url : 'https://test-1.example.com/bigbluebutton/api' , secret : 'test-1-secret' ,
0 commit comments