Merge "Make obj_make_compatible consistent"
This commit is contained in:
commit
b830f38da8
|
@ -67,8 +67,7 @@ class BlockDeviceMapping(base.NovaPersistentObject, base.NovaObject):
|
|||
def obj_make_compatible(self, primitive, target_version):
|
||||
target_version = utils.convert_version_to_tuple(target_version)
|
||||
if target_version < (1, 2) and 'instance' in primitive:
|
||||
self.instance.obj_make_compatible(
|
||||
primitive['instance']['nova_object.data'], '1.13')
|
||||
self.instance.obj_make_compatible(primitive['instance'], '1.13')
|
||||
primitive['instance']['nova_object.version'] = '1.13'
|
||||
|
||||
@staticmethod
|
||||
|
|
|
@ -50,8 +50,7 @@ class FixedIP(obj_base.NovaPersistentObject, obj_base.NovaObject):
|
|||
def obj_make_compatible(self, primitive, target_version):
|
||||
target_version = utils.convert_version_to_tuple(target_version)
|
||||
if target_version < (1, 2) and 'instance' in primitive:
|
||||
self.instance.obj_make_compatible(
|
||||
primitive['instance']['nova_object.data'], '1.13')
|
||||
self.instance.obj_make_compatible(primitive['instance'], '1.13')
|
||||
primitive['instance']['nova_object.version'] = '1.13'
|
||||
|
||||
@property
|
||||
|
|
|
@ -43,8 +43,7 @@ class FloatingIP(obj_base.NovaPersistentObject, obj_base.NovaObject):
|
|||
def obj_make_compatible(self, primitive, target_version):
|
||||
target_version = utils.convert_version_to_tuple(target_version)
|
||||
if target_version < (1, 2) and 'fixed_ip' in primitive:
|
||||
self.instance.obj_make_compatible(
|
||||
primitive['fixed_ip']['nova_object.data'], '1.1')
|
||||
self.fixed_ip.obj_make_compatible(primitive['fixed_ip'], '1.1')
|
||||
primitive['fixed_ip']['nova_object.version'] = '1.1'
|
||||
|
||||
@staticmethod
|
||||
|
|
|
@ -225,6 +225,8 @@ class Instance(base.NovaPersistentObject, base.NovaObject):
|
|||
primitive[field] = primitive[field].encode('ascii', 'replace')
|
||||
if target_version < (1, 15) and 'pci_devices' in primitive:
|
||||
# NOTE(baoli): Instance <= 1.14 (icehouse) had PciDeviceList 1.0
|
||||
# NOTE(vish): pci_devices is a list object so we must pull the
|
||||
# underlying primitive out of the nova_object_data.
|
||||
self.pci_devices.obj_make_compatible(
|
||||
primitive['pci_devices']['nova_object.data'], '1.0')
|
||||
primitive['pci_devices']['nova_object.version'] = '1.0'
|
||||
|
|
|
@ -48,9 +48,9 @@ class Service(base.NovaPersistentObject, base.NovaObject):
|
|||
def obj_make_compatible(self, primitive, target_version):
|
||||
target_version = utils.convert_version_to_tuple(target_version)
|
||||
if target_version < (1, 3) and 'compute_node' in primitive:
|
||||
primitive['compute_node'] = (
|
||||
objects.ComputeNode().object_make_compatible(
|
||||
primitive, '1.4'))
|
||||
self.compute_node.obj_make_compatible(
|
||||
primitive['compute_node'], '1.4')
|
||||
primitive['compute_node']['nova_object.version'] = '1.4'
|
||||
|
||||
@staticmethod
|
||||
def _do_compute_node(context, service, db_service):
|
||||
|
|
|
@ -240,6 +240,17 @@ class _TestFloatingIPObject(object):
|
|||
objects.FloatingIPList.destroy(None, ips)
|
||||
destroy_mock.assert_called_once_with(None, ips)
|
||||
|
||||
def test_backport_fixedip_1_1(self):
|
||||
floating = objects.FloatingIP()
|
||||
fixed = objects.FixedIP()
|
||||
floating.fixed_ip = fixed
|
||||
with mock.patch.object(fixed, 'obj_make_compatible') as compat:
|
||||
primitive = {'fixed_ip': {'nova_object.data': {}}}
|
||||
floating.obj_make_compatible(primitive, '1.1')
|
||||
compat.assert_called_once_with(primitive['fixed_ip'], '1.1')
|
||||
self.assertEqual('1.1',
|
||||
primitive['fixed_ip']['nova_object.version'])
|
||||
|
||||
|
||||
class TestFloatingIPObject(test_objects._LocalTest,
|
||||
_TestFloatingIPObject):
|
||||
|
|
Loading…
Reference in New Issue