diff --git a/.gitattributes b/.gitattributes index 05595d5efdd437b1b130fba443f8617fcbc630bb..f2131fcfdfe3ab43c12cb330caf1d483e836bffc 100644 --- a/.gitattributes +++ b/.gitattributes @@ -4959,10 +4959,11 @@ SAS/OTDB_Services/test/t_TreeStatusEvents.run -text svneol=unset#application/x-s SAS/OTDB_Services/test/t_TreeStatusEvents.sh -text svneol=unset#application/x-shellscript SAS/OTDB_Services/test/unittest_db.dump.gz -text svneol=unset#application/x-gzip SAS/ResourceAssignment/CMakeLists.txt -text -SAS/ResourceAssignment/QPIDDatabase/bin/AddHostToQPIDDB.py -text +SAS/ResourceAssignment/QPIDDatabase/bin/addtoQPIDDB.py -text SAS/ResourceAssignment/QPIDDatabase/bin/configQPIDfromDB.py -text SAS/ResourceAssignment/QPIDDatabase/bin/gatherfrombrokers.sh -text SAS/ResourceAssignment/QPIDDatabase/bin/qpidinfra_dump.sql -text +SAS/ResourceAssignment/QPIDDatabase/bin/route_to_struct.py -text SAS/ResourceAssignment/QPIDDatabase/lib/QPIDDB.py -text SAS/ResourceAssignment/QPIDDatabase/lib/__init__.py -text SAS/ResourceAssignment/QPIDDatabase/sql/qpidinfradb.sql -text diff --git a/SAS/ResourceAssignment/QPIDDatabase/bin/AddHostToQPIDDB.py b/SAS/ResourceAssignment/QPIDDatabase/bin/addtoQPIDDB.py similarity index 100% rename from SAS/ResourceAssignment/QPIDDatabase/bin/AddHostToQPIDDB.py rename to SAS/ResourceAssignment/QPIDDatabase/bin/addtoQPIDDB.py diff --git a/SAS/ResourceAssignment/QPIDDatabase/bin/configQPIDfromDB.py b/SAS/ResourceAssignment/QPIDDatabase/bin/configQPIDfromDB.py index dfa898811b02c1d6c2f6f6a52b922f00454667e8..4e7184bd7c333af8e9297c2fe0001d442e7f4379 100755 --- a/SAS/ResourceAssignment/QPIDDatabase/bin/configQPIDfromDB.py +++ b/SAS/ResourceAssignment/QPIDDatabase/bin/configQPIDfromDB.py @@ -14,10 +14,15 @@ def qpidconfig_add_topic(host,exchange): def qpidroute_add(fromhost,tohost,exchange,routingkey): print ("qpid-route -d route add %s %s %s \'%s\' " %(tohost,fromhost,exchange,routingkey)) +def qpidQroute_add(fromhost,tohost,queue): + print ("qpid-route -d queue add %s %s %s amq.direct" %(tohost,fromhost,queue)) + QPIDinfra = qpidinfra() QPIDinfra.perqueue(qpidconfig_add_queue) QPIDinfra.perexchange(qpidconfig_add_topic) QPIDinfra.perfederationexchange(qpidroute_add) +QPIDinfra.perfederationqueue(qpidQroute_add) + diff --git a/SAS/ResourceAssignment/QPIDDatabase/bin/route_to_struct.py b/SAS/ResourceAssignment/QPIDDatabase/bin/route_to_struct.py new file mode 100755 index 0000000000000000000000000000000000000000..e092756eab8bc012c9798711690631000d58a7d4 --- /dev/null +++ b/SAS/ResourceAssignment/QPIDDatabase/bin/route_to_struct.py @@ -0,0 +1,65 @@ +#!/usr/bin/python + +import sys +from QPIDDB import qpidinfra + + + + +todb=qpidinfra() + +tosearch = sys.stdin.readlines() + +numlines = len(tosearch) + +#fqdn=['lhn001.cep2.lofar', +# 'ccu001.control.lofar', +# 'sas001.control.lofar', +# 'cbm001.control.lofar', +# 'cbm001.control.lofar', +# 'cbm001.control.lofar', 'cbm001.control.lofar', 'cbm001.control.lofar', 'cbm001.control.lofar', 'cbm001.control.lofar', 'cbm001.control.lofar', 'cbm001.control.lofar', 'cbm001.control.lofar', 'cbm001.control.lofar', 'cbm001.control.lofar', + + +def to_hostname(s): + leafname=s.split(':')[0].split('.')[0].lower() + fqdn="%s.control.lofar" %(leafname) + #print leafname[0:5] + if (leafname[0:5]=='locus'): + fqdn="%s.cep2.lofar" %(leafname) + if (leafname=='lhn001'): + fqdn="%s.cep2.lofar" %(leafname) + + return fqdn + + + +print (" Num lines %d " %(numlines)) + +offset=0 + +while (tosearch[offset] != 'Static Routes:\n'): + #print ( "'%s'" %( tosearch[offset])) + offset += 1 + if (offset==numlines): + print "notfound" + break + +if (offset!=numlines): + for offset in range(offset,numlines): + s = tosearch[offset].split(' ') + if ( len(s) ==5 ): # valid description + hosta=to_hostname(s[2]) + queuename=s[4].split('=')[1].split(')')[0] + hostb=to_hostname(s[4]) #.split(':')[0].split('.') + if (s[3]=='<='): + todb.bindqueuetohost(queuename,hosta) + todb.bindqueuetohost(queuename,hostb) + todb.setqueueroute(queuename,hostb,hosta) + print ("# queue %s from %s to %s" %(queuename,hostb,hosta)) + if (s[3]=='=>'): + todb.bindqueuetohost(queuename,hosta) + todb.bindqueuetohost(queuename,hostb) + todb.setqueueroute(queuename,hosta,hostb) + print ("# queue %s from %s to %s" %(queuename,hosta,hostb)) + + diff --git a/SAS/ResourceAssignment/QPIDDatabase/lib/QPIDDB.py b/SAS/ResourceAssignment/QPIDDatabase/lib/QPIDDB.py index 408b96a5dff7333d52a631c454567fcb8201fe71..7a85e8ec0ea6861994e048b1422063b0e975b91d 100755 --- a/SAS/ResourceAssignment/QPIDDatabase/lib/QPIDDB.py +++ b/SAS/ResourceAssignment/QPIDDatabase/lib/QPIDDB.py @@ -48,6 +48,11 @@ class qpidinfra: for item in ret: callback(item['fromhost'],item['tohost'],item['exchangename'],'#') #item['keyname']) + def perfederationqueue(self,callback): + ret=self.doquery("select h1.hostname as fromhost ,h2.hostname as tohost , queuename from queueroutes JOIN hosts as h1 on (fromhost=h1.hostid) JOIN hosts as h2 on (tohost=h2.hostid) JOIN queues on (queueid=qid);") + for item in ret: + callback(item['fromhost'],item['tohost'],item['queuename']) + def gethostid(self,hostname): tmp=self.doquery("select * from hosts where hostname='%s';" %(hostname)) if (tmp==[]):