Implements proper UUID format for few objects tests.
Currently some of the unittests are using non valid UUID format for the FieldType UUID. This is preparation work to add UUID validation in the oslo_versionedobjects/fields.py. Without this change adding validation will cause tests to fail. Change-Id: I6c32f33f4062c1caadffcfd9905113e9f99f5579
This commit is contained in:
parent
a1143e184d
commit
1c67948f13
@ -44,6 +44,7 @@ from nova.tests.unit.objects import test_migration_context as test_mig_ctxt
|
|||||||
from nova.tests.unit.objects import test_objects
|
from nova.tests.unit.objects import test_objects
|
||||||
from nova.tests.unit.objects import test_security_group
|
from nova.tests.unit.objects import test_security_group
|
||||||
from nova.tests.unit.objects import test_vcpu_model
|
from nova.tests.unit.objects import test_vcpu_model
|
||||||
|
from nova.tests import uuidsentinel as uuids
|
||||||
from nova import utils
|
from nova import utils
|
||||||
|
|
||||||
|
|
||||||
@ -53,7 +54,7 @@ class _TestInstanceObject(object):
|
|||||||
db_inst = fake_instance.fake_db_instance(id=2,
|
db_inst = fake_instance.fake_db_instance(id=2,
|
||||||
access_ip_v4='1.2.3.4',
|
access_ip_v4='1.2.3.4',
|
||||||
access_ip_v6='::1')
|
access_ip_v6='::1')
|
||||||
db_inst['uuid'] = '34fd7606-2ed5-42c7-ad46-76240c088801'
|
db_inst['uuid'] = uuids.db_instance
|
||||||
db_inst['cell_name'] = 'api!child'
|
db_inst['cell_name'] = 'api!child'
|
||||||
db_inst['terminated_at'] = None
|
db_inst['terminated_at'] = None
|
||||||
db_inst['deleted_at'] = None
|
db_inst['deleted_at'] = None
|
||||||
@ -76,13 +77,14 @@ class _TestInstanceObject(object):
|
|||||||
def test_datetime_deserialization(self):
|
def test_datetime_deserialization(self):
|
||||||
red_letter_date = timeutils.parse_isotime(
|
red_letter_date = timeutils.parse_isotime(
|
||||||
utils.isotime(datetime.datetime(1955, 11, 5)))
|
utils.isotime(datetime.datetime(1955, 11, 5)))
|
||||||
inst = objects.Instance(uuid='fake-uuid', launched_at=red_letter_date)
|
inst = objects.Instance(uuid=uuids.instance,
|
||||||
|
launched_at=red_letter_date)
|
||||||
primitive = inst.obj_to_primitive()
|
primitive = inst.obj_to_primitive()
|
||||||
expected = {'nova_object.name': 'Instance',
|
expected = {'nova_object.name': 'Instance',
|
||||||
'nova_object.namespace': 'nova',
|
'nova_object.namespace': 'nova',
|
||||||
'nova_object.version': inst.VERSION,
|
'nova_object.version': inst.VERSION,
|
||||||
'nova_object.data':
|
'nova_object.data':
|
||||||
{'uuid': 'fake-uuid',
|
{'uuid': uuids.instance,
|
||||||
'launched_at': '1955-11-05T00:00:00Z'},
|
'launched_at': '1955-11-05T00:00:00Z'},
|
||||||
'nova_object.changes': ['launched_at', 'uuid']}
|
'nova_object.changes': ['launched_at', 'uuid']}
|
||||||
self.assertJsonEqual(primitive, expected)
|
self.assertJsonEqual(primitive, expected)
|
||||||
@ -91,14 +93,14 @@ class _TestInstanceObject(object):
|
|||||||
self.assertEqual(red_letter_date, inst2.launched_at)
|
self.assertEqual(red_letter_date, inst2.launched_at)
|
||||||
|
|
||||||
def test_ip_deserialization(self):
|
def test_ip_deserialization(self):
|
||||||
inst = objects.Instance(uuid='fake-uuid', access_ip_v4='1.2.3.4',
|
inst = objects.Instance(uuid=uuids.instance, access_ip_v4='1.2.3.4',
|
||||||
access_ip_v6='::1')
|
access_ip_v6='::1')
|
||||||
primitive = inst.obj_to_primitive()
|
primitive = inst.obj_to_primitive()
|
||||||
expected = {'nova_object.name': 'Instance',
|
expected = {'nova_object.name': 'Instance',
|
||||||
'nova_object.namespace': 'nova',
|
'nova_object.namespace': 'nova',
|
||||||
'nova_object.version': inst.VERSION,
|
'nova_object.version': inst.VERSION,
|
||||||
'nova_object.data':
|
'nova_object.data':
|
||||||
{'uuid': 'fake-uuid',
|
{'uuid': uuids.instance,
|
||||||
'access_ip_v4': '1.2.3.4',
|
'access_ip_v4': '1.2.3.4',
|
||||||
'access_ip_v6': '::1'},
|
'access_ip_v6': '::1'},
|
||||||
'nova_object.changes': ['uuid', 'access_ip_v6',
|
'nova_object.changes': ['uuid', 'access_ip_v6',
|
||||||
@ -211,7 +213,7 @@ class _TestInstanceObject(object):
|
|||||||
self.assertEqual({'foo': 'bar'}, meta2)
|
self.assertEqual({'foo': 'bar'}, meta2)
|
||||||
|
|
||||||
def test_load_invalid(self):
|
def test_load_invalid(self):
|
||||||
inst = objects.Instance(context=self.context, uuid='fake-uuid')
|
inst = objects.Instance(context=self.context, uuid=uuids.instance)
|
||||||
self.assertRaises(exception.ObjectActionError,
|
self.assertRaises(exception.ObjectActionError,
|
||||||
inst.obj_load_attr, 'foo')
|
inst.obj_load_attr, 'foo')
|
||||||
|
|
||||||
@ -219,13 +221,13 @@ class _TestInstanceObject(object):
|
|||||||
# isotime doesn't have microseconds and is always UTC
|
# isotime doesn't have microseconds and is always UTC
|
||||||
self.mox.StubOutWithMock(db, 'instance_get_by_uuid')
|
self.mox.StubOutWithMock(db, 'instance_get_by_uuid')
|
||||||
fake_instance = self.fake_instance
|
fake_instance = self.fake_instance
|
||||||
db.instance_get_by_uuid(self.context, 'fake-uuid',
|
db.instance_get_by_uuid(self.context, uuids.instance,
|
||||||
columns_to_join=['info_cache',
|
columns_to_join=['info_cache',
|
||||||
'security_groups'],
|
'security_groups'],
|
||||||
use_slave=False
|
use_slave=False
|
||||||
).AndReturn(fake_instance)
|
).AndReturn(fake_instance)
|
||||||
self.mox.ReplayAll()
|
self.mox.ReplayAll()
|
||||||
inst = objects.Instance.get_by_uuid(self.context, 'fake-uuid')
|
inst = objects.Instance.get_by_uuid(self.context, uuids.instance)
|
||||||
self.assertEqual(fake_instance['id'], inst.id)
|
self.assertEqual(fake_instance['id'], inst.id)
|
||||||
self.assertEqual(fake_instance['launched_at'],
|
self.assertEqual(fake_instance['launched_at'],
|
||||||
inst.launched_at.replace(tzinfo=None))
|
inst.launched_at.replace(tzinfo=None))
|
||||||
@ -260,7 +262,7 @@ class _TestInstanceObject(object):
|
|||||||
self.assertEqual(set([]), inst.obj_what_changed())
|
self.assertEqual(set([]), inst.obj_what_changed())
|
||||||
|
|
||||||
def test_refresh_does_not_recurse(self):
|
def test_refresh_does_not_recurse(self):
|
||||||
inst = objects.Instance(context=self.context, uuid='fake-uuid',
|
inst = objects.Instance(context=self.context, uuid=uuids.instance,
|
||||||
metadata={})
|
metadata={})
|
||||||
inst_copy = objects.Instance()
|
inst_copy = objects.Instance()
|
||||||
inst_copy.uuid = inst.uuid
|
inst_copy.uuid = inst.uuid
|
||||||
@ -432,7 +434,7 @@ class _TestInstanceObject(object):
|
|||||||
# resolved, this test should go away.
|
# resolved, this test should go away.
|
||||||
mock_update.return_value = None, None
|
mock_update.return_value = None, None
|
||||||
inst = objects.Instance(context=self.context, id=123)
|
inst = objects.Instance(context=self.context, id=123)
|
||||||
inst.uuid = 'foo'
|
inst.uuid = uuids.test_instance_not_refresh
|
||||||
inst.pci_devices = pci_device.PciDeviceList()
|
inst.pci_devices = pci_device.PciDeviceList()
|
||||||
inst.save()
|
inst.save()
|
||||||
self.assertNotIn('pci_devices',
|
self.assertNotIn('pci_devices',
|
||||||
@ -446,12 +448,12 @@ class _TestInstanceObject(object):
|
|||||||
fake_obj_numa_topology = objects.InstanceNUMATopology(cells=[
|
fake_obj_numa_topology = objects.InstanceNUMATopology(cells=[
|
||||||
objects.InstanceNUMACell(id=0, cpuset=set([0]), memory=128),
|
objects.InstanceNUMACell(id=0, cpuset=set([0]), memory=128),
|
||||||
objects.InstanceNUMACell(id=1, cpuset=set([1]), memory=128)])
|
objects.InstanceNUMACell(id=1, cpuset=set([1]), memory=128)])
|
||||||
fake_obj_numa_topology.instance_uuid = 'fake-uuid'
|
fake_obj_numa_topology.instance_uuid = uuids.instance
|
||||||
jsonified = fake_obj_numa_topology._to_json()
|
jsonified = fake_obj_numa_topology._to_json()
|
||||||
|
|
||||||
mock_update.return_value = None, None
|
mock_update.return_value = None, None
|
||||||
inst = objects.Instance(
|
inst = objects.Instance(
|
||||||
context=self.context, id=123, uuid='fake-uuid')
|
context=self.context, id=123, uuid=uuids.instance)
|
||||||
inst.numa_topology = fake_obj_numa_topology
|
inst.numa_topology = fake_obj_numa_topology
|
||||||
inst.save()
|
inst.save()
|
||||||
|
|
||||||
@ -829,13 +831,13 @@ class _TestInstanceObject(object):
|
|||||||
|
|
||||||
def test_iteritems_with_extra_attrs(self):
|
def test_iteritems_with_extra_attrs(self):
|
||||||
self.stubs.Set(objects.Instance, 'name', 'foo')
|
self.stubs.Set(objects.Instance, 'name', 'foo')
|
||||||
inst = objects.Instance(uuid='fake-uuid')
|
inst = objects.Instance(uuid=uuids.instance)
|
||||||
self.assertEqual(sorted({'uuid': 'fake-uuid',
|
self.assertEqual(sorted({'uuid': uuids.instance,
|
||||||
'name': 'foo',
|
'name': 'foo',
|
||||||
}.items()), sorted(inst.items()))
|
}.items()), sorted(inst.items()))
|
||||||
|
|
||||||
def _test_metadata_change_tracking(self, which):
|
def _test_metadata_change_tracking(self, which):
|
||||||
inst = objects.Instance(uuid='fake-uuid')
|
inst = objects.Instance(uuid=uuids.instance)
|
||||||
setattr(inst, which, {})
|
setattr(inst, which, {})
|
||||||
inst.obj_reset_changes()
|
inst.obj_reset_changes()
|
||||||
getattr(inst, which)['foo'] = 'bar'
|
getattr(inst, which)['foo'] = 'bar'
|
||||||
@ -961,11 +963,11 @@ class _TestInstanceObject(object):
|
|||||||
deleted_at = datetime.datetime(1955, 11, 6)
|
deleted_at = datetime.datetime(1955, 11, 6)
|
||||||
fake_inst = fake_instance.fake_db_instance(deleted_at=deleted_at,
|
fake_inst = fake_instance.fake_db_instance(deleted_at=deleted_at,
|
||||||
deleted=True)
|
deleted=True)
|
||||||
db.instance_destroy(self.context, 'fake-uuid',
|
db.instance_destroy(self.context, uuids.instance,
|
||||||
constraint=None).AndReturn(fake_inst)
|
constraint=None).AndReturn(fake_inst)
|
||||||
self.mox.ReplayAll()
|
self.mox.ReplayAll()
|
||||||
inst = objects.Instance(context=self.context, id=1, uuid='fake-uuid',
|
inst = objects.Instance(context=self.context, id=1,
|
||||||
host='foo')
|
uuid=uuids.instance, host='foo')
|
||||||
inst.destroy()
|
inst.destroy()
|
||||||
self.assertEqual(timeutils.normalize_time(deleted_at),
|
self.assertEqual(timeutils.normalize_time(deleted_at),
|
||||||
timeutils.normalize_time(inst.deleted_at))
|
timeutils.normalize_time(inst.deleted_at))
|
||||||
@ -998,7 +1000,8 @@ class _TestInstanceObject(object):
|
|||||||
self.flags(enable=True, cell_type='compute', group='cells')
|
self.flags(enable=True, cell_type='compute', group='cells')
|
||||||
fake_inst = fake_instance.fake_db_instance(deleted=True)
|
fake_inst = fake_instance.fake_db_instance(deleted=True)
|
||||||
mock_destroy.return_value = fake_inst
|
mock_destroy.return_value = fake_inst
|
||||||
inst = objects.Instance(context=self.context, id=1, uuid='fake-uuid')
|
inst = objects.Instance(context=self.context, id=1,
|
||||||
|
uuid=uuids.instance)
|
||||||
inst.destroy()
|
inst.destroy()
|
||||||
mock_destroy_at_top.assert_called_once_with(self.context, mock.ANY)
|
mock_destroy_at_top.assert_called_once_with(self.context, mock.ANY)
|
||||||
actual_inst = mock_destroy_at_top.call_args[0][1]
|
actual_inst = mock_destroy_at_top.call_args[0][1]
|
||||||
@ -1010,7 +1013,8 @@ class _TestInstanceObject(object):
|
|||||||
mock_destroy_at_top):
|
mock_destroy_at_top):
|
||||||
fake_inst = fake_instance.fake_db_instance(deleted=True)
|
fake_inst = fake_instance.fake_db_instance(deleted=True)
|
||||||
mock_destroy.return_value = fake_inst
|
mock_destroy.return_value = fake_inst
|
||||||
inst = objects.Instance(context=self.context, id=1, uuid='fake-uuid')
|
inst = objects.Instance(context=self.context, id=1,
|
||||||
|
uuid=uuids.instance)
|
||||||
inst.destroy()
|
inst.destroy()
|
||||||
self.assertFalse(mock_destroy_at_top.called)
|
self.assertFalse(mock_destroy_at_top.called)
|
||||||
|
|
||||||
@ -1108,7 +1112,7 @@ class _TestInstanceObject(object):
|
|||||||
@mock.patch.object(db, 'instance_metadata_delete')
|
@mock.patch.object(db, 'instance_metadata_delete')
|
||||||
def test_delete_metadata_key(self, db_delete):
|
def test_delete_metadata_key(self, db_delete):
|
||||||
inst = objects.Instance(context=self.context,
|
inst = objects.Instance(context=self.context,
|
||||||
id=1, uuid='fake-uuid')
|
id=1, uuid=uuids.instance)
|
||||||
inst.metadata = {'foo': '1', 'bar': '2'}
|
inst.metadata = {'foo': '1', 'bar': '2'}
|
||||||
inst.obj_reset_changes()
|
inst.obj_reset_changes()
|
||||||
inst.delete_metadata_key('foo')
|
inst.delete_metadata_key('foo')
|
||||||
@ -1126,8 +1130,7 @@ class _TestInstanceObject(object):
|
|||||||
self.assertEqual({}, inst._orig_system_metadata)
|
self.assertEqual({}, inst._orig_system_metadata)
|
||||||
|
|
||||||
def test_load_generic_calls_handler(self):
|
def test_load_generic_calls_handler(self):
|
||||||
inst = objects.Instance(context=self.context,
|
inst = objects.Instance(context=self.context, uuid=uuids.instance)
|
||||||
uuid='fake-uuid')
|
|
||||||
with mock.patch.object(inst, '_load_generic') as mock_load:
|
with mock.patch.object(inst, '_load_generic') as mock_load:
|
||||||
def fake_load(name):
|
def fake_load(name):
|
||||||
inst.system_metadata = {}
|
inst.system_metadata = {}
|
||||||
@ -1137,8 +1140,7 @@ class _TestInstanceObject(object):
|
|||||||
mock_load.assert_called_once_with('system_metadata')
|
mock_load.assert_called_once_with('system_metadata')
|
||||||
|
|
||||||
def test_load_fault_calls_handler(self):
|
def test_load_fault_calls_handler(self):
|
||||||
inst = objects.Instance(context=self.context,
|
inst = objects.Instance(context=self.context, uuid=uuids.instance)
|
||||||
uuid='fake-uuid')
|
|
||||||
with mock.patch.object(inst, '_load_fault') as mock_load:
|
with mock.patch.object(inst, '_load_fault') as mock_load:
|
||||||
def fake_load():
|
def fake_load():
|
||||||
inst.fault = None
|
inst.fault = None
|
||||||
@ -1148,8 +1150,7 @@ class _TestInstanceObject(object):
|
|||||||
mock_load.assert_called_once_with()
|
mock_load.assert_called_once_with()
|
||||||
|
|
||||||
def test_load_ec2_ids_calls_handler(self):
|
def test_load_ec2_ids_calls_handler(self):
|
||||||
inst = objects.Instance(context=self.context,
|
inst = objects.Instance(context=self.context, uuid=uuids.instance)
|
||||||
uuid='fake-uuid')
|
|
||||||
with mock.patch.object(inst, '_load_ec2_ids') as mock_load:
|
with mock.patch.object(inst, '_load_ec2_ids') as mock_load:
|
||||||
def fake_load():
|
def fake_load():
|
||||||
inst.ec2_ids = objects.EC2Ids(instance_id='fake-inst',
|
inst.ec2_ids = objects.EC2Ids(instance_id='fake-inst',
|
||||||
@ -1160,8 +1161,7 @@ class _TestInstanceObject(object):
|
|||||||
mock_load.assert_called_once_with()
|
mock_load.assert_called_once_with()
|
||||||
|
|
||||||
def test_load_migration_context(self):
|
def test_load_migration_context(self):
|
||||||
inst = instance.Instance(context=self.context,
|
inst = instance.Instance(context=self.context, uuid=uuids.instance)
|
||||||
uuid='fake-uuid')
|
|
||||||
with mock.patch.object(
|
with mock.patch.object(
|
||||||
objects.MigrationContext, 'get_by_instance_uuid',
|
objects.MigrationContext, 'get_by_instance_uuid',
|
||||||
return_value=test_mig_ctxt.fake_migration_context_obj
|
return_value=test_mig_ctxt.fake_migration_context_obj
|
||||||
@ -1170,8 +1170,7 @@ class _TestInstanceObject(object):
|
|||||||
mock_get.assert_called_once_with(self.context, inst.uuid)
|
mock_get.assert_called_once_with(self.context, inst.uuid)
|
||||||
|
|
||||||
def test_load_migration_context_no_context(self):
|
def test_load_migration_context_no_context(self):
|
||||||
inst = instance.Instance(context=self.context,
|
inst = instance.Instance(context=self.context, uuid=uuids.instance)
|
||||||
uuid='fake-uuid')
|
|
||||||
with mock.patch.object(
|
with mock.patch.object(
|
||||||
objects.MigrationContext, 'get_by_instance_uuid',
|
objects.MigrationContext, 'get_by_instance_uuid',
|
||||||
side_effect=exception.MigrationContextNotFound(
|
side_effect=exception.MigrationContextNotFound(
|
||||||
@ -1182,8 +1181,7 @@ class _TestInstanceObject(object):
|
|||||||
self.assertIsNone(mig_ctxt)
|
self.assertIsNone(mig_ctxt)
|
||||||
|
|
||||||
def test_load_migration_context_no_data(self):
|
def test_load_migration_context_no_data(self):
|
||||||
inst = instance.Instance(context=self.context,
|
inst = instance.Instance(context=self.context, uuid=uuids.instance)
|
||||||
uuid='fake-uuid')
|
|
||||||
with mock.patch.object(
|
with mock.patch.object(
|
||||||
objects.MigrationContext, 'get_by_instance_uuid') as mock_get:
|
objects.MigrationContext, 'get_by_instance_uuid') as mock_get:
|
||||||
loaded_ctxt = inst._load_migration_context(db_context=None)
|
loaded_ctxt = inst._load_migration_context(db_context=None)
|
||||||
@ -1191,8 +1189,8 @@ class _TestInstanceObject(object):
|
|||||||
self.assertIsNone(loaded_ctxt)
|
self.assertIsNone(loaded_ctxt)
|
||||||
|
|
||||||
def test_apply_revert_migration_context(self):
|
def test_apply_revert_migration_context(self):
|
||||||
inst = instance.Instance(context=self.context,
|
inst = instance.Instance(context=self.context, uuid=uuids.instance,
|
||||||
uuid='fake-uuid', numa_topology=None)
|
numa_topology=None)
|
||||||
inst.migration_context = test_mig_ctxt.get_fake_migration_context_obj(
|
inst.migration_context = test_mig_ctxt.get_fake_migration_context_obj(
|
||||||
self.context)
|
self.context)
|
||||||
inst.apply_migration_context()
|
inst.apply_migration_context()
|
||||||
@ -1201,8 +1199,7 @@ class _TestInstanceObject(object):
|
|||||||
self.assertIsNone(inst.numa_topology)
|
self.assertIsNone(inst.numa_topology)
|
||||||
|
|
||||||
def test_drop_migration_context(self):
|
def test_drop_migration_context(self):
|
||||||
inst = instance.Instance(context=self.context,
|
inst = instance.Instance(context=self.context, uuid=uuids.instance)
|
||||||
uuid='fake-uuid')
|
|
||||||
inst.migration_context = test_mig_ctxt.get_fake_migration_context_obj(
|
inst.migration_context = test_mig_ctxt.get_fake_migration_context_obj(
|
||||||
self.context)
|
self.context)
|
||||||
inst.migration_context.instance_uuid = inst.uuid
|
inst.migration_context.instance_uuid = inst.uuid
|
||||||
@ -1220,8 +1217,8 @@ class _TestInstanceObject(object):
|
|||||||
numa_topology.cells[0].memory = 1024
|
numa_topology.cells[0].memory = 1024
|
||||||
numa_topology.cells[1].memory = 1024
|
numa_topology.cells[1].memory = 1024
|
||||||
|
|
||||||
inst = instance.Instance(context=self.context,
|
inst = instance.Instance(context=self.context, uuid=uuids.instance,
|
||||||
uuid='fake-uuid', numa_topology=numa_topology)
|
numa_topology=numa_topology)
|
||||||
inst.migration_context = test_mig_ctxt.get_fake_migration_context_obj(
|
inst.migration_context = test_mig_ctxt.get_fake_migration_context_obj(
|
||||||
self.context)
|
self.context)
|
||||||
with inst.mutated_migration_context():
|
with inst.mutated_migration_context():
|
||||||
@ -1233,17 +1230,18 @@ class _TestInstanceObject(object):
|
|||||||
def test_load_generic(self, mock_get):
|
def test_load_generic(self, mock_get):
|
||||||
inst2 = instance.Instance(metadata={'foo': 'bar'})
|
inst2 = instance.Instance(metadata={'foo': 'bar'})
|
||||||
mock_get.return_value = inst2
|
mock_get.return_value = inst2
|
||||||
inst = instance.Instance(context=self.context,
|
inst = instance.Instance(context=self.context, uuid=uuids.instance)
|
||||||
uuid='fake-uuid')
|
|
||||||
inst.metadata
|
inst.metadata
|
||||||
|
|
||||||
@mock.patch('nova.db.instance_fault_get_by_instance_uuids')
|
@mock.patch('nova.db.instance_fault_get_by_instance_uuids')
|
||||||
def test_load_fault(self, mock_get):
|
def test_load_fault(self, mock_get):
|
||||||
fake_fault = test_instance_fault.fake_faults['fake-uuid'][0]
|
fake_fault = test_instance_fault.fake_faults['fake-uuid'][0]
|
||||||
mock_get.return_value = {'fake': [fake_fault]}
|
mock_get.return_value = {uuids.load_fault_instance: [fake_fault]}
|
||||||
inst = objects.Instance(context=self.context, uuid='fake')
|
inst = objects.Instance(context=self.context,
|
||||||
|
uuid=uuids.load_fault_instance)
|
||||||
fault = inst.fault
|
fault = inst.fault
|
||||||
mock_get.assert_called_once_with(self.context, ['fake'])
|
mock_get.assert_called_once_with(self.context,
|
||||||
|
[uuids.load_fault_instance])
|
||||||
self.assertEqual(fake_fault['id'], fault.id)
|
self.assertEqual(fake_fault['id'], fault.id)
|
||||||
self.assertNotIn('metadata', inst.obj_what_changed())
|
self.assertNotIn('metadata', inst.obj_what_changed())
|
||||||
|
|
||||||
@ -1252,7 +1250,7 @@ class _TestInstanceObject(object):
|
|||||||
fake_ec2_ids = objects.EC2Ids(instance_id='fake-inst',
|
fake_ec2_ids = objects.EC2Ids(instance_id='fake-inst',
|
||||||
ami_id='fake-ami')
|
ami_id='fake-ami')
|
||||||
mock_get.return_value = fake_ec2_ids
|
mock_get.return_value = fake_ec2_ids
|
||||||
inst = objects.Instance(context=self.context, uuid='fake')
|
inst = objects.Instance(context=self.context, uuid=uuids.instance)
|
||||||
ec2_ids = inst.ec2_ids
|
ec2_ids = inst.ec2_ids
|
||||||
mock_get.assert_called_once_with(self.context, inst)
|
mock_get.assert_called_once_with(self.context, inst)
|
||||||
self.assertEqual(fake_ec2_ids, ec2_ids)
|
self.assertEqual(fake_ec2_ids, ec2_ids)
|
||||||
@ -1521,8 +1519,10 @@ class _TestInstanceListObject(object):
|
|||||||
|
|
||||||
def test_with_fault(self):
|
def test_with_fault(self):
|
||||||
fake_insts = [
|
fake_insts = [
|
||||||
fake_instance.fake_db_instance(uuid='fake-uuid', host='host'),
|
fake_instance.fake_db_instance(uuid=uuids.faults_instance,
|
||||||
fake_instance.fake_db_instance(uuid='fake-inst2', host='host'),
|
host='host'),
|
||||||
|
fake_instance.fake_db_instance(uuid=uuids.faults_instance_nonexist,
|
||||||
|
host='host'),
|
||||||
]
|
]
|
||||||
fake_faults = test_instance_fault.fake_faults
|
fake_faults = test_instance_fault.fake_faults
|
||||||
self.mox.StubOutWithMock(db, 'instance_get_all_by_host')
|
self.mox.StubOutWithMock(db, 'instance_get_all_by_host')
|
||||||
@ -1546,14 +1546,14 @@ class _TestInstanceListObject(object):
|
|||||||
def test_fill_faults(self):
|
def test_fill_faults(self):
|
||||||
self.mox.StubOutWithMock(db, 'instance_fault_get_by_instance_uuids')
|
self.mox.StubOutWithMock(db, 'instance_fault_get_by_instance_uuids')
|
||||||
|
|
||||||
inst1 = objects.Instance(uuid='uuid1')
|
inst1 = objects.Instance(uuid=uuids.db_fault_1)
|
||||||
inst2 = objects.Instance(uuid='uuid2')
|
inst2 = objects.Instance(uuid=uuids.db_fault_2)
|
||||||
insts = [inst1, inst2]
|
insts = [inst1, inst2]
|
||||||
for inst in insts:
|
for inst in insts:
|
||||||
inst.obj_reset_changes()
|
inst.obj_reset_changes()
|
||||||
db_faults = {
|
db_faults = {
|
||||||
'uuid1': [{'id': 123,
|
'uuid1': [{'id': 123,
|
||||||
'instance_uuid': 'uuid1',
|
'instance_uuid': uuids.db_fault_1,
|
||||||
'code': 456,
|
'code': 456,
|
||||||
'message': 'Fake message',
|
'message': 'Fake message',
|
||||||
'details': 'No details',
|
'details': 'No details',
|
||||||
@ -1573,7 +1573,7 @@ class _TestInstanceListObject(object):
|
|||||||
inst_list._context = self.context
|
inst_list._context = self.context
|
||||||
inst_list.objects = insts
|
inst_list.objects = insts
|
||||||
faulty = inst_list.fill_faults()
|
faulty = inst_list.fill_faults()
|
||||||
self.assertEqual(['uuid1'], list(faulty))
|
self.assertEqual([uuids.db_fault_1], list(faulty))
|
||||||
self.assertEqual(db_faults['uuid1'][0]['message'],
|
self.assertEqual(db_faults['uuid1'][0]['message'],
|
||||||
inst_list[0].fault.message)
|
inst_list[0].fault.message)
|
||||||
self.assertIsNone(inst_list[1].fault)
|
self.assertIsNone(inst_list[1].fault)
|
||||||
|
@ -18,16 +18,19 @@ from nova import db
|
|||||||
from nova import exception
|
from nova import exception
|
||||||
from nova.objects import instance_fault
|
from nova.objects import instance_fault
|
||||||
from nova.tests.unit.objects import test_objects
|
from nova.tests.unit.objects import test_objects
|
||||||
|
from nova.tests import uuidsentinel as uuids
|
||||||
|
|
||||||
|
|
||||||
fake_faults = {
|
fake_faults = {
|
||||||
'fake-uuid': [
|
'fake-uuid': [
|
||||||
{'id': 1, 'instance_uuid': 'fake-uuid', 'code': 123, 'message': 'msg1',
|
{'id': 1, 'instance_uuid': uuids.faults_instance, 'code': 123,
|
||||||
'details': 'details', 'host': 'host', 'deleted': False,
|
'message': 'msg1', 'details': 'details', 'host': 'host',
|
||||||
'created_at': None, 'updated_at': None, 'deleted_at': None},
|
'deleted': False, 'created_at': None, 'updated_at': None,
|
||||||
{'id': 2, 'instance_uuid': 'fake-uuid', 'code': 456, 'message': 'msg2',
|
'deleted_at': None},
|
||||||
'details': 'details', 'host': 'host', 'deleted': False,
|
{'id': 2, 'instance_uuid': uuids.faults_instance, 'code': 456,
|
||||||
'created_at': None, 'updated_at': None, 'deleted_at': None},
|
'message': 'msg2', 'details': 'details', 'host': 'host',
|
||||||
|
'deleted': False, 'created_at': None, 'updated_at': None,
|
||||||
|
'deleted_at': None},
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -78,7 +81,7 @@ class _TestInstanceFault(object):
|
|||||||
def _test_create(self, update_cells, mock_create, cells_fault_create):
|
def _test_create(self, update_cells, mock_create, cells_fault_create):
|
||||||
mock_create.return_value = fake_faults['fake-uuid'][1]
|
mock_create.return_value = fake_faults['fake-uuid'][1]
|
||||||
fault = instance_fault.InstanceFault(context=self.context)
|
fault = instance_fault.InstanceFault(context=self.context)
|
||||||
fault.instance_uuid = 'fake-uuid'
|
fault.instance_uuid = uuids.faults_instance
|
||||||
fault.code = 456
|
fault.code = 456
|
||||||
fault.message = 'foo'
|
fault.message = 'foo'
|
||||||
fault.details = 'you screwed up'
|
fault.details = 'you screwed up'
|
||||||
@ -86,11 +89,11 @@ class _TestInstanceFault(object):
|
|||||||
fault.create()
|
fault.create()
|
||||||
self.assertEqual(2, fault.id)
|
self.assertEqual(2, fault.id)
|
||||||
mock_create.assert_called_once_with(self.context,
|
mock_create.assert_called_once_with(self.context,
|
||||||
{'instance_uuid': 'fake-uuid',
|
{'instance_uuid': uuids.faults_instance,
|
||||||
'code': 456,
|
'code': 456,
|
||||||
'message': 'foo',
|
'message': 'foo',
|
||||||
'details': 'you screwed up',
|
'details': 'you screwed up',
|
||||||
'host': 'myhost'})
|
'host': 'myhost'})
|
||||||
if update_cells:
|
if update_cells:
|
||||||
cells_fault_create.assert_called_once_with(
|
cells_fault_create.assert_called_once_with(
|
||||||
self.context, fake_faults['fake-uuid'][1])
|
self.context, fake_faults['fake-uuid'][1])
|
||||||
|
@ -24,6 +24,7 @@ from nova import exception
|
|||||||
from nova.network import model as network_model
|
from nova.network import model as network_model
|
||||||
from nova.objects import instance_info_cache
|
from nova.objects import instance_info_cache
|
||||||
from nova.tests.unit.objects import test_objects
|
from nova.tests.unit.objects import test_objects
|
||||||
|
from nova.tests import uuidsentinel as uuids
|
||||||
|
|
||||||
|
|
||||||
fake_info_cache = {
|
fake_info_cache = {
|
||||||
@ -31,7 +32,7 @@ fake_info_cache = {
|
|||||||
'updated_at': None,
|
'updated_at': None,
|
||||||
'deleted_at': None,
|
'deleted_at': None,
|
||||||
'deleted': False,
|
'deleted': False,
|
||||||
'instance_uuid': 'fake-uuid',
|
'instance_uuid': uuids.info_instance,
|
||||||
'network_info': '[]',
|
'network_info': '[]',
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -40,29 +41,31 @@ class _TestInstanceInfoCacheObject(object):
|
|||||||
def test_get_by_instance_uuid(self):
|
def test_get_by_instance_uuid(self):
|
||||||
nwinfo = network_model.NetworkInfo.hydrate([{'address': 'foo'}])
|
nwinfo = network_model.NetworkInfo.hydrate([{'address': 'foo'}])
|
||||||
self.mox.StubOutWithMock(db, 'instance_info_cache_get')
|
self.mox.StubOutWithMock(db, 'instance_info_cache_get')
|
||||||
db.instance_info_cache_get(self.context, 'fake-uuid').AndReturn(
|
db.instance_info_cache_get(
|
||||||
|
self.context, uuids.info_instance).AndReturn(
|
||||||
dict(fake_info_cache, network_info=nwinfo.json()))
|
dict(fake_info_cache, network_info=nwinfo.json()))
|
||||||
self.mox.ReplayAll()
|
self.mox.ReplayAll()
|
||||||
obj = instance_info_cache.InstanceInfoCache.get_by_instance_uuid(
|
obj = instance_info_cache.InstanceInfoCache.get_by_instance_uuid(
|
||||||
self.context, 'fake-uuid')
|
self.context, uuids.info_instance)
|
||||||
self.assertEqual('fake-uuid', obj.instance_uuid)
|
self.assertEqual(uuids.info_instance, obj.instance_uuid)
|
||||||
self.assertEqual(nwinfo, obj.network_info)
|
self.assertEqual(nwinfo, obj.network_info)
|
||||||
|
|
||||||
def test_get_by_instance_uuid_no_entries(self):
|
def test_get_by_instance_uuid_no_entries(self):
|
||||||
self.mox.StubOutWithMock(db, 'instance_info_cache_get')
|
self.mox.StubOutWithMock(db, 'instance_info_cache_get')
|
||||||
db.instance_info_cache_get(self.context, 'fake-uuid').AndReturn(None)
|
db.instance_info_cache_get(self.context,
|
||||||
|
uuids.info_instance).AndReturn(None)
|
||||||
self.mox.ReplayAll()
|
self.mox.ReplayAll()
|
||||||
self.assertRaises(
|
self.assertRaises(
|
||||||
exception.InstanceInfoCacheNotFound,
|
exception.InstanceInfoCacheNotFound,
|
||||||
instance_info_cache.InstanceInfoCache.get_by_instance_uuid,
|
instance_info_cache.InstanceInfoCache.get_by_instance_uuid,
|
||||||
self.context, 'fake-uuid')
|
self.context, uuids.info_instance)
|
||||||
|
|
||||||
def test_new(self):
|
def test_new(self):
|
||||||
obj = instance_info_cache.InstanceInfoCache.new(self.context,
|
obj = instance_info_cache.InstanceInfoCache.new(self.context,
|
||||||
'fake-uuid')
|
uuids.info_instance)
|
||||||
self.assertEqual(set(['instance_uuid', 'network_info']),
|
self.assertEqual(set(['instance_uuid', 'network_info']),
|
||||||
obj.obj_what_changed())
|
obj.obj_what_changed())
|
||||||
self.assertEqual('fake-uuid', obj.instance_uuid)
|
self.assertEqual(uuids.info_instance, obj.instance_uuid)
|
||||||
self.assertIsNone(obj.network_info)
|
self.assertIsNone(obj.network_info)
|
||||||
|
|
||||||
def _save_helper(self, cell_type, update_cells):
|
def _save_helper(self, cell_type, update_cells):
|
||||||
@ -79,7 +82,7 @@ class _TestInstanceInfoCacheObject(object):
|
|||||||
new_info_cache = fake_info_cache.copy()
|
new_info_cache = fake_info_cache.copy()
|
||||||
new_info_cache['network_info'] = nwinfo.json()
|
new_info_cache['network_info'] = nwinfo.json()
|
||||||
db.instance_info_cache_update(
|
db.instance_info_cache_update(
|
||||||
self.context, 'fake-uuid',
|
self.context, uuids.info_instance,
|
||||||
{'network_info': nwinfo.json()}).AndReturn(new_info_cache)
|
{'network_info': nwinfo.json()}).AndReturn(new_info_cache)
|
||||||
if update_cells:
|
if update_cells:
|
||||||
cells_opts.get_cell_type().AndReturn(cell_type)
|
cells_opts.get_cell_type().AndReturn(cell_type)
|
||||||
@ -89,7 +92,7 @@ class _TestInstanceInfoCacheObject(object):
|
|||||||
self.context, 'foo')
|
self.context, 'foo')
|
||||||
self.mox.ReplayAll()
|
self.mox.ReplayAll()
|
||||||
obj._context = self.context
|
obj._context = self.context
|
||||||
obj.instance_uuid = 'fake-uuid'
|
obj.instance_uuid = uuids.info_instance
|
||||||
obj.network_info = nwinfo
|
obj.network_info = nwinfo
|
||||||
obj.save(update_cells=update_cells)
|
obj.save(update_cells=update_cells)
|
||||||
|
|
||||||
@ -113,20 +116,20 @@ class _TestInstanceInfoCacheObject(object):
|
|||||||
new_info_cache['network_info'] = nwinfo_json
|
new_info_cache['network_info'] = nwinfo_json
|
||||||
mock_update.return_value = new_info_cache
|
mock_update.return_value = new_info_cache
|
||||||
obj = instance_info_cache.InstanceInfoCache(context=self.context)
|
obj = instance_info_cache.InstanceInfoCache(context=self.context)
|
||||||
obj.instance_uuid = 'fake-uuid'
|
obj.instance_uuid = uuids.info_instance
|
||||||
obj.network_info = nwinfo_json
|
obj.network_info = nwinfo_json
|
||||||
obj.save()
|
obj.save()
|
||||||
mock_update.assert_called_once_with(self.context, 'fake-uuid',
|
mock_update.assert_called_once_with(self.context, uuids.info_instance,
|
||||||
{'network_info': nwinfo_json})
|
{'network_info': nwinfo_json})
|
||||||
self.assertEqual(timeutils.normalize_time(fake_updated_at),
|
self.assertEqual(timeutils.normalize_time(fake_updated_at),
|
||||||
timeutils.normalize_time(obj.updated_at))
|
timeutils.normalize_time(obj.updated_at))
|
||||||
|
|
||||||
def test_refresh(self):
|
def test_refresh(self):
|
||||||
obj = instance_info_cache.InstanceInfoCache.new(self.context,
|
obj = instance_info_cache.InstanceInfoCache.new(self.context,
|
||||||
'fake-uuid1')
|
uuids.info_instance_1)
|
||||||
self.mox.StubOutWithMock(db, 'instance_info_cache_get')
|
self.mox.StubOutWithMock(db, 'instance_info_cache_get')
|
||||||
db.instance_info_cache_get(self.context, 'fake-uuid1').AndReturn(
|
db.instance_info_cache_get(
|
||||||
fake_info_cache)
|
self.context, uuids.info_instance_1).AndReturn(fake_info_cache)
|
||||||
self.mox.ReplayAll()
|
self.mox.ReplayAll()
|
||||||
obj.refresh()
|
obj.refresh()
|
||||||
self.assertEqual(fake_info_cache['instance_uuid'], obj.instance_uuid)
|
self.assertEqual(fake_info_cache['instance_uuid'], obj.instance_uuid)
|
||||||
|
@ -17,6 +17,7 @@ import netaddr
|
|||||||
|
|
||||||
from nova.objects import network as network_obj
|
from nova.objects import network as network_obj
|
||||||
from nova.tests.unit.objects import test_objects
|
from nova.tests.unit.objects import test_objects
|
||||||
|
from nova.tests import uuidsentinel as uuids
|
||||||
|
|
||||||
|
|
||||||
fake_network = {
|
fake_network = {
|
||||||
@ -48,7 +49,7 @@ fake_network = {
|
|||||||
'project_id': None,
|
'project_id': None,
|
||||||
'priority': None,
|
'priority': None,
|
||||||
'host': None,
|
'host': None,
|
||||||
'uuid': 'fake-uuid',
|
'uuid': uuids.network_instance,
|
||||||
'mtu': None,
|
'mtu': None,
|
||||||
'dhcp_server': '192.168.1.1',
|
'dhcp_server': '192.168.1.1',
|
||||||
'enable_dhcp': True,
|
'enable_dhcp': True,
|
||||||
|
Loading…
Reference in New Issue
Block a user