Esempio n. 1
0
    def _test_deserialize_entity_newer(self,
                                       obj_version,
                                       backported_to,
                                       mock_indirection_api,
                                       my_version='1.6'):
        ser = base.MagnumObjectSerializer()
        mock_indirection_api.object_backport_versions.side_effect \
            = NotImplementedError()
        mock_indirection_api.object_backport.return_value = 'backported'

        @base.MagnumObjectRegistry.register
        class MyTestObj(MyObj):
            VERSION = my_version

        obj = MyTestObj()
        obj.VERSION = obj_version
        primitive = obj.obj_to_primitive()
        result = ser.deserialize_entity(self.context, primitive)
        if backported_to is None:
            self.assertEqual(False,
                             mock_indirection_api.object_backport.called)
        else:
            self.assertEqual('backported', result)
            mock_indirection_api.object_backport.assert_called_with(
                self.context, primitive, backported_to)
Esempio n. 2
0
def _init_serializer():
    serializer = rpc.RequestContextSerializer(
        objects_base.MagnumObjectSerializer())
    if osprofiler:
        serializer = rpc.ProfilerRequestContextSerializer(serializer)
    else:
        serializer = rpc.RequestContextSerializer(serializer)
    return serializer
Esempio n. 3
0
 def test_object_serialization(self):
     ser = base.MagnumObjectSerializer()
     obj = MyObj(self.context)
     primitive = ser.serialize_entity(self.context, obj)
     self.assertIn('magnum_object.name', primitive)
     obj2 = ser.deserialize_entity(self.context, primitive)
     self.assertIsInstance(obj2, MyObj)
     self.assertEqual(self.context, obj2._context)
Esempio n. 4
0
 def __init__(self, topic, server, handlers):
     super(Service, self).__init__()
     serializer = rpc.RequestContextSerializer(
         objects_base.MagnumObjectSerializer())
     transport = messaging.get_transport(cfg.CONF,
                                         aliases=TRANSPORT_ALIASES)
     # TODO(asalkeld) add support for version='x.y'
     target = messaging.Target(topic=topic, server=server)
     self._server = messaging.get_rpc_server(transport, target, handlers,
                                             serializer=serializer)
Esempio n. 5
0
 def __init__(self, context=None, topic=None, server=None,
              timeout=None):
     self._context = context
     if topic is None:
         topic = ''
     target = messaging.Target(topic=topic, server=server)
     self._client = rpc.get_client(
         target,
         serializer=objects_base.MagnumObjectSerializer(),
         timeout=timeout
     )
Esempio n. 6
0
    def __init__(self, topic, server, handlers, binary):
        super(Service, self).__init__()
        # TODO(asalkeld) add support for version='x.y'
        target = messaging.Target(topic=topic, server=server)
        self._server = rpc.get_server(
            target, handlers,
            serializer=objects_base.MagnumObjectSerializer()
        )

        self.binary = binary
        profiler.setup(binary, CONF.host)
Esempio n. 7
0
 def test_object_serialization_iterables(self):
     ser = base.MagnumObjectSerializer()
     obj = MyObj(self.context)
     for iterable in (list, tuple, set):
         thing = iterable([obj])
         primitive = ser.serialize_entity(self.context, thing)
         self.assertEqual(1, len(primitive))
         for item in primitive:
             self.assertFalse(isinstance(item, base.MagnumObject))
         thing2 = ser.deserialize_entity(self.context, primitive)
         self.assertEqual(1, len(thing2))
         for item in thing2:
             self.assertIsInstance(item, MyObj)
Esempio n. 8
0
 def __init__(self, transport=None, context=None, topic=None):
     serializer = RequestContextSerializer(
         objects_base.MagnumObjectSerializer())
     if transport is None:
         exmods = rpc.get_allowed_exmods()
         transport = messaging.get_transport(cfg.CONF,
                                             allowed_remote_exmods=exmods,
                                             aliases=TRANSPORT_ALIASES)
     self._context = context
     if topic is None:
         topic = ''
     target = messaging.Target(topic=topic)
     self._client = messaging.RPCClient(transport,
                                        target,
                                        serializer=serializer)
Esempio n. 9
0
 def test_deserialize_entity_primitive(self):
     ser = base.MagnumObjectSerializer()
     for thing in (1, 'foo', [1, 2], {'foo': 'bar'}):
         self.assertEqual(thing, ser.deserialize_entity(None, thing))