summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorPavel Moravec <pmoravec@apache.org>2014-06-16 08:09:42 +0000
committerPavel Moravec <pmoravec@apache.org>2014-06-16 08:09:42 +0000
commit421efafa6afe10dca95784d22d9593285deb8524 (patch)
tree3e8bf282ed62c8c7c77b08c419e2313d50b8ca5a /python
parent80c035cd28b2e0f643e00877a69ab73b4c81d356 (diff)
downloadqpid-python-421efafa6afe10dca95784d22d9593285deb8524.tar.gz
QPID-5823: Python client should create a node with name starting '\#'
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1602820 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'python')
-rw-r--r--python/qpid/messaging/driver.py11
-rw-r--r--python/qpid/messaging/endpoints.py8
2 files changed, 11 insertions, 8 deletions
diff --git a/python/qpid/messaging/driver.py b/python/qpid/messaging/driver.py
index aaff7fd2cb..4ac05d3478 100644
--- a/python/qpid/messaging/driver.py
+++ b/python/qpid/messaging/driver.py
@@ -34,6 +34,7 @@ from qpid.selector import Selector
from qpid.util import URL, default,get_client_properties_with_defaults
from qpid.validator import And, Context, List, Map, Types, Values
from threading import Condition, Thread
+from qpid.datatypes import uuid4
log = getLogger("qpid.messaging")
rawlog = getLogger("qpid.messaging.io.raw")
@@ -941,6 +942,16 @@ class Engine:
# XXX: subject
if lnk.options is None:
lnk.options = {}
+ # if address starts with '#', create auxiliary queue with name preceded by uuid
+ if addr.startswith("#") and 'create' not in lnk.options:
+ lnk.name = str(uuid4()) + lnk.name
+ lnk.options['create'] = "always"
+ if 'node' not in lnk.options:
+ lnk.options['node'] = {}
+ if 'x-declare' not in lnk.options['node']:
+ lnk.options['node']['x-declare'] = {}
+ lnk.options['node']['x-declare']['auto-delete'] = "True"
+ lnk.options['node']['x-declare']['exclusive'] = "True"
except address.LexError, e:
return MalformedAddress(text=str(e))
except address.ParseError, e:
diff --git a/python/qpid/messaging/endpoints.py b/python/qpid/messaging/endpoints.py
index e69d7a10ae..f1497210ec 100644
--- a/python/qpid/messaging/endpoints.py
+++ b/python/qpid/messaging/endpoints.py
@@ -596,7 +596,6 @@ class Session(Endpoint):
@rtype: Sender
@return: a new Sender for the specified target
"""
- target = _mangle(target)
sender = Sender(self, self.next_sender_id, target, options)
self.next_sender_id += 1
self.senders.append(sender)
@@ -620,7 +619,6 @@ class Session(Endpoint):
@rtype: Receiver
@return: a new Receiver for the specified source
"""
- source = _mangle(source)
receiver = Receiver(self, self.next_receiver_id, source, options)
self.next_receiver_id += 1
self.receivers.append(receiver)
@@ -766,12 +764,6 @@ class Session(Endpoint):
finally:
self.connection._remove_session(self)
-def _mangle(addr):
- if addr and addr.startswith("#"):
- return str(uuid4()) + addr
- else:
- return addr
-
class Sender(Endpoint):
"""