summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2020-03-19 21:09:41 +0000
committerGerrit Code Review <review@openstack.org>2020-03-19 21:09:41 +0000
commit97b7f2bc7e265e0f4aa952220f08bde374f42803 (patch)
tree76d4fbe2b89ccdb7438f409c73b0afda594cd9e9
parent0f7e0da5e494840cd5878e34397c4ad71abaafed (diff)
parent8a20b086a14dd73bfa57cdef632a28e72e265eb2 (diff)
downloadnova-97b7f2bc7e265e0f4aa952220f08bde374f42803.tar.gz
Merge "Fix incompatible version handling in BuildRequest" into stable/ocata
-rw-r--r--nova/objects/build_request.py5
-rw-r--r--nova/tests/unit/objects/test_build_request.py2
2 files changed, 4 insertions, 3 deletions
diff --git a/nova/objects/build_request.py b/nova/objects/build_request.py
index cf1e19a96e..cf38b7128e 100644
--- a/nova/objects/build_request.py
+++ b/nova/objects/build_request.py
@@ -68,7 +68,7 @@ class BuildRequest(base.NovaObject):
LOG.debug('Failed to load instance from BuildRequest with uuid '
'%s because it is None', self.instance_uuid)
raise exception.BuildRequestNotFound(uuid=self.instance_uuid)
- except ovoo_exc.IncompatibleObjectVersion as exc:
+ except ovoo_exc.IncompatibleObjectVersion:
# This should only happen if proper service upgrade strategies are
# not followed. Log the exception and raise BuildRequestNotFound.
# If the instance can't be loaded this object is useless and may
@@ -77,7 +77,8 @@ class BuildRequest(base.NovaObject):
'with uuid %(instance_uuid)s. Found version %(version)s '
'which is not supported here.',
dict(instance_uuid=self.instance_uuid,
- version=exc.objver))
+ version=jsonutils.loads(
+ db_instance)["nova_object.version"]))
LOG.exception(_LE('Could not deserialize instance in '
'BuildRequest'))
raise exception.BuildRequestNotFound(uuid=self.instance_uuid)
diff --git a/nova/tests/unit/objects/test_build_request.py b/nova/tests/unit/objects/test_build_request.py
index 0812c98aee..54591dc9ca 100644
--- a/nova/tests/unit/objects/test_build_request.py
+++ b/nova/tests/unit/objects/test_build_request.py
@@ -58,7 +58,7 @@ class _TestBuildRequestObject(object):
instance = fake_instance.fake_instance_obj(self.context,
objects.Instance, uuid=fake_req['instance_uuid'])
instance.VERSION = '99'
- fake_req['instance'] = jsonutils.dumps(instance.obj_to_primitive)
+ fake_req['instance'] = jsonutils.dumps(instance.obj_to_primitive())
get_by_uuid.return_value = fake_req
self.assertRaises(exception.BuildRequestNotFound,