Merge "Fix incompatible version handling in BuildRequest"

This commit is contained in:
Zuul 2019-01-18 00:46:13 +00:00 committed by Gerrit Code Review
commit d89579a66a
2 changed files with 4 additions and 3 deletions

View File

@ -71,7 +71,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
@ -80,7 +80,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('Could not deserialize instance in BuildRequest')
raise exception.BuildRequestNotFound(uuid=self.instance_uuid)
# NOTE(sbauza): The instance primitive should already have the deleted

View File

@ -59,7 +59,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,