diff --git a/SAS/QPIDInfrastructure/bin/addtoQPIDDB.py b/SAS/QPIDInfrastructure/bin/addtoQPIDDB.py index 0d12ef72902e485b4e1eb508412dc1323d95edc7..de5793a340492284d3cc9de0c54014c3f6aed1c6 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 38d1ffbc8d9bf7b6e6e236470295491ea2446992..4d4631b7a8ac655c4215aad7b655ecc066f2dc3e 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 e24f0454a77b5f85956535909f54670c0fb53547..c78f147dcbb6c23f6b678b9a4a088fd1474d5a46 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