Author: pmoravec
Date: Mon Jul  7 06:53:25 2014
New Revision: 1608350

URL: http://svn.apache.org/r1608350
Log:
[QPID-5823]: Python client should create a node with name starting '\#'

Modified:
    qpid/trunk/qpid/python/qpid/messaging/driver.py
    qpid/trunk/qpid/python/qpid/messaging/endpoints.py

Modified: qpid/trunk/qpid/python/qpid/messaging/driver.py
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/python/qpid/messaging/driver.py?rev=1608350&r1=1608349&r2=1608350&view=diff
==============================================================================
--- qpid/trunk/qpid/python/qpid/messaging/driver.py (original)
+++ qpid/trunk/qpid/python/qpid/messaging/driver.py Mon Jul  7 06:53:25 2014
@@ -29,6 +29,7 @@ from qpid.messaging import address, tran
 from qpid.messaging.constants import UNLIMITED, REJECTED, RELEASED
 from qpid.messaging.exceptions import *
 from qpid.messaging.message import get_codec, Disposition, Message
+from qpid.messaging.endpoints import MangledString
 from qpid.ops import *
 from qpid.selector import Selector
 from qpid.util import URL, default,get_client_properties_with_defaults
@@ -945,6 +946,14 @@ class Engine:
         # XXX: subject
         if lnk.options is None:
           lnk.options = {}
+        if isinstance(addr, MangledString):
+          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:

Modified: qpid/trunk/qpid/python/qpid/messaging/endpoints.py
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/python/qpid/messaging/endpoints.py?rev=1608350&r1=1608349&r2=1608350&view=diff
==============================================================================
--- qpid/trunk/qpid/python/qpid/messaging/endpoints.py (original)
+++ qpid/trunk/qpid/python/qpid/messaging/endpoints.py Mon Jul  7 06:53:25 2014
@@ -778,9 +778,11 @@ class Session(Endpoint):
     finally:
       self.connection._remove_session(self)
 
+class MangledString(str): pass
+
 def _mangle(addr):
   if addr and addr.startswith("#"):
-    return str(uuid4()) + addr
+    return MangledString(str(uuid4()) + addr)
   else:
     return addr
 



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to