Skip to content
Snippets Groups Projects
Commit 3317f540 authored by Jan David Mol's avatar Jan David Mol
Browse files

Task #8887: Add dynamic routing support to QPIDInfra tools, and use dynamic...

Task #8887: Add dynamic routing support to QPIDInfra tools, and use dynamic routing for lofar.otdb.command
parent 86c55b3a
Branches
Tags
No related merge requests found
...@@ -14,6 +14,7 @@ if __name__ == '__main__': ...@@ -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('-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('-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('-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")) parser.add_option_group(dbcredentials.options_group(parser, "qpidinfra"))
(options, args) = parser.parse_args() (options, args) = parser.parse_args()
...@@ -55,7 +56,7 @@ if __name__ == '__main__': ...@@ -55,7 +56,7 @@ if __name__ == '__main__':
if (options.exchange): if (options.exchange):
QPIDinfra.addexchange(options.exchange) # should be superfluous QPIDinfra.addexchange(options.exchange) # should be superfluous
QPIDinfra.bindexchangetohost(options.exchange,options.federation) 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: else:
raise Exception("federation can only be setup with a queue or an exchange") raise Exception("federation can only be setup with a queue or an exchange")
...@@ -10,8 +10,11 @@ def qpidconfig_add_topic(settings): ...@@ -10,8 +10,11 @@ def qpidconfig_add_topic(settings):
print ("qpid-config -b %s add exchange topic %s --durable" %(settings['hostname'],settings['exchangename'])) print ("qpid-config -b %s add exchange topic %s --durable" %(settings['hostname'],settings['exchangename']))
def qpidroute_add(settings): 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 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): def qpidQroute_add(settings):
print ("qpid-route -d queue del %s %s '%s' '%s'" %(settings['tohost'],settings['fromhost'],settings['exchangename'],settings['queuename'])) print ("qpid-route -d queue del %s %s '%s' '%s'" %(settings['tohost'],settings['fromhost'],settings['exchangename'],settings['queuename']))
......
...@@ -148,14 +148,16 @@ addtoQPIDDB.py --broker $SCU --exchange ${PREFIX}lofar.otdb.notification ...@@ -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.command
addtoQPIDDB.py --broker $SCU --exchange ${PREFIX}lofar.ssdb.notification addtoQPIDDB.py --broker $SCU --exchange ${PREFIX}lofar.ssdb.notification
# TODO: messages will end up at $SCU twice? # TODO: HA
for tnode in head{01..02}.cep4 for tnode in head01.cep4
do do
for fnode in cpu{01..50}.cep4 for fnode in cpu{01..50}.cep4
do 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 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 done
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment