]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Pass serializer to oslo.messaging Notifier
authorIhar Hrachyshka <ihrachys@redhat.com>
Fri, 20 Jun 2014 11:29:06 +0000 (13:29 +0200)
committerIhar Hrachyshka <ihrachys@redhat.com>
Fri, 20 Jun 2014 12:58:28 +0000 (14:58 +0200)
oslo.messaging has a workaround [1] that requires context to be
transformed to pure dict before passing into amqpdriver.

Renamed serializer class to reflect its broader usage.

Updated FakeNotifier to expect serializer and other keyword arguments
supported by oslo.messaging Notifier class.

[1]: oslo/messaging/_drivers/amqpdriver.py#L337

blueprint oslo-messaging

Closes-Bug: #1332412
Change-Id: I7e7658d03639afae7bf6d3ad71445cb5b6459c09

neutron/common/rpc.py
neutron/tests/fake_notifier.py

index 98d46814044542504d6b3985dccd4bdcc3450693..827919c0027081ab21b6cd3374fe2e7f45f7b292 100644 (file)
@@ -54,7 +54,8 @@ def init(conf):
     TRANSPORT = messaging.get_transport(conf,
                                         allowed_remote_exmods=exmods,
                                         aliases=TRANSPORT_ALIASES)
-    NOTIFIER = messaging.Notifier(TRANSPORT)
+    serializer = RequestContextSerializer()
+    NOTIFIER = messaging.Notifier(TRANSPORT, serializer=serializer)
 
 
 def cleanup():
@@ -79,7 +80,7 @@ def get_allowed_exmods():
 
 def get_client(target, version_cap=None, serializer=None):
     assert TRANSPORT is not None
-    serializer = PluginRpcSerializer(serializer)
+    serializer = RequestContextSerializer(serializer)
     return messaging.RPCClient(TRANSPORT,
                                target,
                                version_cap=version_cap,
@@ -88,7 +89,7 @@ def get_client(target, version_cap=None, serializer=None):
 
 def get_server(target, endpoints, serializer=None):
     assert TRANSPORT is not None
-    serializer = PluginRpcSerializer(serializer)
+    serializer = RequestContextSerializer(serializer)
     return messaging.get_rpc_server(TRANSPORT,
                                     target,
                                     endpoints,
@@ -103,12 +104,12 @@ def get_notifier(service=None, host=None, publisher_id=None):
     return NOTIFIER.prepare(publisher_id=publisher_id)
 
 
-class PluginRpcSerializer(om_serializer.Serializer):
+class RequestContextSerializer(om_serializer.Serializer):
     """This serializer is used to convert RPC common context into
     Neutron Context.
     """
-    def __init__(self, base):
-        super(PluginRpcSerializer, self).__init__()
+    def __init__(self, base=None):
+        super(RequestContextSerializer, self).__init__()
         self._base = base
 
     def serialize_entity(self, ctxt, entity):
index 012f3351eb7aace6218dd9634c2a3709739c058c..2972fd62958de6475683b15020505d1a6deaa2f1 100644 (file)
@@ -30,7 +30,9 @@ FakeMessage = collections.namedtuple('Message',
 
 class FakeNotifier(object):
 
-    def __init__(self, transport, publisher_id=None):
+    def __init__(self, transport, publisher_id=None,
+                 driver=None, topic=None,
+                 serializer=None, retry=None):
         self.transport = transport
         self.publisher_id = publisher_id
         for priority in ('debug', 'info', 'warn', 'error', 'critical'):