From 3317f5409f677308cc6e7b86d0be62e87872b87c Mon Sep 17 00:00:00 2001 From: Jan David Mol <mol@astron.nl> Date: Tue, 31 May 2016 14:15:39 +0000 Subject: [PATCH] Task #8887: Add dynamic routing support to QPIDInfra tools, and use dynamic routing for lofar.otdb.command --- SAS/QPIDInfrastructure/bin/addtoQPIDDB.py | 3 ++- SAS/QPIDInfrastructure/bin/configQPIDfromDB.py | 5 ++++- SAS/QPIDInfrastructure/bin/populateDB.sh | 10 ++++++---- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/SAS/QPIDInfrastructure/bin/addtoQPIDDB.py b/SAS/QPIDInfrastructure/bin/addtoQPIDDB.py index 0d12ef72902..de5793a3404 100755 --- a/SAS/QPIDInfrastructure/bin/addtoQPIDDB.py +++ b/SAS/QPIDInfrastructure/bin/addtoQPIDDB.py @@ -14,6 +14,7 @@ if __name__ == '__main__': parser.add_option('-q', '--queue', dest='queue', type='string', default=None, help='Name of the queue on the broker') parser.add_option('-e', '--exchange', dest='exchange', type='string', default=None, help='Name of the exchange on the broker') parser.add_option('-k', '--routingkey', dest='routingkey', type='string', default='#', help='Federation routing key') + parser.add_option('-d', '--dynamic', dest='dynamic', action="store_true", default=False, help='Create a dynamic route') parser.add_option_group(dbcredentials.options_group(parser, "qpidinfra")) (options, args) = parser.parse_args() @@ -55,7 +56,7 @@ if __name__ == '__main__': if (options.exchange): QPIDinfra.addexchange(options.exchange) # should be superfluous QPIDinfra.bindexchangetohost(options.exchange,options.federation) - QPIDinfra.setexchangeroute(options.exchange,options.routingkey,options.broker,options.federation) + QPIDinfra.setexchangeroute(options.exchange,options.routingkey,options.broker,options.federation,dynamic=options.dynamic) else: raise Exception("federation can only be setup with a queue or an exchange") diff --git a/SAS/QPIDInfrastructure/bin/configQPIDfromDB.py b/SAS/QPIDInfrastructure/bin/configQPIDfromDB.py index 38d1ffbc8d9..4d4631b7a8a 100755 --- a/SAS/QPIDInfrastructure/bin/configQPIDfromDB.py +++ b/SAS/QPIDInfrastructure/bin/configQPIDfromDB.py @@ -10,8 +10,11 @@ def qpidconfig_add_topic(settings): print ("qpid-config -b %s add exchange topic %s --durable" %(settings['hostname'],settings['exchangename'])) def qpidroute_add(settings): + cmd = "dynamic" if settings['dynamic'] else "route" + print ("qpid-route -d route del %s %s %s \'%s\' " %(settings['tohost'],settings['fromhost'],settings['exchangename'],settings['routingkey'])) - print ("qpid-route -d route add %s %s %s \'%s\' " %(settings['tohost'],settings['fromhost'],settings['exchangename'],settings['routingkey'])) + print ("qpid-route -d dynamic del %s %s %s \'%s\' " %(settings['tohost'],settings['fromhost'],settings['exchangename'],settings['routingkey'])) + print ("qpid-route -d %s add %s %s %s \'%s\' " %(cmd,settings['tohost'],settings['fromhost'],settings['exchangename'],settings['routingkey'])) def qpidQroute_add(settings): print ("qpid-route -d queue del %s %s '%s' '%s'" %(settings['tohost'],settings['fromhost'],settings['exchangename'],settings['queuename'])) diff --git a/SAS/QPIDInfrastructure/bin/populateDB.sh b/SAS/QPIDInfrastructure/bin/populateDB.sh index e24f0454a77..c78f147dcbb 100755 --- a/SAS/QPIDInfrastructure/bin/populateDB.sh +++ b/SAS/QPIDInfrastructure/bin/populateDB.sh @@ -148,14 +148,16 @@ addtoQPIDDB.py --broker $SCU --exchange ${PREFIX}lofar.otdb.notification addtoQPIDDB.py --broker $SCU --exchange ${PREFIX}lofar.ssdb.command addtoQPIDDB.py --broker $SCU --exchange ${PREFIX}lofar.ssdb.notification -# TODO: messages will end up at $SCU twice? -for tnode in head{01..02}.cep4 +# TODO: HA +for tnode in head01.cep4 do for fnode in cpu{01..50}.cep4 do - addtoQPIDDB.py --broker $fnode --exchange ${PREFIX}lofar.otdb.command --federation $tnode + addtoQPIDDB.py --dynamic --broker $fnode --exchange ${PREFIX}lofar.otdb.command --federation $tnode + addtoQPIDDB.py --dynamic --broker $tnode --exchange ${PREFIX}lofar.otdb.command --federation $fnode done - addtoQPIDDB.py --broker $tnode --exchange ${PREFIX}lofar.otdb.command --federation $SCU + addtoQPIDDB.py --dynamic --broker $tnode --exchange ${PREFIX}lofar.otdb.command --federation $SCU + addtoQPIDDB.py --dynamic --broker $SCU --exchange ${PREFIX}lofar.otdb.command --federation $tnode done -- GitLab