From 95f564f72d26a9633e66f5f4a1ba33d736efda67 Mon Sep 17 00:00:00 2001 From: Pavel Moravec Date: Mon, 16 Jun 2014 08:09:42 +0000 Subject: QPID-5823: Python client should create a node with name starting '\#' git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1602820 13f79535-47bb-0310-9956-ffa450edef68 --- qpid/python/qpid/messaging/driver.py | 11 +++++++++++ qpid/python/qpid/messaging/endpoints.py | 8 -------- 2 files changed, 11 insertions(+), 8 deletions(-) (limited to 'qpid/python') diff --git a/qpid/python/qpid/messaging/driver.py b/qpid/python/qpid/messaging/driver.py index aaff7fd2cb..4ac05d3478 100644 --- a/qpid/python/qpid/messaging/driver.py +++ b/qpid/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/qpid/python/qpid/messaging/endpoints.py b/qpid/python/qpid/messaging/endpoints.py index e69d7a10ae..f1497210ec 100644 --- a/qpid/python/qpid/messaging/endpoints.py +++ b/qpid/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): """ -- cgit v1.2.1