diff options
author | Ruby Loo <ruby.loo@intel.com> | 2017-06-23 01:00:42 -0400 |
---|---|---|
committer | Ruby Loo <ruby.loo@intel.com> | 2017-07-13 12:16:30 -0400 |
commit | 8e7d795db5e614de6a3d8dd19ff26f869c8e9f9a (patch) | |
tree | 46119b22eaf04f25a32fc8f265a334d170605717 /ironic/common/rpc_service.py | |
parent | 39c87797163c60801bec547f134fe6fa10c288a9 (diff) | |
download | ironic-8e7d795db5e614de6a3d8dd19ff26f869c8e9f9a.tar.gz |
Modifications for rolling upgrades
This contains some changes to conversions of objects during a rolling
upgrade.
This changes objects.base.IronicObject.convert_to_version() to have a new
parameter 'remove_unavail_fields': True (default) to remove fields that are
unavailable in the target version -- for serialization/deserialization
of objects. False to change unavailable fields as appropriate (for DB
interactions). The reason for doing this is to make sure that during
serialization (eg for RPC), that we don't include any object
fields that are not supported.
To make the code a bit more performant, we don't perform object
conversions when the API service is serializing the objects for RPC to
the conductor. This is because the conductor will always be running the
same or a newer release as the API service.
Change-Id: I6f77b24199412e3489dd6f3dcf0f51ed04c5c7c0
Partial-Bug: #1526283
Diffstat (limited to 'ironic/common/rpc_service.py')
-rw-r--r-- | ironic/common/rpc_service.py | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/ironic/common/rpc_service.py b/ironic/common/rpc_service.py index 5a2aeacfe..a2aebb56c 100644 --- a/ironic/common/rpc_service.py +++ b/ironic/common/rpc_service.py @@ -46,7 +46,7 @@ class RPCService(service.Service): target = messaging.Target(topic=self.topic, server=self.host) endpoints = [self.manager] - serializer = objects_base.IronicObjectSerializer() + serializer = objects_base.IronicObjectSerializer(is_server=True) self.rpcserver = rpc.get_server(target, endpoints, serializer) self.rpcserver.start() |