diff options
Diffstat (limited to 'tools/src/py/qpid-route')
-rwxr-xr-x | tools/src/py/qpid-route | 62 |
1 files changed, 27 insertions, 35 deletions
diff --git a/tools/src/py/qpid-route b/tools/src/py/qpid-route index f90416d7b0..3c4de85d1e 100755 --- a/tools/src/py/qpid-route +++ b/tools/src/py/qpid-route @@ -27,18 +27,18 @@ import locale from qmf.console import Session, BrokerURL usage = """ -Usage: qpid-route [OPTIONS] dynamic add <dest-broker> <src-broker> <exchange> [tag] [exclude-list] [mechanism] +Usage: qpid-route [OPTIONS] dynamic add <dest-broker> <src-broker> <exchange> [tag] [exclude-list] qpid-route [OPTIONS] dynamic del <dest-broker> <src-broker> <exchange> qpid-route [OPTIONS] route add <dest-broker> <src-broker> <exchange> <routing-key> [tag] [exclude-list] [mechanism] qpid-route [OPTIONS] route del <dest-broker> <src-broker> <exchange> <routing-key> - qpid-route [OPTIONS] queue add <dest-broker> <src-broker> <exchange> <queue> [mechanism] + qpid-route [OPTIONS] queue add <dest-broker> <src-broker> <exchange> <queue> qpid-route [OPTIONS] queue del <dest-broker> <src-broker> <exchange> <queue> qpid-route [OPTIONS] route list [<dest-broker>] qpid-route [OPTIONS] route flush [<dest-broker>] qpid-route [OPTIONS] route map [<broker>] - qpid-route [OPTIONS] link add <dest-broker> <src-broker> [mechanism] + qpid-route [OPTIONS] link add <dest-broker> <src-broker> qpid-route [OPTIONS] link del <dest-broker> <src-broker> qpid-route [OPTIONS] link list [<dest-broker>]""" @@ -61,7 +61,7 @@ class Config: self._transport = "tcp" self._ack = 0 self._connTimeout = 10 - self._client_sasl_mechanism = None + self._sasl_mechanism = None config = Config() @@ -95,7 +95,7 @@ def OptionsAndArguments(argv): parser.add_option("--ack", action="store", type="int", metavar="<n>", help="Acknowledge transfers over the bridge in batches of N") parser.add_option("-t", "--transport", action="store", type="string", default="tcp", metavar="<transport>", help="Transport to use for links, defaults to tcp") - parser.add_option("--client-sasl-mechanism", action="store", type="string", metavar="<mech>", help="SASL mechanism for authentication (e.g. EXTERNAL, ANONYMOUS, PLAIN, CRAM-MD, DIGEST-MD5, GSSAPI). Used when the client connects to the destination broker (not for authentication between the source and destination brokers - that is specified using the [mechanisms] argument to 'add route'). SASL automatically picks the most secure available mechanism - use this option to override.") + parser.add_option("--sasl-mechanism", action="store", type="string", metavar="<mech>", help="SASL mechanism for authentication (e.g. EXTERNAL, ANONYMOUS, PLAIN, CRAM-MD, DIGEST-MD5, GSSAPI). Used when the client connects to the destination broker (not for authentication between the source and destination brokers - that is specified using the [mechanisms] argument to 'add route'). SASL automatically picks the most secure available mechanism - use this option to override.") opts, encArgs = parser.parse_args(args=argv) @@ -131,8 +131,8 @@ def OptionsAndArguments(argv): if opts.ack: config._ack = opts.ack - if opts.client_sasl_mechanism: - config._client_sasl_mechanism = opts.client_sasl_mechanism + if opts.sasl_mechanism: + config._sasl_mechanism = opts.sasl_mechanism return args @@ -143,7 +143,7 @@ class RouteManager: self.local = BrokerURL(localBroker) self.remote = None self.qmf = Session() - self.broker = self.qmf.addBroker(localBroker, config._connTimeout, config._client_sasl_mechanism) + self.broker = self.qmf.addBroker(localBroker, config._connTimeout, config._sasl_mechanism) self.broker._waitForStable() self.agent = self.broker.getBrokerAgent() @@ -166,7 +166,7 @@ class RouteManager: return link return None - def addLink(self, remoteBroker, interbroker_mechanism=""): + def addLink(self, remoteBroker, mech="PLAIN"): self.remote = BrokerURL(remoteBroker) if self.local.match(self.remote.host, self.remote.port): raise Exception("Linking broker to itself is not permitted") @@ -176,7 +176,7 @@ class RouteManager: link = self.getLink() if link == None: res = broker.connect(self.remote.host, self.remote.port, config._durable, - interbroker_mechanism, self.remote.authName or "", self.remote.authPass or "", + mech, self.remote.authName or "", self.remote.authPass or "", config._transport) if config._verbose: print "Connect method returned:", res.status, res.text @@ -217,11 +217,11 @@ class RouteManager: added = False links = self.qmf.getObjects(_class="link") for link in links: - url = BrokerURL(host=link.host, port=link.port) + url = BrokerURL("%s:%d" % (link.host, link.port)) if url.name() not in self.brokerList: print " %s..." % url.name(), try: - b = self.qmf.addBroker(url, config._connTimeout) + b = self.qmf.addBroker("%s:%d" % (link.host, link.port), config._connTimeout) self.brokerList[url.name()] = b added = True print "Ok" @@ -245,7 +245,7 @@ class RouteManager: for bridge in bridges: if bridge.src == ex: link = bridge._linkRef_ - fromUrl = BrokerURL(host=link.host, port=link.port) + fromUrl = "%s:%s" % (link.host, link.port) toUrl = bridge.getBroker().getUrl() found = False for pair in pairs: @@ -295,11 +295,11 @@ class RouteManager: if b[0] != self.local.name(): self.qmf.delBroker(b[1]) - def addRoute(self, remoteBroker, exchange, routingKey, tag, excludes, interbroker_mechanism="", dynamic=False): + def addRoute(self, remoteBroker, exchange, routingKey, tag, excludes, mech="PLAIN", dynamic=False): if dynamic and config._srclocal: raise Exception("--src-local is not permitted on dynamic routes") - self.addLink(remoteBroker, interbroker_mechanism) + self.addLink(remoteBroker, mech) link = self.getLink() if link == None: raise Exception("Link failed to create") @@ -320,8 +320,8 @@ class RouteManager: if config._verbose: print "Bridge method returned:", res.status, res.text - def addQueueRoute(self, remoteBroker, interbroker_mechanism, exchange, queue ): - self.addLink(remoteBroker, interbroker_mechanism) + def addQueueRoute(self, remoteBroker, exchange, queue): + self.addLink(remoteBroker) link = self.getLink() if link == None: raise Exception("Link failed to create") @@ -504,12 +504,10 @@ def main(argv=None): rm = RouteManager(localBroker) if group == "link": if cmd == "add": - if nargs < 3 or nargs > 5: + if nargs != 4: Usage() return(-1) - interbroker_mechanism = "" - if nargs > 4: interbroker_mechanism = args[4] - rm.addLink(remoteBroker, interbroker_mechanism) + rm.addLink(remoteBroker) elif cmd == "del": if nargs != 4: Usage() @@ -520,17 +518,16 @@ def main(argv=None): elif group == "dynamic": if cmd == "add": - if nargs < 5 or nargs > 8: + if nargs < 5 or nargs > 7: Usage() return(-1) tag = "" excludes = "" - interbroker_mechanism = "" + mech = "PLAIN" if nargs > 5: tag = args[5] if nargs > 6: excludes = args[6] - if nargs > 7: interbroker_mechanism = args[7] - rm.addRoute(remoteBroker, args[4], "", tag, excludes, interbroker_mechanism, dynamic=True) + rm.addRoute(remoteBroker, args[4], "", tag, excludes, mech, dynamic=True) elif cmd == "del": if nargs != 5: Usage() @@ -546,11 +543,11 @@ def main(argv=None): tag = "" excludes = "" - interbroker_mechanism = "" + mech = "PLAIN" if nargs > 6: tag = args[6] if nargs > 7: excludes = args[7] - if nargs > 8: interbroker_mechanism = args[8] - rm.addRoute(remoteBroker, args[4], args[5], tag, excludes, interbroker_mechanism, dynamic=False) + if nargs > 8: mech = args[8] + rm.addRoute(remoteBroker, args[4], args[5], tag, excludes, mech, dynamic=False) elif cmd == "del": if nargs != 6: Usage() @@ -568,21 +565,16 @@ def main(argv=None): return(-1) elif group == "queue": - if nargs < 6 or nargs > 7: + if nargs != 6: Usage() return(-1) if cmd == "add": - interbroker_mechanism = "" - if nargs > 6: interbroker_mechanism = args[6] - rm.addQueueRoute(remoteBroker, interbroker_mechanism, exchange=args[4], queue=args[5] ) + rm.addQueueRoute(remoteBroker, exchange=args[4], queue=args[5]) elif cmd == "del": rm.delQueueRoute(remoteBroker, exchange=args[4], queue=args[5]) else: Usage() return(-1) - else: - Usage() - return(-1) except Exception,e: if rm: |