Fix all invalid obj_make_compatible test case

We use obj_to_primitive() to generate the primitive obj, the
origin obj value is primitive['nova_object.data'], so, we need
transfer primitive to obj data before obj_make_compatible
called.

This patch fixed all invalid obj_make_compatible test cases.

Closes-Bug: #1776373

Change-Id: I048b22b2447b671228a7ba067e06c59b59e81ce5
This commit is contained in:
Yikun Jiang 2018-06-11 20:30:55 +08:00 committed by Yikun Jiang (Kero)
parent 2afc5fed1f
commit 4729fa8196
7 changed files with 35 additions and 12 deletions

View File

@ -395,10 +395,14 @@ class _TestBlockDeviceMappingObject(object):
def test_obj_make_compatible_pre_1_17(self):
values = {'source_type': 'volume', 'volume_id': 'fake-vol-id',
'destination_type': 'volume',
'instance_uuid': uuids.instance}
'instance_uuid': uuids.instance, 'tag': 'fake-tag'}
bdm = objects.BlockDeviceMapping(context=self.context, **values)
primitive = bdm.obj_to_primitive(target_version='1.16')
data = lambda x: x['nova_object.data']
primitive = data(bdm.obj_to_primitive(target_version='1.17'))
self.assertIn('tag', primitive)
primitive = data(bdm.obj_to_primitive(target_version='1.16'))
self.assertNotIn('tag', primitive)
self.assertIn('volume_id', primitive)
def test_obj_make_compatible_pre_1_18(self):
values = {'source_type': 'volume', 'volume_id': 'fake-vol-id',
@ -406,16 +410,20 @@ class _TestBlockDeviceMappingObject(object):
'instance_uuid': uuids.instance,
'attachment_id': uuids.attachment_id}
bdm = objects.BlockDeviceMapping(context=self.context, **values)
primitive = bdm.obj_to_primitive(target_version='1.17')
data = lambda x: x['nova_object.data']
primitive = data(bdm.obj_to_primitive(target_version='1.17'))
self.assertNotIn('attachment_id', primitive)
self.assertIn('volume_id', primitive)
def test_obj_make_compatible_pre_1_19(self):
values = {'source_type': 'volume', 'volume_id': 'fake-vol-id',
'destination_type': 'volume',
'instance_uuid': uuids.instance, 'uuid': uuids.bdm}
bdm = objects.BlockDeviceMapping(context=self.context, **values)
primitive = bdm.obj_to_primitive(target_version='1.18')
data = lambda x: x['nova_object.data']
primitive = data(bdm.obj_to_primitive(target_version='1.18'))
self.assertNotIn('uuid', primitive)
self.assertIn('volume_id', primitive)
class TestBlockDeviceMappingUUIDMigration(test.TestCase):

View File

@ -166,8 +166,11 @@ class _TestBuildRequestObject(object):
def test_obj_make_compatible_pre_1_3(self):
obj = fake_build_request.fake_req_obj(self.context)
build_request_obj = objects.BuildRequest(self.context)
obj_primitive = obj.obj_to_primitive()
data = lambda x: x['nova_object.data']
obj_primitive = data(obj.obj_to_primitive())
self.assertIn('tags', obj_primitive)
build_request_obj.obj_make_compatible(obj_primitive, '1.2')
self.assertIn('instance_uuid', obj_primitive)
self.assertNotIn('tags', obj_primitive)
def test_create_with_tags_set(self):

View File

@ -361,8 +361,11 @@ class TestFlavor(test_objects._LocalTest, _TestFlavor):
# Test compatibility.
flavor.description = 'flavor descriptions are not backward compatible'
flavor_primitive = flavor.obj_to_primitive()
data = lambda x: x['nova_object.data']
flavor_primitive = data(flavor.obj_to_primitive())
self.assertIn('description', flavor_primitive)
flavor.obj_make_compatible(flavor_primitive, '1.1')
self.assertIn('name', flavor_primitive)
self.assertNotIn('description', flavor_primitive)

View File

@ -297,7 +297,8 @@ class _TestInstanceGroupObject(object):
def test_obj_make_compatible(self):
obj = objects.InstanceGroup(self.context, **_INST_GROUP_OBJ_VALS)
obj_primitive = obj.obj_to_primitive()
data = lambda x: x['nova_object.data']
obj_primitive = data(obj.obj_to_primitive())
self.assertNotIn('metadetails', obj_primitive)
obj.obj_make_compatible(obj_primitive, '1.6')
self.assertEqual({}, obj_primitive['metadetails'])

View File

@ -195,8 +195,12 @@ class _TestInstanceNUMATopology(object):
topo_obj = objects.InstanceNUMACell(
cpuset_reserved=set([1, 2]))
versions = ovo_base.obj_tree_get_versions('InstanceNUMACell')
primitive = topo_obj.obj_to_primitive(target_version='1.3',
version_manifest=versions)
data = lambda x: x['nova_object.data']
primitive = data(topo_obj.obj_to_primitive(target_version='1.4',
version_manifest=versions))
self.assertIn('cpuset_reserved', primitive)
primitive = data(topo_obj.obj_to_primitive(target_version='1.3',
version_manifest=versions))
self.assertNotIn('cpuset_reserved', primitive)

View File

@ -133,7 +133,10 @@ class _TestNetworkRequestObject(object):
def test_obj_make_compatible_pre_1_2(self):
net_req = objects.NetworkRequest()
net_req.tag = 'foo'
primitive = net_req.obj_to_primitive(target_version='1.1')
data = lambda x: x['nova_object.data']
primitive = data(net_req.obj_to_primitive(target_version='1.2'))
self.assertIn('tag', primitive)
primitive = data(net_req.obj_to_primitive(target_version='1.1'))
self.assertNotIn('tag', primitive)

View File

@ -145,9 +145,10 @@ class _TestVirtualInterface(object):
vif.instance_uuid = uuids.instance
vif.uuid = uuids.uuid
vif.tag = 'fake-tag'
primitive = vif.obj_to_primitive(target_version='1.0')
data = lambda x: x['nova_object.data']
primitive = data(vif.obj_to_primitive(target_version='1.0'))
self.assertNotIn('tag', primitive)
self.assertIn('uuid', primitive)
class TestVirtualInterfaceObject(test_objects._LocalTest,