summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Stitcher <astitcher@apache.org>2011-08-12 22:32:57 +0000
committerAndrew Stitcher <astitcher@apache.org>2011-08-12 22:32:57 +0000
commitbad5fe3bc9985931439f38807e066776dbf6b0c2 (patch)
tree2aded7cc970609b19ecb14dd36adca232e5dba34
parenta700c39a1c080c55c3599a6df1dc75208c730999 (diff)
downloadqpid-python-bad5fe3bc9985931439f38807e066776dbf6b0c2.tar.gz
QPID-3409: Fixup federation tools to allow IPv6 literals as part of the address in broker URLs
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1157278 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/extras/qmf/src/py/qmf/console.py24
-rwxr-xr-xqpid/tools/src/py/qpid-route6
2 files changed, 17 insertions, 13 deletions
diff --git a/qpid/extras/qmf/src/py/qmf/console.py b/qpid/extras/qmf/src/py/qmf/console.py
index 291b9bcc5f..a3d17b9af1 100644
--- a/qpid/extras/qmf/src/py/qmf/console.py
+++ b/qpid/extras/qmf/src/py/qmf/console.py
@@ -107,8 +107,8 @@ class Console:
# BrokerURL
#===================================================================================================
class BrokerURL(URL):
- def __init__(self, text):
- URL.__init__(self, text)
+ def __init__(self, *args, **kwargs):
+ URL.__init__(self, *args, **kwargs)
if self.port is None:
if self.scheme == URL.AMQPS:
self.port = 5671
@@ -122,7 +122,7 @@ class BrokerURL(URL):
self.authPass = str(self.password)
def name(self):
- return self.host + ":" + str(self.port)
+ return str(self)
def match(self, host, port):
return socket.getaddrinfo(self.host, self.port)[0][4] == socket.getaddrinfo(host, port)[0][4]
@@ -645,7 +645,10 @@ class Session:
Will raise an exception if the session is not managing the connection and
the connection setup to the broker fails.
"""
- url = BrokerURL(target)
+ if isinstance(target, BrokerURL):
+ url = target
+ else:
+ url = BrokerURL(target)
broker = Broker(self, url.host, url.port, mechanisms, url.authName, url.authPass,
ssl = url.scheme == URL.AMQPS, connTimeout=timeout)
@@ -2346,18 +2349,19 @@ class Broker(Thread):
def getUrl(self):
""" """
- return "%s:%d" % (self.host, self.port)
+ return BrokerURL(host=self.host, port=self.port)
def getFullUrl(self, noAuthIfGuestDefault=True):
""" """
- ssl = ""
if self.ssl:
- ssl = "s"
- auth = "%s/%s@" % (self.authUser, self.authPass)
+ scheme = "amqps"
+ else:
+ scheme = "amqp"
if self.authUser == "" or \
(noAuthIfGuestDefault and self.authUser == "guest" and self.authPass == "guest"):
- auth = ""
- return "amqp%s://%s%s:%d" % (ssl, auth, self.host, self.port or 5672)
+ return BrokerURL(scheme=scheme, host=self.host, port=(self.port or 5672))
+ else:
+ return BrokerURL(scheme=scheme, user=self.authUser, password=self.authPass, host=self.host, port=(self.port or 5672))
def __repr__(self):
if self.connected:
diff --git a/qpid/tools/src/py/qpid-route b/qpid/tools/src/py/qpid-route
index d98cefd618..f90416d7b0 100755
--- a/qpid/tools/src/py/qpid-route
+++ b/qpid/tools/src/py/qpid-route
@@ -217,11 +217,11 @@ class RouteManager:
added = False
links = self.qmf.getObjects(_class="link")
for link in links:
- url = BrokerURL("%s:%d" % (link.host, link.port))
+ url = BrokerURL(host=link.host, port=link.port)
if url.name() not in self.brokerList:
print " %s..." % url.name(),
try:
- b = self.qmf.addBroker("%s:%d" % (link.host, link.port), config._connTimeout)
+ b = self.qmf.addBroker(url, 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 = "%s:%s" % (link.host, link.port)
+ fromUrl = BrokerURL(host=link.host, port=link.port)
toUrl = bridge.getBroker().getUrl()
found = False
for pair in pairs: