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)
def _init_serializer(): serializer = rpc.RequestContextSerializer( objects_base.MagnumObjectSerializer()) if osprofiler: serializer = rpc.ProfilerRequestContextSerializer(serializer) else: serializer = rpc.RequestContextSerializer(serializer) return serializer
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)
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)
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 )
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)
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)
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)
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))