yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #13667
[Bug 1308805] [NEW] object backport doesn't work
Public bug reported:
The code to backport an object doesn't work at all. This code is only
called in one place.
In nova/objects/base.py in _process_object
If the version is incompatible it tries to backport it:
def _process_object(self, context, objprim):
try:
objinst = NovaObject.obj_from_primitive(objprim, context=context)
except exception.IncompatibleObjectVersion as e:
objinst = self.conductor.object_backport(context, objprim,
e.kwargs['supported'])
return objinst
You'll note here the object_backport is being passed in a primitive and a supported version and expecting back an object.
However the object_backport method does:
def object_backport(self, context, objinst, target_version):
return objinst.obj_to_primitive(target_version=target_version)
You'll see here it is expecting to be passed in an object and will return a primitive. Exactly the opposite of the only code in nova that calls this code.
This is meaning we can't have Icehouse and Havana working together when
trying to upgrade.
Any ideas?
** Affects: nova
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1308805
Title:
object backport doesn't work
Status in OpenStack Compute (Nova):
New
Bug description:
The code to backport an object doesn't work at all. This code is only
called in one place.
In nova/objects/base.py in _process_object
If the version is incompatible it tries to backport it:
def _process_object(self, context, objprim):
try:
objinst = NovaObject.obj_from_primitive(objprim, context=context)
except exception.IncompatibleObjectVersion as e:
objinst = self.conductor.object_backport(context, objprim,
e.kwargs['supported'])
return objinst
You'll note here the object_backport is being passed in a primitive and a supported version and expecting back an object.
However the object_backport method does:
def object_backport(self, context, objinst, target_version):
return objinst.obj_to_primitive(target_version=target_version)
You'll see here it is expecting to be passed in an object and will return a primitive. Exactly the opposite of the only code in nova that calls this code.
This is meaning we can't have Icehouse and Havana working together
when trying to upgrade.
Any ideas?
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1308805/+subscriptions
Follow ups
References