Fix invalid uuid warnings
Currently, unit testcases emit FutureWarnings from oslo.versionedobjects about invalid uuids as documented here[1]. This commit changes these tests to use valid uuids so that when they are run these warnings are no longer emitted. [1] http://docs.openstack.org/developer/oslo.versionedobjects/api/fields.html#oslo_versionedobjects.fields.UUIDField Closes-Bug: #1557378 Change-Id: I21a60e916e183f7c0fc6193d4b7caa88ae3b6d56
This commit is contained in:
parent
e1f3d30c2b
commit
b1d9c3edd8
@ -17,6 +17,7 @@ from nova import objects
|
|||||||
from nova.scheduler.filters import affinity_filter
|
from nova.scheduler.filters import affinity_filter
|
||||||
from nova import test
|
from nova import test
|
||||||
from nova.tests.unit.scheduler import fakes
|
from nova.tests.unit.scheduler import fakes
|
||||||
|
from nova.tests import uuidsentinel as uuids
|
||||||
|
|
||||||
CONF = nova.conf.CONF
|
CONF = nova.conf.CONF
|
||||||
|
|
||||||
@ -29,7 +30,7 @@ class TestDifferentHostFilter(test.NoDBTestCase):
|
|||||||
|
|
||||||
def test_affinity_different_filter_passes(self):
|
def test_affinity_different_filter_passes(self):
|
||||||
host = fakes.FakeHostState('host1', 'node1', {})
|
host = fakes.FakeHostState('host1', 'node1', {})
|
||||||
inst1 = objects.Instance(uuid='different')
|
inst1 = objects.Instance(uuid=uuids.instance)
|
||||||
host.instances = {inst1.uuid: inst1}
|
host.instances = {inst1.uuid: inst1}
|
||||||
spec_obj = objects.RequestSpec(
|
spec_obj = objects.RequestSpec(
|
||||||
context=mock.sentinel.ctx,
|
context=mock.sentinel.ctx,
|
||||||
@ -37,16 +38,16 @@ class TestDifferentHostFilter(test.NoDBTestCase):
|
|||||||
self.assertTrue(self.filt_cls.host_passes(host, spec_obj))
|
self.assertTrue(self.filt_cls.host_passes(host, spec_obj))
|
||||||
|
|
||||||
def test_affinity_different_filter_fails(self):
|
def test_affinity_different_filter_fails(self):
|
||||||
inst1 = objects.Instance(uuid='same')
|
inst1 = objects.Instance(uuid=uuids.instance)
|
||||||
host = fakes.FakeHostState('host1', 'node1', {})
|
host = fakes.FakeHostState('host1', 'node1', {})
|
||||||
host.instances = {inst1.uuid: inst1}
|
host.instances = {inst1.uuid: inst1}
|
||||||
spec_obj = objects.RequestSpec(
|
spec_obj = objects.RequestSpec(
|
||||||
context=mock.sentinel.ctx,
|
context=mock.sentinel.ctx,
|
||||||
scheduler_hints=dict(different_host=['same']))
|
scheduler_hints=dict(different_host=[uuids.instance]))
|
||||||
self.assertFalse(self.filt_cls.host_passes(host, spec_obj))
|
self.assertFalse(self.filt_cls.host_passes(host, spec_obj))
|
||||||
|
|
||||||
def test_affinity_different_filter_handles_none(self):
|
def test_affinity_different_filter_handles_none(self):
|
||||||
inst1 = objects.Instance(uuid='same')
|
inst1 = objects.Instance(uuid=uuids.instance)
|
||||||
host = fakes.FakeHostState('host1', 'node1', {})
|
host = fakes.FakeHostState('host1', 'node1', {})
|
||||||
host.instances = {inst1.uuid: inst1}
|
host.instances = {inst1.uuid: inst1}
|
||||||
spec_obj = objects.RequestSpec(
|
spec_obj = objects.RequestSpec(
|
||||||
@ -62,12 +63,12 @@ class TestSameHostFilter(test.NoDBTestCase):
|
|||||||
self.filt_cls = affinity_filter.SameHostFilter()
|
self.filt_cls = affinity_filter.SameHostFilter()
|
||||||
|
|
||||||
def test_affinity_same_filter_passes(self):
|
def test_affinity_same_filter_passes(self):
|
||||||
inst1 = objects.Instance(uuid='same')
|
inst1 = objects.Instance(uuid=uuids.instance)
|
||||||
host = fakes.FakeHostState('host1', 'node1', {})
|
host = fakes.FakeHostState('host1', 'node1', {})
|
||||||
host.instances = {inst1.uuid: inst1}
|
host.instances = {inst1.uuid: inst1}
|
||||||
spec_obj = objects.RequestSpec(
|
spec_obj = objects.RequestSpec(
|
||||||
context=mock.sentinel.ctx,
|
context=mock.sentinel.ctx,
|
||||||
scheduler_hints=dict(same_host=['same']))
|
scheduler_hints=dict(same_host=[uuids.instance]))
|
||||||
self.assertTrue(self.filt_cls.host_passes(host, spec_obj))
|
self.assertTrue(self.filt_cls.host_passes(host, spec_obj))
|
||||||
|
|
||||||
def test_affinity_same_filter_no_list_passes(self):
|
def test_affinity_same_filter_no_list_passes(self):
|
||||||
@ -79,7 +80,7 @@ class TestSameHostFilter(test.NoDBTestCase):
|
|||||||
self.assertFalse(self.filt_cls.host_passes(host, spec_obj))
|
self.assertFalse(self.filt_cls.host_passes(host, spec_obj))
|
||||||
|
|
||||||
def test_affinity_same_filter_fails(self):
|
def test_affinity_same_filter_fails(self):
|
||||||
inst1 = objects.Instance(uuid='different')
|
inst1 = objects.Instance(uuid=uuids.instance)
|
||||||
host = fakes.FakeHostState('host1', 'node1', {})
|
host = fakes.FakeHostState('host1', 'node1', {})
|
||||||
host.instances = {inst1.uuid: inst1}
|
host.instances = {inst1.uuid: inst1}
|
||||||
spec_obj = objects.RequestSpec(
|
spec_obj = objects.RequestSpec(
|
||||||
@ -88,7 +89,7 @@ class TestSameHostFilter(test.NoDBTestCase):
|
|||||||
self.assertFalse(self.filt_cls.host_passes(host, spec_obj))
|
self.assertFalse(self.filt_cls.host_passes(host, spec_obj))
|
||||||
|
|
||||||
def test_affinity_same_filter_handles_none(self):
|
def test_affinity_same_filter_handles_none(self):
|
||||||
inst1 = objects.Instance(uuid='different')
|
inst1 = objects.Instance(uuid=uuids.instance)
|
||||||
host = fakes.FakeHostState('host1', 'node1', {})
|
host = fakes.FakeHostState('host1', 'node1', {})
|
||||||
host.instances = {inst1.uuid: inst1}
|
host.instances = {inst1.uuid: inst1}
|
||||||
spec_obj = objects.RequestSpec(
|
spec_obj = objects.RequestSpec(
|
||||||
|
@ -14,6 +14,7 @@ from nova import objects
|
|||||||
from nova.scheduler.filters import isolated_hosts_filter
|
from nova.scheduler.filters import isolated_hosts_filter
|
||||||
from nova import test
|
from nova import test
|
||||||
from nova.tests.unit.scheduler import fakes
|
from nova.tests.unit.scheduler import fakes
|
||||||
|
from nova.tests import uuidsentinel as uuids
|
||||||
|
|
||||||
|
|
||||||
class TestIsolatedHostsFilter(test.NoDBTestCase):
|
class TestIsolatedHostsFilter(test.NoDBTestCase):
|
||||||
@ -26,12 +27,12 @@ class TestIsolatedHostsFilter(test.NoDBTestCase):
|
|||||||
set_flags=True,
|
set_flags=True,
|
||||||
restrict_isolated_hosts_to_isolated_images=True):
|
restrict_isolated_hosts_to_isolated_images=True):
|
||||||
if set_flags:
|
if set_flags:
|
||||||
self.flags(isolated_images=['isolated_image'],
|
self.flags(isolated_images=[uuids.image_ref],
|
||||||
isolated_hosts=['isolated_host'],
|
isolated_hosts=['isolated_host'],
|
||||||
restrict_isolated_hosts_to_isolated_images=
|
restrict_isolated_hosts_to_isolated_images=
|
||||||
restrict_isolated_hosts_to_isolated_images)
|
restrict_isolated_hosts_to_isolated_images)
|
||||||
host_name = 'isolated_host' if host_in_list else 'free_host'
|
host_name = 'isolated_host' if host_in_list else 'free_host'
|
||||||
image_ref = 'isolated_image' if image_in_list else 'free_image'
|
image_ref = uuids.image_ref if image_in_list else uuids.fake_image_ref
|
||||||
spec_obj = objects.RequestSpec(image=objects.ImageMeta(id=image_ref))
|
spec_obj = objects.RequestSpec(image=objects.ImageMeta(id=image_ref))
|
||||||
host = fakes.FakeHostState(host_name, 'node', {})
|
host = fakes.FakeHostState(host_name, 'node', {})
|
||||||
return self.filt_cls.host_passes(host, spec_obj)
|
return self.filt_cls.host_passes(host, spec_obj)
|
||||||
@ -57,7 +58,7 @@ class TestIsolatedHostsFilter(test.NoDBTestCase):
|
|||||||
self.assertTrue(self._do_test_isolated_hosts(False, False, False))
|
self.assertTrue(self._do_test_isolated_hosts(False, False, False))
|
||||||
|
|
||||||
def test_isolated_hosts_no_hosts_config(self):
|
def test_isolated_hosts_no_hosts_config(self):
|
||||||
self.flags(isolated_images=['isolated_image'])
|
self.flags(isolated_images=[uuids.image_ref])
|
||||||
# If there are no hosts in the config, it should only filter out
|
# If there are no hosts in the config, it should only filter out
|
||||||
# images that are listed
|
# images that are listed
|
||||||
self.assertFalse(self._do_test_isolated_hosts(False, True, False))
|
self.assertFalse(self._do_test_isolated_hosts(False, True, False))
|
||||||
|
@ -16,6 +16,7 @@ from nova import objects
|
|||||||
from nova.scheduler.filters import type_filter
|
from nova.scheduler.filters import type_filter
|
||||||
from nova import test
|
from nova import test
|
||||||
from nova.tests.unit.scheduler import fakes
|
from nova.tests.unit.scheduler import fakes
|
||||||
|
from nova.tests import uuidsentinel as uuids
|
||||||
|
|
||||||
|
|
||||||
class TestTypeFilter(test.NoDBTestCase):
|
class TestTypeFilter(test.NoDBTestCase):
|
||||||
@ -31,13 +32,15 @@ class TestTypeFilter(test.NoDBTestCase):
|
|||||||
# True since no instances on host
|
# True since no instances on host
|
||||||
self.assertTrue(self.filt_cls.host_passes(host, spec_obj))
|
self.assertTrue(self.filt_cls.host_passes(host, spec_obj))
|
||||||
# Add an instance with the same instance_type_id
|
# Add an instance with the same instance_type_id
|
||||||
inst1 = objects.Instance(uuid='aa', instance_type_id=target_id)
|
inst1 = objects.Instance(uuid=uuids.instance_1,
|
||||||
|
instance_type_id=target_id)
|
||||||
host.instances = {inst1.uuid: inst1}
|
host.instances = {inst1.uuid: inst1}
|
||||||
# True since only same instance_type_id on host
|
# True since only same instance_type_id on host
|
||||||
self.assertTrue(self.filt_cls.host_passes(host, spec_obj))
|
self.assertTrue(self.filt_cls.host_passes(host, spec_obj))
|
||||||
# Add an instance with a different instance_type_id
|
# Add an instance with a different instance_type_id
|
||||||
diff_type = target_id + 1
|
diff_type = target_id + 1
|
||||||
inst2 = objects.Instance(uuid='bb', instance_type_id=diff_type)
|
inst2 = objects.Instance(uuid=uuids.instance_2,
|
||||||
|
instance_type_id=diff_type)
|
||||||
host.instances.update({inst2.uuid: inst2})
|
host.instances.update({inst2.uuid: inst2})
|
||||||
# False since host now has an instance of a different type
|
# False since host now has an instance of a different type
|
||||||
self.assertFalse(self.filt_cls.host_passes(host, spec_obj))
|
self.assertFalse(self.filt_cls.host_passes(host, spec_obj))
|
||||||
|
@ -17,6 +17,7 @@ from nova import objects
|
|||||||
from nova.scheduler.filters import utils
|
from nova.scheduler.filters import utils
|
||||||
from nova import test
|
from nova import test
|
||||||
from nova.tests.unit.scheduler import fakes
|
from nova.tests.unit.scheduler import fakes
|
||||||
|
from nova.tests import uuidsentinel as uuids
|
||||||
|
|
||||||
_AGGREGATE_FIXTURES = [
|
_AGGREGATE_FIXTURES = [
|
||||||
objects.Aggregate(
|
objects.Aggregate(
|
||||||
@ -99,17 +100,18 @@ class TestUtils(test.NoDBTestCase):
|
|||||||
self.assertEqual(9, f(set(['10', '9']), based_on=min))
|
self.assertEqual(9, f(set(['10', '9']), based_on=min))
|
||||||
|
|
||||||
def test_instance_uuids_overlap(self):
|
def test_instance_uuids_overlap(self):
|
||||||
inst1 = objects.Instance(uuid='aa')
|
inst1 = objects.Instance(uuid=uuids.instance_1)
|
||||||
inst2 = objects.Instance(uuid='bb')
|
inst2 = objects.Instance(uuid=uuids.instance_2)
|
||||||
instances = [inst1, inst2]
|
instances = [inst1, inst2]
|
||||||
host_state = fakes.FakeHostState('host1', 'node1', {})
|
host_state = fakes.FakeHostState('host1', 'node1', {})
|
||||||
host_state.instances = {instance.uuid: instance
|
host_state.instances = {instance.uuid: instance
|
||||||
for instance in instances}
|
for instance in instances}
|
||||||
self.assertTrue(utils.instance_uuids_overlap(host_state, ['aa']))
|
self.assertTrue(utils.instance_uuids_overlap(host_state,
|
||||||
|
[uuids.instance_1]))
|
||||||
self.assertFalse(utils.instance_uuids_overlap(host_state, ['zz']))
|
self.assertFalse(utils.instance_uuids_overlap(host_state, ['zz']))
|
||||||
|
|
||||||
def test_other_types_on_host(self):
|
def test_other_types_on_host(self):
|
||||||
inst1 = objects.Instance(uuid='aa', instance_type_id=1)
|
inst1 = objects.Instance(uuid=uuids.instance, instance_type_id=1)
|
||||||
host_state = fakes.FakeHostState('host1', 'node1', {})
|
host_state = fakes.FakeHostState('host1', 'node1', {})
|
||||||
host_state.instances = {inst1.uuid: inst1}
|
host_state.instances = {inst1.uuid: inst1}
|
||||||
self.assertFalse(utils.other_types_on_host(host_state, 1))
|
self.assertFalse(utils.other_types_on_host(host_state, 1))
|
||||||
|
@ -27,6 +27,7 @@ from nova.scheduler import weights
|
|||||||
from nova import test # noqa
|
from nova import test # noqa
|
||||||
from nova.tests.unit.scheduler import fakes
|
from nova.tests.unit.scheduler import fakes
|
||||||
from nova.tests.unit.scheduler import test_scheduler
|
from nova.tests.unit.scheduler import test_scheduler
|
||||||
|
from nova.tests import uuidsentinel as uuids
|
||||||
|
|
||||||
|
|
||||||
def fake_get_filtered_hosts(hosts, filter_properties, index):
|
def fake_get_filtered_hosts(hosts, filter_properties, index):
|
||||||
@ -70,7 +71,7 @@ class FilterSchedulerTestCase(test_scheduler.SchedulerTestCase):
|
|||||||
vcpus=1),
|
vcpus=1),
|
||||||
project_id=1,
|
project_id=1,
|
||||||
os_type='Linux',
|
os_type='Linux',
|
||||||
uuid='fake-uuid',
|
uuid=uuids.instance,
|
||||||
pci_requests=None,
|
pci_requests=None,
|
||||||
numa_topology=None,
|
numa_topology=None,
|
||||||
instance_group=None)
|
instance_group=None)
|
||||||
@ -129,7 +130,7 @@ class FilterSchedulerTestCase(test_scheduler.SchedulerTestCase):
|
|||||||
num_instances=1,
|
num_instances=1,
|
||||||
project_id=1,
|
project_id=1,
|
||||||
os_type='Linux',
|
os_type='Linux',
|
||||||
uuid='fake-uuid',
|
uuid=uuids.instance,
|
||||||
flavor=objects.Flavor(root_gb=512,
|
flavor=objects.Flavor(root_gb=512,
|
||||||
memory_mb=512,
|
memory_mb=512,
|
||||||
ephemeral_gb=0,
|
ephemeral_gb=0,
|
||||||
@ -166,7 +167,7 @@ class FilterSchedulerTestCase(test_scheduler.SchedulerTestCase):
|
|||||||
num_instances=1,
|
num_instances=1,
|
||||||
project_id=1,
|
project_id=1,
|
||||||
os_type='Linux',
|
os_type='Linux',
|
||||||
uuid='fake-uuid',
|
uuid=uuids.instance,
|
||||||
flavor=objects.Flavor(root_gb=512,
|
flavor=objects.Flavor(root_gb=512,
|
||||||
memory_mb=512,
|
memory_mb=512,
|
||||||
ephemeral_gb=0,
|
ephemeral_gb=0,
|
||||||
@ -214,7 +215,7 @@ class FilterSchedulerTestCase(test_scheduler.SchedulerTestCase):
|
|||||||
num_instances=1,
|
num_instances=1,
|
||||||
project_id=1,
|
project_id=1,
|
||||||
os_type='Linux',
|
os_type='Linux',
|
||||||
uuid='fake-uuid',
|
uuid=uuids.instance,
|
||||||
flavor=objects.Flavor(root_gb=512,
|
flavor=objects.Flavor(root_gb=512,
|
||||||
memory_mb=512,
|
memory_mb=512,
|
||||||
ephemeral_gb=0,
|
ephemeral_gb=0,
|
||||||
@ -271,7 +272,7 @@ class FilterSchedulerTestCase(test_scheduler.SchedulerTestCase):
|
|||||||
vcpus=1),
|
vcpus=1),
|
||||||
project_id=1,
|
project_id=1,
|
||||||
os_type='Linux',
|
os_type='Linux',
|
||||||
instance_uuid='fake-uuid',
|
instance_uuid=uuids.instance,
|
||||||
num_instances=1,
|
num_instances=1,
|
||||||
pci_requests=None,
|
pci_requests=None,
|
||||||
numa_topology=None,
|
numa_topology=None,
|
||||||
@ -292,11 +293,11 @@ class FilterSchedulerTestCase(test_scheduler.SchedulerTestCase):
|
|||||||
|
|
||||||
with mock.patch.object(self.driver.notifier, 'info') as mock_info:
|
with mock.patch.object(self.driver.notifier, 'info') as mock_info:
|
||||||
expected = {'num_instances': 1,
|
expected = {'num_instances': 1,
|
||||||
'instance_properties': {'uuid': 'uuid1'},
|
'instance_properties': {'uuid': uuids.instance},
|
||||||
'instance_type': {},
|
'instance_type': {},
|
||||||
'image': {}}
|
'image': {}}
|
||||||
spec_obj = objects.RequestSpec(num_instances=1,
|
spec_obj = objects.RequestSpec(num_instances=1,
|
||||||
instance_uuid='uuid1')
|
instance_uuid=uuids.instance)
|
||||||
|
|
||||||
self.driver.select_destinations(self.context, spec_obj)
|
self.driver.select_destinations(self.context, spec_obj)
|
||||||
|
|
||||||
|
@ -24,6 +24,7 @@ from nova import filters
|
|||||||
from nova import loadables
|
from nova import loadables
|
||||||
from nova import objects
|
from nova import objects
|
||||||
from nova import test
|
from nova import test
|
||||||
|
from nova.tests import uuidsentinel as uuids
|
||||||
|
|
||||||
|
|
||||||
class Filter1(filters.BaseFilter):
|
class Filter1(filters.BaseFilter):
|
||||||
@ -191,7 +192,7 @@ class FiltersTestCase(test.NoDBTestCase):
|
|||||||
filter_b = FilterB()
|
filter_b = FilterB()
|
||||||
all_filters = [filter_a, filter_b]
|
all_filters = [filter_a, filter_b]
|
||||||
hosts = ["Host0", "Host1", "Host2"]
|
hosts = ["Host0", "Host1", "Host2"]
|
||||||
fake_uuid = "uuid"
|
fake_uuid = uuids.instance
|
||||||
spec_obj = objects.RequestSpec(instance_uuid=fake_uuid)
|
spec_obj = objects.RequestSpec(instance_uuid=fake_uuid)
|
||||||
with mock.patch.object(LOG, "info") as mock_log:
|
with mock.patch.object(LOG, "info") as mock_log:
|
||||||
result = self.filter_handler.get_filtered_objects(
|
result = self.filter_handler.get_filtered_objects(
|
||||||
@ -221,7 +222,7 @@ class FiltersTestCase(test.NoDBTestCase):
|
|||||||
filter_b = FilterB()
|
filter_b = FilterB()
|
||||||
all_filters = [filter_a, filter_b]
|
all_filters = [filter_a, filter_b]
|
||||||
hosts = ["Host0", "Host1", "Host2"]
|
hosts = ["Host0", "Host1", "Host2"]
|
||||||
fake_uuid = "uuid"
|
fake_uuid = uuids.instance
|
||||||
spec_obj = objects.RequestSpec(instance_uuid=fake_uuid)
|
spec_obj = objects.RequestSpec(instance_uuid=fake_uuid)
|
||||||
with mock.patch.object(LOG, "debug") as mock_log:
|
with mock.patch.object(LOG, "debug") as mock_log:
|
||||||
result = self.filter_handler.get_filtered_objects(
|
result = self.filter_handler.get_filtered_objects(
|
||||||
@ -251,7 +252,7 @@ class FiltersTestCase(test.NoDBTestCase):
|
|||||||
filter_b = FilterB()
|
filter_b = FilterB()
|
||||||
all_filters = [filter_a, filter_b]
|
all_filters = [filter_a, filter_b]
|
||||||
hosts = ["Host0", "Host1", "Host2"]
|
hosts = ["Host0", "Host1", "Host2"]
|
||||||
fake_uuid = "uuid"
|
fake_uuid = uuids.instance
|
||||||
filt_props = {"request_spec": {"instance_properties": {
|
filt_props = {"request_spec": {"instance_properties": {
|
||||||
"uuid": fake_uuid}}}
|
"uuid": fake_uuid}}}
|
||||||
with mock.patch.object(LOG, "info") as mock_log:
|
with mock.patch.object(LOG, "info") as mock_log:
|
||||||
|
@ -95,9 +95,9 @@ class HostManagerTestCase(test.NoDBTestCase):
|
|||||||
mock_get_by_filters):
|
mock_get_by_filters):
|
||||||
cn1 = objects.ComputeNode(host='host1')
|
cn1 = objects.ComputeNode(host='host1')
|
||||||
cn2 = objects.ComputeNode(host='host2')
|
cn2 = objects.ComputeNode(host='host2')
|
||||||
inst1 = objects.Instance(host='host1', uuid='uuid1')
|
inst1 = objects.Instance(host='host1', uuid=uuids.instance_1)
|
||||||
inst2 = objects.Instance(host='host1', uuid='uuid2')
|
inst2 = objects.Instance(host='host1', uuid=uuids.instance_2)
|
||||||
inst3 = objects.Instance(host='host2', uuid='uuid3')
|
inst3 = objects.Instance(host='host2', uuid=uuids.instance_3)
|
||||||
mock_get_all.return_value = objects.ComputeNodeList(objects=[cn1, cn2])
|
mock_get_all.return_value = objects.ComputeNodeList(objects=[cn1, cn2])
|
||||||
mock_get_by_filters.return_value = objects.InstanceList(
|
mock_get_by_filters.return_value = objects.InstanceList(
|
||||||
objects=[inst1, inst2, inst3])
|
objects=[inst1, inst2, inst3])
|
||||||
@ -106,9 +106,9 @@ class HostManagerTestCase(test.NoDBTestCase):
|
|||||||
hm._init_instance_info()
|
hm._init_instance_info()
|
||||||
self.assertEqual(len(hm._instance_info), 2)
|
self.assertEqual(len(hm._instance_info), 2)
|
||||||
fake_info = hm._instance_info['host1']
|
fake_info = hm._instance_info['host1']
|
||||||
self.assertIn('uuid1', fake_info['instances'])
|
self.assertIn(uuids.instance_1, fake_info['instances'])
|
||||||
self.assertIn('uuid2', fake_info['instances'])
|
self.assertIn(uuids.instance_2, fake_info['instances'])
|
||||||
self.assertNotIn('uuid3', fake_info['instances'])
|
self.assertNotIn(uuids.instance_3, fake_info['instances'])
|
||||||
exp_filters = {'deleted': False, 'host': [u'host1', u'host2']}
|
exp_filters = {'deleted': False, 'host': [u'host1', u'host2']}
|
||||||
mock_get_by_filters.assert_called_once_with(mock.ANY, exp_filters)
|
mock_get_by_filters.assert_called_once_with(mock.ANY, exp_filters)
|
||||||
|
|
||||||
@ -209,7 +209,7 @@ class HostManagerTestCase(test.NoDBTestCase):
|
|||||||
|
|
||||||
def test_get_filtered_hosts(self):
|
def test_get_filtered_hosts(self):
|
||||||
fake_properties = objects.RequestSpec(ignore_hosts=[],
|
fake_properties = objects.RequestSpec(ignore_hosts=[],
|
||||||
instance_uuid='fake-uuid1',
|
instance_uuid=uuids.instance,
|
||||||
force_hosts=[],
|
force_hosts=[],
|
||||||
force_nodes=[])
|
force_nodes=[])
|
||||||
|
|
||||||
@ -224,7 +224,7 @@ class HostManagerTestCase(test.NoDBTestCase):
|
|||||||
|
|
||||||
def test_get_filtered_hosts_with_ignore(self):
|
def test_get_filtered_hosts_with_ignore(self):
|
||||||
fake_properties = objects.RequestSpec(
|
fake_properties = objects.RequestSpec(
|
||||||
instance_uuid='fake-uuid1',
|
instance_uuid=uuids.instance,
|
||||||
ignore_hosts=['fake_host1', 'fake_host3',
|
ignore_hosts=['fake_host1', 'fake_host3',
|
||||||
'fake_host5', 'fake_multihost'],
|
'fake_host5', 'fake_multihost'],
|
||||||
force_hosts=[],
|
force_hosts=[],
|
||||||
@ -257,7 +257,7 @@ class HostManagerTestCase(test.NoDBTestCase):
|
|||||||
|
|
||||||
def test_get_filtered_hosts_with_force_hosts(self):
|
def test_get_filtered_hosts_with_force_hosts(self):
|
||||||
fake_properties = objects.RequestSpec(
|
fake_properties = objects.RequestSpec(
|
||||||
instance_uuid='fake-uuid1',
|
instance_uuid=uuids.instance,
|
||||||
ignore_hosts=[],
|
ignore_hosts=[],
|
||||||
force_hosts=['fake_host1', 'fake_host3', 'fake_host5'],
|
force_hosts=['fake_host1', 'fake_host3', 'fake_host5'],
|
||||||
force_nodes=[])
|
force_nodes=[])
|
||||||
@ -291,7 +291,7 @@ class HostManagerTestCase(test.NoDBTestCase):
|
|||||||
|
|
||||||
def test_get_filtered_hosts_with_no_matching_force_hosts(self):
|
def test_get_filtered_hosts_with_no_matching_force_hosts(self):
|
||||||
fake_properties = objects.RequestSpec(
|
fake_properties = objects.RequestSpec(
|
||||||
instance_uuid='fake-uuid1',
|
instance_uuid=uuids.instance,
|
||||||
ignore_hosts=[],
|
ignore_hosts=[],
|
||||||
force_hosts=['fake_host5', 'fake_host6'],
|
force_hosts=['fake_host5', 'fake_host6'],
|
||||||
force_nodes=[])
|
force_nodes=[])
|
||||||
@ -311,7 +311,7 @@ class HostManagerTestCase(test.NoDBTestCase):
|
|||||||
def test_get_filtered_hosts_with_ignore_and_force_hosts(self):
|
def test_get_filtered_hosts_with_ignore_and_force_hosts(self):
|
||||||
# Ensure ignore_hosts processed before force_hosts in host filters.
|
# Ensure ignore_hosts processed before force_hosts in host filters.
|
||||||
fake_properties = objects.RequestSpec(
|
fake_properties = objects.RequestSpec(
|
||||||
instance_uuid='fake-uuid1',
|
instance_uuid=uuids.instance,
|
||||||
ignore_hosts=['fake_host1'],
|
ignore_hosts=['fake_host1'],
|
||||||
force_hosts=['fake_host3', 'fake_host1'],
|
force_hosts=['fake_host3', 'fake_host1'],
|
||||||
force_nodes=[])
|
force_nodes=[])
|
||||||
@ -328,7 +328,7 @@ class HostManagerTestCase(test.NoDBTestCase):
|
|||||||
def test_get_filtered_hosts_with_force_host_and_many_nodes(self):
|
def test_get_filtered_hosts_with_force_host_and_many_nodes(self):
|
||||||
# Ensure all nodes returned for a host with many nodes
|
# Ensure all nodes returned for a host with many nodes
|
||||||
fake_properties = objects.RequestSpec(
|
fake_properties = objects.RequestSpec(
|
||||||
instance_uuid='fake-uuid1',
|
instance_uuid=uuids.instance,
|
||||||
ignore_hosts=[],
|
ignore_hosts=[],
|
||||||
force_hosts=['fake_multihost'],
|
force_hosts=['fake_multihost'],
|
||||||
force_nodes=[])
|
force_nodes=[])
|
||||||
@ -344,7 +344,7 @@ class HostManagerTestCase(test.NoDBTestCase):
|
|||||||
|
|
||||||
def test_get_filtered_hosts_with_force_nodes(self):
|
def test_get_filtered_hosts_with_force_nodes(self):
|
||||||
fake_properties = objects.RequestSpec(
|
fake_properties = objects.RequestSpec(
|
||||||
instance_uuid='fake-uuid1',
|
instance_uuid=uuids.instance,
|
||||||
ignore_hosts=[],
|
ignore_hosts=[],
|
||||||
force_hosts=[],
|
force_hosts=[],
|
||||||
force_nodes=['fake-node2', 'fake-node4', 'fake-node9'])
|
force_nodes=['fake-node2', 'fake-node4', 'fake-node9'])
|
||||||
@ -361,7 +361,7 @@ class HostManagerTestCase(test.NoDBTestCase):
|
|||||||
def test_get_filtered_hosts_with_force_hosts_and_nodes(self):
|
def test_get_filtered_hosts_with_force_hosts_and_nodes(self):
|
||||||
# Ensure only overlapping results if both force host and node
|
# Ensure only overlapping results if both force host and node
|
||||||
fake_properties = objects.RequestSpec(
|
fake_properties = objects.RequestSpec(
|
||||||
instance_uuid='fake-uuid1',
|
instance_uuid=uuids.instance,
|
||||||
ignore_hosts=[],
|
ignore_hosts=[],
|
||||||
force_hosts=['fake-host1', 'fake_multihost'],
|
force_hosts=['fake-host1', 'fake_multihost'],
|
||||||
force_nodes=['fake-node2', 'fake-node9'])
|
force_nodes=['fake-node2', 'fake-node9'])
|
||||||
@ -378,7 +378,7 @@ class HostManagerTestCase(test.NoDBTestCase):
|
|||||||
def test_get_filtered_hosts_with_force_hosts_and_wrong_nodes(self):
|
def test_get_filtered_hosts_with_force_hosts_and_wrong_nodes(self):
|
||||||
# Ensure non-overlapping force_node and force_host yield no result
|
# Ensure non-overlapping force_node and force_host yield no result
|
||||||
fake_properties = objects.RequestSpec(
|
fake_properties = objects.RequestSpec(
|
||||||
instance_uuid='fake-uuid1',
|
instance_uuid=uuids.instance,
|
||||||
ignore_hosts=[],
|
ignore_hosts=[],
|
||||||
force_hosts=['fake_multihost'],
|
force_hosts=['fake_multihost'],
|
||||||
force_nodes=['fake-node'])
|
force_nodes=['fake-node'])
|
||||||
@ -394,7 +394,7 @@ class HostManagerTestCase(test.NoDBTestCase):
|
|||||||
def test_get_filtered_hosts_with_ignore_hosts_and_force_nodes(self):
|
def test_get_filtered_hosts_with_ignore_hosts_and_force_nodes(self):
|
||||||
# Ensure ignore_hosts can coexist with force_nodes
|
# Ensure ignore_hosts can coexist with force_nodes
|
||||||
fake_properties = objects.RequestSpec(
|
fake_properties = objects.RequestSpec(
|
||||||
instance_uuid='fake-uuid1',
|
instance_uuid=uuids.instance,
|
||||||
ignore_hosts=['fake_host1', 'fake_host2'],
|
ignore_hosts=['fake_host1', 'fake_host2'],
|
||||||
force_hosts=[],
|
force_hosts=[],
|
||||||
force_nodes=['fake-node4', 'fake-node2'])
|
force_nodes=['fake-node4', 'fake-node2'])
|
||||||
@ -410,7 +410,7 @@ class HostManagerTestCase(test.NoDBTestCase):
|
|||||||
def test_get_filtered_hosts_with_ignore_hosts_and_force_same_nodes(self):
|
def test_get_filtered_hosts_with_ignore_hosts_and_force_same_nodes(self):
|
||||||
# Ensure ignore_hosts is processed before force_nodes
|
# Ensure ignore_hosts is processed before force_nodes
|
||||||
fake_properties = objects.RequestSpec(
|
fake_properties = objects.RequestSpec(
|
||||||
instance_uuid='fake-uuid1',
|
instance_uuid=uuids.instance,
|
||||||
ignore_hosts=['fake_multihost'],
|
ignore_hosts=['fake_multihost'],
|
||||||
force_hosts=[],
|
force_hosts=[],
|
||||||
force_nodes=['fake_node4', 'fake_node2'])
|
force_nodes=['fake_node4', 'fake_node2'])
|
||||||
@ -558,9 +558,9 @@ class HostManagerTestCase(test.NoDBTestCase):
|
|||||||
mock_get_svc_by_binary.return_value = fakes.SERVICES
|
mock_get_svc_by_binary.return_value = fakes.SERVICES
|
||||||
context = 'fake_context'
|
context = 'fake_context'
|
||||||
hm = self.host_manager
|
hm = self.host_manager
|
||||||
inst1 = objects.Instance(uuid='uuid1')
|
inst1 = objects.Instance(uuid=uuids.instance)
|
||||||
cn1 = objects.ComputeNode(host='host1')
|
cn1 = objects.ComputeNode(host='host1')
|
||||||
hm._instance_info = {'host1': {'instances': {'uuid1': inst1},
|
hm._instance_info = {'host1': {'instances': {uuids.instance: inst1},
|
||||||
'updated': True}}
|
'updated': True}}
|
||||||
host_state = host_manager.HostState('host1', cn1)
|
host_state = host_manager.HostState('host1', cn1)
|
||||||
self.assertFalse(host_state.instances)
|
self.assertFalse(host_state.instances)
|
||||||
@ -569,7 +569,7 @@ class HostManagerTestCase(test.NoDBTestCase):
|
|||||||
inst_dict=hm._get_instance_info(context, cn1))
|
inst_dict=hm._get_instance_info(context, cn1))
|
||||||
self.assertFalse(mock_get_by_host.called)
|
self.assertFalse(mock_get_by_host.called)
|
||||||
self.assertTrue(host_state.instances)
|
self.assertTrue(host_state.instances)
|
||||||
self.assertEqual(host_state.instances['uuid1'], inst1)
|
self.assertEqual(host_state.instances[uuids.instance], inst1)
|
||||||
|
|
||||||
@mock.patch('nova.objects.ServiceList.get_by_binary')
|
@mock.patch('nova.objects.ServiceList.get_by_binary')
|
||||||
@mock.patch('nova.objects.ComputeNodeList.get_all')
|
@mock.patch('nova.objects.ComputeNodeList.get_all')
|
||||||
@ -581,9 +581,9 @@ class HostManagerTestCase(test.NoDBTestCase):
|
|||||||
mock_get_svc_by_binary.return_value = fakes.SERVICES
|
mock_get_svc_by_binary.return_value = fakes.SERVICES
|
||||||
context = 'fake_context'
|
context = 'fake_context'
|
||||||
hm = self.host_manager
|
hm = self.host_manager
|
||||||
inst1 = objects.Instance(uuid='uuid1')
|
inst1 = objects.Instance(uuid=uuids.instance)
|
||||||
cn1 = objects.ComputeNode(host='host1')
|
cn1 = objects.ComputeNode(host='host1')
|
||||||
hm._instance_info = {'host1': {'instances': {'uuid1': inst1},
|
hm._instance_info = {'host1': {'instances': {uuids.instance: inst1},
|
||||||
'updated': False}}
|
'updated': False}}
|
||||||
host_state = host_manager.HostState('host1', cn1)
|
host_state = host_manager.HostState('host1', cn1)
|
||||||
self.assertFalse(host_state.instances)
|
self.assertFalse(host_state.instances)
|
||||||
@ -592,14 +592,16 @@ class HostManagerTestCase(test.NoDBTestCase):
|
|||||||
inst_dict=hm._get_instance_info(context, cn1))
|
inst_dict=hm._get_instance_info(context, cn1))
|
||||||
mock_get_by_host.assert_called_once_with(context, cn1.host)
|
mock_get_by_host.assert_called_once_with(context, cn1.host)
|
||||||
self.assertTrue(host_state.instances)
|
self.assertTrue(host_state.instances)
|
||||||
self.assertEqual(host_state.instances['uuid1'], inst1)
|
self.assertEqual(host_state.instances[uuids.instance], inst1)
|
||||||
|
|
||||||
@mock.patch('nova.objects.InstanceList.get_by_host')
|
@mock.patch('nova.objects.InstanceList.get_by_host')
|
||||||
def test_recreate_instance_info(self, mock_get_by_host):
|
def test_recreate_instance_info(self, mock_get_by_host):
|
||||||
host_name = 'fake_host'
|
host_name = 'fake_host'
|
||||||
inst1 = fake_instance.fake_instance_obj('fake_context', uuid='aaa',
|
inst1 = fake_instance.fake_instance_obj('fake_context',
|
||||||
|
uuid=uuids.instance_1,
|
||||||
host=host_name)
|
host=host_name)
|
||||||
inst2 = fake_instance.fake_instance_obj('fake_context', uuid='bbb',
|
inst2 = fake_instance.fake_instance_obj('fake_context',
|
||||||
|
uuid=uuids.instance_2,
|
||||||
host=host_name)
|
host=host_name)
|
||||||
orig_inst_dict = {inst1.uuid: inst1, inst2.uuid: inst2}
|
orig_inst_dict = {inst1.uuid: inst1, inst2.uuid: inst2}
|
||||||
new_inst_list = objects.InstanceList(objects=[inst1, inst2])
|
new_inst_list = objects.InstanceList(objects=[inst1, inst2])
|
||||||
@ -616,9 +618,11 @@ class HostManagerTestCase(test.NoDBTestCase):
|
|||||||
|
|
||||||
def test_update_instance_info(self):
|
def test_update_instance_info(self):
|
||||||
host_name = 'fake_host'
|
host_name = 'fake_host'
|
||||||
inst1 = fake_instance.fake_instance_obj('fake_context', uuid='aaa',
|
inst1 = fake_instance.fake_instance_obj('fake_context',
|
||||||
|
uuid=uuids.instance_1,
|
||||||
host=host_name)
|
host=host_name)
|
||||||
inst2 = fake_instance.fake_instance_obj('fake_context', uuid='bbb',
|
inst2 = fake_instance.fake_instance_obj('fake_context',
|
||||||
|
uuid=uuids.instance_2,
|
||||||
host=host_name)
|
host=host_name)
|
||||||
orig_inst_dict = {inst1.uuid: inst1, inst2.uuid: inst2}
|
orig_inst_dict = {inst1.uuid: inst1, inst2.uuid: inst2}
|
||||||
self.host_manager._instance_info = {
|
self.host_manager._instance_info = {
|
||||||
@ -626,9 +630,11 @@ class HostManagerTestCase(test.NoDBTestCase):
|
|||||||
'instances': orig_inst_dict,
|
'instances': orig_inst_dict,
|
||||||
'updated': False,
|
'updated': False,
|
||||||
}}
|
}}
|
||||||
inst3 = fake_instance.fake_instance_obj('fake_context', uuid='ccc',
|
inst3 = fake_instance.fake_instance_obj('fake_context',
|
||||||
|
uuid=uuids.instance_3,
|
||||||
host=host_name)
|
host=host_name)
|
||||||
inst4 = fake_instance.fake_instance_obj('fake_context', uuid='ddd',
|
inst4 = fake_instance.fake_instance_obj('fake_context',
|
||||||
|
uuid=uuids.instance_4,
|
||||||
host=host_name)
|
host=host_name)
|
||||||
update = objects.InstanceList(objects=[inst3, inst4])
|
update = objects.InstanceList(objects=[inst3, inst4])
|
||||||
self.host_manager.update_instance_info('fake_context', host_name,
|
self.host_manager.update_instance_info('fake_context', host_name,
|
||||||
@ -640,9 +646,11 @@ class HostManagerTestCase(test.NoDBTestCase):
|
|||||||
def test_update_instance_info_unknown_host(self):
|
def test_update_instance_info_unknown_host(self):
|
||||||
self.host_manager._recreate_instance_info = mock.MagicMock()
|
self.host_manager._recreate_instance_info = mock.MagicMock()
|
||||||
host_name = 'fake_host'
|
host_name = 'fake_host'
|
||||||
inst1 = fake_instance.fake_instance_obj('fake_context', uuid='aaa',
|
inst1 = fake_instance.fake_instance_obj('fake_context',
|
||||||
|
uuid=uuids.instance_1,
|
||||||
host=host_name)
|
host=host_name)
|
||||||
inst2 = fake_instance.fake_instance_obj('fake_context', uuid='bbb',
|
inst2 = fake_instance.fake_instance_obj('fake_context',
|
||||||
|
uuid=uuids.instance_2,
|
||||||
host=host_name)
|
host=host_name)
|
||||||
orig_inst_dict = {inst1.uuid: inst1, inst2.uuid: inst2}
|
orig_inst_dict = {inst1.uuid: inst1, inst2.uuid: inst2}
|
||||||
self.host_manager._instance_info = {
|
self.host_manager._instance_info = {
|
||||||
@ -651,7 +659,8 @@ class HostManagerTestCase(test.NoDBTestCase):
|
|||||||
'updated': False,
|
'updated': False,
|
||||||
}}
|
}}
|
||||||
bad_host = 'bad_host'
|
bad_host = 'bad_host'
|
||||||
inst3 = fake_instance.fake_instance_obj('fake_context', uuid='ccc',
|
inst3 = fake_instance.fake_instance_obj('fake_context',
|
||||||
|
uuid=uuids.instance_3,
|
||||||
host=bad_host)
|
host=bad_host)
|
||||||
inst_list3 = objects.InstanceList(objects=[inst3])
|
inst_list3 = objects.InstanceList(objects=[inst3])
|
||||||
self.host_manager.update_instance_info('fake_context', bad_host,
|
self.host_manager.update_instance_info('fake_context', bad_host,
|
||||||
@ -664,9 +673,11 @@ class HostManagerTestCase(test.NoDBTestCase):
|
|||||||
|
|
||||||
def test_delete_instance_info(self):
|
def test_delete_instance_info(self):
|
||||||
host_name = 'fake_host'
|
host_name = 'fake_host'
|
||||||
inst1 = fake_instance.fake_instance_obj('fake_context', uuid='aaa',
|
inst1 = fake_instance.fake_instance_obj('fake_context',
|
||||||
|
uuid=uuids.instance_1,
|
||||||
host=host_name)
|
host=host_name)
|
||||||
inst2 = fake_instance.fake_instance_obj('fake_context', uuid='bbb',
|
inst2 = fake_instance.fake_instance_obj('fake_context',
|
||||||
|
uuid=uuids.instance_2,
|
||||||
host=host_name)
|
host=host_name)
|
||||||
orig_inst_dict = {inst1.uuid: inst1, inst2.uuid: inst2}
|
orig_inst_dict = {inst1.uuid: inst1, inst2.uuid: inst2}
|
||||||
self.host_manager._instance_info = {
|
self.host_manager._instance_info = {
|
||||||
@ -683,9 +694,11 @@ class HostManagerTestCase(test.NoDBTestCase):
|
|||||||
def test_delete_instance_info_unknown_host(self):
|
def test_delete_instance_info_unknown_host(self):
|
||||||
self.host_manager._recreate_instance_info = mock.MagicMock()
|
self.host_manager._recreate_instance_info = mock.MagicMock()
|
||||||
host_name = 'fake_host'
|
host_name = 'fake_host'
|
||||||
inst1 = fake_instance.fake_instance_obj('fake_context', uuid='aaa',
|
inst1 = fake_instance.fake_instance_obj('fake_context',
|
||||||
|
uuid=uuids.instance_1,
|
||||||
host=host_name)
|
host=host_name)
|
||||||
inst2 = fake_instance.fake_instance_obj('fake_context', uuid='bbb',
|
inst2 = fake_instance.fake_instance_obj('fake_context',
|
||||||
|
uuid=uuids.instance_2,
|
||||||
host=host_name)
|
host=host_name)
|
||||||
orig_inst_dict = {inst1.uuid: inst1, inst2.uuid: inst2}
|
orig_inst_dict = {inst1.uuid: inst1, inst2.uuid: inst2}
|
||||||
self.host_manager._instance_info = {
|
self.host_manager._instance_info = {
|
||||||
@ -694,7 +707,8 @@ class HostManagerTestCase(test.NoDBTestCase):
|
|||||||
'updated': False,
|
'updated': False,
|
||||||
}}
|
}}
|
||||||
bad_host = 'bad_host'
|
bad_host = 'bad_host'
|
||||||
self.host_manager.delete_instance_info('fake_context', bad_host, 'aaa')
|
self.host_manager.delete_instance_info('fake_context', bad_host,
|
||||||
|
uuids.instance_1)
|
||||||
new_info = self.host_manager._instance_info[host_name]
|
new_info = self.host_manager._instance_info[host_name]
|
||||||
self.host_manager._recreate_instance_info.assert_called_once_with(
|
self.host_manager._recreate_instance_info.assert_called_once_with(
|
||||||
'fake_context', bad_host)
|
'fake_context', bad_host)
|
||||||
@ -704,9 +718,11 @@ class HostManagerTestCase(test.NoDBTestCase):
|
|||||||
def test_sync_instance_info(self):
|
def test_sync_instance_info(self):
|
||||||
self.host_manager._recreate_instance_info = mock.MagicMock()
|
self.host_manager._recreate_instance_info = mock.MagicMock()
|
||||||
host_name = 'fake_host'
|
host_name = 'fake_host'
|
||||||
inst1 = fake_instance.fake_instance_obj('fake_context', uuid='aaa',
|
inst1 = fake_instance.fake_instance_obj('fake_context',
|
||||||
|
uuid=uuids.instance_1,
|
||||||
host=host_name)
|
host=host_name)
|
||||||
inst2 = fake_instance.fake_instance_obj('fake_context', uuid='bbb',
|
inst2 = fake_instance.fake_instance_obj('fake_context',
|
||||||
|
uuid=uuids.instance_2,
|
||||||
host=host_name)
|
host=host_name)
|
||||||
orig_inst_dict = {inst1.uuid: inst1, inst2.uuid: inst2}
|
orig_inst_dict = {inst1.uuid: inst1, inst2.uuid: inst2}
|
||||||
self.host_manager._instance_info = {
|
self.host_manager._instance_info = {
|
||||||
@ -715,7 +731,8 @@ class HostManagerTestCase(test.NoDBTestCase):
|
|||||||
'updated': False,
|
'updated': False,
|
||||||
}}
|
}}
|
||||||
self.host_manager.sync_instance_info('fake_context', host_name,
|
self.host_manager.sync_instance_info('fake_context', host_name,
|
||||||
['bbb', 'aaa'])
|
[uuids.instance_2,
|
||||||
|
uuids.instance_1])
|
||||||
new_info = self.host_manager._instance_info[host_name]
|
new_info = self.host_manager._instance_info[host_name]
|
||||||
self.assertFalse(self.host_manager._recreate_instance_info.called)
|
self.assertFalse(self.host_manager._recreate_instance_info.called)
|
||||||
self.assertTrue(new_info['updated'])
|
self.assertTrue(new_info['updated'])
|
||||||
@ -723,9 +740,11 @@ class HostManagerTestCase(test.NoDBTestCase):
|
|||||||
def test_sync_instance_info_fail(self):
|
def test_sync_instance_info_fail(self):
|
||||||
self.host_manager._recreate_instance_info = mock.MagicMock()
|
self.host_manager._recreate_instance_info = mock.MagicMock()
|
||||||
host_name = 'fake_host'
|
host_name = 'fake_host'
|
||||||
inst1 = fake_instance.fake_instance_obj('fake_context', uuid='aaa',
|
inst1 = fake_instance.fake_instance_obj('fake_context',
|
||||||
|
uuid=uuids.instance_1,
|
||||||
host=host_name)
|
host=host_name)
|
||||||
inst2 = fake_instance.fake_instance_obj('fake_context', uuid='bbb',
|
inst2 = fake_instance.fake_instance_obj('fake_context',
|
||||||
|
uuid=uuids.instance_2,
|
||||||
host=host_name)
|
host=host_name)
|
||||||
orig_inst_dict = {inst1.uuid: inst1, inst2.uuid: inst2}
|
orig_inst_dict = {inst1.uuid: inst1, inst2.uuid: inst2}
|
||||||
self.host_manager._instance_info = {
|
self.host_manager._instance_info = {
|
||||||
@ -734,7 +753,8 @@ class HostManagerTestCase(test.NoDBTestCase):
|
|||||||
'updated': False,
|
'updated': False,
|
||||||
}}
|
}}
|
||||||
self.host_manager.sync_instance_info('fake_context', host_name,
|
self.host_manager.sync_instance_info('fake_context', host_name,
|
||||||
['bbb', 'aaa', 'new'])
|
[uuids.instance_2,
|
||||||
|
uuids.instance_1, 'new'])
|
||||||
new_info = self.host_manager._instance_info[host_name]
|
new_info = self.host_manager._instance_info[host_name]
|
||||||
self.host_manager._recreate_instance_info.assert_called_once_with(
|
self.host_manager._recreate_instance_info.assert_called_once_with(
|
||||||
'fake_context', host_name)
|
'fake_context', host_name)
|
||||||
@ -960,7 +980,7 @@ class HostStateTestCase(test.NoDBTestCase):
|
|||||||
numa_fit_mock.return_value = fake_numa_topology
|
numa_fit_mock.return_value = fake_numa_topology
|
||||||
instance_init_mock.return_value = fake_instance
|
instance_init_mock.return_value = fake_instance
|
||||||
spec_obj = objects.RequestSpec(
|
spec_obj = objects.RequestSpec(
|
||||||
instance_uuid='fake-uuid',
|
instance_uuid=uuids.instance,
|
||||||
flavor=objects.Flavor(root_gb=0, ephemeral_gb=0, memory_mb=0,
|
flavor=objects.Flavor(root_gb=0, ephemeral_gb=0, memory_mb=0,
|
||||||
vcpus=0),
|
vcpus=0),
|
||||||
numa_topology=fake_numa_topology,
|
numa_topology=fake_numa_topology,
|
||||||
@ -981,7 +1001,7 @@ class HostStateTestCase(test.NoDBTestCase):
|
|||||||
second_numa_topology = objects.InstanceNUMATopology(
|
second_numa_topology = objects.InstanceNUMATopology(
|
||||||
cells=[objects.InstanceNUMACell()])
|
cells=[objects.InstanceNUMACell()])
|
||||||
spec_obj = objects.RequestSpec(
|
spec_obj = objects.RequestSpec(
|
||||||
instance_uuid='fake-uuid',
|
instance_uuid=uuids.instance,
|
||||||
flavor=objects.Flavor(root_gb=0, ephemeral_gb=0, memory_mb=0,
|
flavor=objects.Flavor(root_gb=0, ephemeral_gb=0, memory_mb=0,
|
||||||
vcpus=0),
|
vcpus=0),
|
||||||
numa_topology=second_numa_topology,
|
numa_topology=second_numa_topology,
|
||||||
@ -1005,14 +1025,14 @@ class HostStateTestCase(test.NoDBTestCase):
|
|||||||
cpuset=set([0]),
|
cpuset=set([0]),
|
||||||
memory=512, id=0)])
|
memory=512, id=0)])
|
||||||
|
|
||||||
fake_requests = [{'request_id': 'fake_request1', 'count': 1,
|
fake_requests = [{'request_id': uuids.request_id, 'count': 1,
|
||||||
'spec': [{'vendor_id': '8086'}]}]
|
'spec': [{'vendor_id': '8086'}]}]
|
||||||
fake_requests_obj = objects.InstancePCIRequests(
|
fake_requests_obj = objects.InstancePCIRequests(
|
||||||
requests=[objects.InstancePCIRequest(**r)
|
requests=[objects.InstancePCIRequest(**r)
|
||||||
for r in fake_requests],
|
for r in fake_requests],
|
||||||
instance_uuid='fake-uuid')
|
instance_uuid=uuids.instance)
|
||||||
req_spec = objects.RequestSpec(
|
req_spec = objects.RequestSpec(
|
||||||
instance_uuid='fake-uuid',
|
instance_uuid=uuids.instance,
|
||||||
project_id='12345',
|
project_id='12345',
|
||||||
numa_topology=inst_topology,
|
numa_topology=inst_topology,
|
||||||
pci_requests=fake_requests_obj,
|
pci_requests=fake_requests_obj,
|
||||||
@ -1038,14 +1058,14 @@ class HostStateTestCase(test.NoDBTestCase):
|
|||||||
self.assertIsNotNone(host.updated)
|
self.assertIsNotNone(host.updated)
|
||||||
|
|
||||||
def test_stat_consumption_from_instance_with_pci_exception(self):
|
def test_stat_consumption_from_instance_with_pci_exception(self):
|
||||||
fake_requests = [{'request_id': 'fake_request1', 'count': 3,
|
fake_requests = [{'request_id': uuids.request_id, 'count': 3,
|
||||||
'spec': [{'vendor_id': '8086'}]}]
|
'spec': [{'vendor_id': '8086'}]}]
|
||||||
fake_requests_obj = objects.InstancePCIRequests(
|
fake_requests_obj = objects.InstancePCIRequests(
|
||||||
requests=[objects.InstancePCIRequest(**r)
|
requests=[objects.InstancePCIRequest(**r)
|
||||||
for r in fake_requests],
|
for r in fake_requests],
|
||||||
instance_uuid='fake-uuid')
|
instance_uuid=uuids.instance)
|
||||||
req_spec = objects.RequestSpec(
|
req_spec = objects.RequestSpec(
|
||||||
instance_uuid='fake-uuid',
|
instance_uuid=uuids.instance,
|
||||||
project_id='12345',
|
project_id='12345',
|
||||||
numa_topology=None,
|
numa_topology=None,
|
||||||
pci_requests=fake_requests_obj,
|
pci_requests=fake_requests_obj,
|
||||||
|
@ -27,6 +27,7 @@ from nova.scheduler import host_manager
|
|||||||
from nova.scheduler import ironic_host_manager
|
from nova.scheduler import ironic_host_manager
|
||||||
from nova import test
|
from nova import test
|
||||||
from nova.tests.unit.scheduler import ironic_fakes
|
from nova.tests.unit.scheduler import ironic_fakes
|
||||||
|
from nova.tests import uuidsentinel as uuids
|
||||||
|
|
||||||
|
|
||||||
class FakeFilterClass1(filters.BaseHostFilter):
|
class FakeFilterClass1(filters.BaseHostFilter):
|
||||||
@ -208,7 +209,7 @@ class IronicHostManagerChangedNodesTestCase(test.NoDBTestCase):
|
|||||||
spec_obj = objects.RequestSpec(
|
spec_obj = objects.RequestSpec(
|
||||||
flavor=objects.Flavor(root_gb=10, ephemeral_gb=0, memory_mb=1024,
|
flavor=objects.Flavor(root_gb=10, ephemeral_gb=0, memory_mb=1024,
|
||||||
vcpus=1),
|
vcpus=1),
|
||||||
uuid='fake-uuid')
|
uuid=uuids.instance)
|
||||||
host.consume_from_request(spec_obj)
|
host.consume_from_request(spec_obj)
|
||||||
|
|
||||||
self.assertEqual(1, host.vcpus_used)
|
self.assertEqual(1, host.vcpus_used)
|
||||||
@ -332,7 +333,7 @@ class IronicHostManagerTestFilters(test.NoDBTestCase):
|
|||||||
|
|
||||||
def test_get_filtered_hosts(self):
|
def test_get_filtered_hosts(self):
|
||||||
fake_properties = objects.RequestSpec(
|
fake_properties = objects.RequestSpec(
|
||||||
instance_uuid='fake-uuid',
|
instance_uuid=uuids.instance,
|
||||||
ignore_hosts=[],
|
ignore_hosts=[],
|
||||||
force_hosts=[],
|
force_hosts=[],
|
||||||
force_nodes=[])
|
force_nodes=[])
|
||||||
@ -348,7 +349,7 @@ class IronicHostManagerTestFilters(test.NoDBTestCase):
|
|||||||
|
|
||||||
def test_get_filtered_hosts_with_ignore(self):
|
def test_get_filtered_hosts_with_ignore(self):
|
||||||
fake_properties = objects.RequestSpec(
|
fake_properties = objects.RequestSpec(
|
||||||
instance_uuid='fake-uuid',
|
instance_uuid=uuids.instance,
|
||||||
ignore_hosts=['fake_host1', 'fake_host3',
|
ignore_hosts=['fake_host1', 'fake_host3',
|
||||||
'fake_host5', 'fake_multihost'],
|
'fake_host5', 'fake_multihost'],
|
||||||
force_hosts=[],
|
force_hosts=[],
|
||||||
@ -365,7 +366,7 @@ class IronicHostManagerTestFilters(test.NoDBTestCase):
|
|||||||
|
|
||||||
def test_get_filtered_hosts_with_force_hosts(self):
|
def test_get_filtered_hosts_with_force_hosts(self):
|
||||||
fake_properties = objects.RequestSpec(
|
fake_properties = objects.RequestSpec(
|
||||||
instance_uuid='fake-uuid',
|
instance_uuid=uuids.instance,
|
||||||
ignore_hosts=[],
|
ignore_hosts=[],
|
||||||
force_hosts=['fake_host1', 'fake_host3', 'fake_host5'],
|
force_hosts=['fake_host1', 'fake_host3', 'fake_host5'],
|
||||||
force_nodes=[])
|
force_nodes=[])
|
||||||
@ -381,7 +382,7 @@ class IronicHostManagerTestFilters(test.NoDBTestCase):
|
|||||||
|
|
||||||
def test_get_filtered_hosts_with_no_matching_force_hosts(self):
|
def test_get_filtered_hosts_with_no_matching_force_hosts(self):
|
||||||
fake_properties = objects.RequestSpec(
|
fake_properties = objects.RequestSpec(
|
||||||
instance_uuid='fake-uuid',
|
instance_uuid=uuids.instance,
|
||||||
ignore_hosts=[],
|
ignore_hosts=[],
|
||||||
force_hosts=['fake_host5', 'fake_host6'],
|
force_hosts=['fake_host5', 'fake_host6'],
|
||||||
force_nodes=[])
|
force_nodes=[])
|
||||||
@ -397,7 +398,7 @@ class IronicHostManagerTestFilters(test.NoDBTestCase):
|
|||||||
def test_get_filtered_hosts_with_ignore_and_force_hosts(self):
|
def test_get_filtered_hosts_with_ignore_and_force_hosts(self):
|
||||||
# Ensure ignore_hosts processed before force_hosts in host filters.
|
# Ensure ignore_hosts processed before force_hosts in host filters.
|
||||||
fake_properties = objects.RequestSpec(
|
fake_properties = objects.RequestSpec(
|
||||||
instance_uuid='fake-uuid',
|
instance_uuid=uuids.instance,
|
||||||
ignore_hosts=['fake_host1'],
|
ignore_hosts=['fake_host1'],
|
||||||
force_hosts=['fake_host3', 'fake_host1'],
|
force_hosts=['fake_host3', 'fake_host1'],
|
||||||
force_nodes=[])
|
force_nodes=[])
|
||||||
@ -414,7 +415,7 @@ class IronicHostManagerTestFilters(test.NoDBTestCase):
|
|||||||
def test_get_filtered_hosts_with_force_host_and_many_nodes(self):
|
def test_get_filtered_hosts_with_force_host_and_many_nodes(self):
|
||||||
# Ensure all nodes returned for a host with many nodes
|
# Ensure all nodes returned for a host with many nodes
|
||||||
fake_properties = objects.RequestSpec(
|
fake_properties = objects.RequestSpec(
|
||||||
instance_uuid='fake-uuid',
|
instance_uuid=uuids.instance,
|
||||||
ignore_hosts=[],
|
ignore_hosts=[],
|
||||||
force_hosts=['fake_multihost'],
|
force_hosts=['fake_multihost'],
|
||||||
force_nodes=[])
|
force_nodes=[])
|
||||||
@ -430,7 +431,7 @@ class IronicHostManagerTestFilters(test.NoDBTestCase):
|
|||||||
|
|
||||||
def test_get_filtered_hosts_with_force_nodes(self):
|
def test_get_filtered_hosts_with_force_nodes(self):
|
||||||
fake_properties = objects.RequestSpec(
|
fake_properties = objects.RequestSpec(
|
||||||
instance_uuid='fake-uuid',
|
instance_uuid=uuids.instance,
|
||||||
ignore_hosts=[],
|
ignore_hosts=[],
|
||||||
force_hosts=[],
|
force_hosts=[],
|
||||||
force_nodes=['fake-node2', 'fake-node4', 'fake-node9'])
|
force_nodes=['fake-node2', 'fake-node4', 'fake-node9'])
|
||||||
@ -447,7 +448,7 @@ class IronicHostManagerTestFilters(test.NoDBTestCase):
|
|||||||
def test_get_filtered_hosts_with_force_hosts_and_nodes(self):
|
def test_get_filtered_hosts_with_force_hosts_and_nodes(self):
|
||||||
# Ensure only overlapping results if both force host and node
|
# Ensure only overlapping results if both force host and node
|
||||||
fake_properties = objects.RequestSpec(
|
fake_properties = objects.RequestSpec(
|
||||||
instance_uuid='fake-uuid',
|
instance_uuid=uuids.instance,
|
||||||
ignore_hosts=[],
|
ignore_hosts=[],
|
||||||
force_hosts=['fake_host1', 'fake_multihost'],
|
force_hosts=['fake_host1', 'fake_multihost'],
|
||||||
force_nodes=['fake-node2', 'fake-node9'])
|
force_nodes=['fake-node2', 'fake-node9'])
|
||||||
@ -464,7 +465,7 @@ class IronicHostManagerTestFilters(test.NoDBTestCase):
|
|||||||
def test_get_filtered_hosts_with_force_hosts_and_wrong_nodes(self):
|
def test_get_filtered_hosts_with_force_hosts_and_wrong_nodes(self):
|
||||||
# Ensure non-overlapping force_node and force_host yield no result
|
# Ensure non-overlapping force_node and force_host yield no result
|
||||||
fake_properties = objects.RequestSpec(
|
fake_properties = objects.RequestSpec(
|
||||||
instance_uuid='fake-uuid',
|
instance_uuid=uuids.instance,
|
||||||
ignore_hosts=[],
|
ignore_hosts=[],
|
||||||
force_hosts=['fake_multihost'],
|
force_hosts=['fake_multihost'],
|
||||||
force_nodes=['fake-node'])
|
force_nodes=['fake-node'])
|
||||||
@ -480,7 +481,7 @@ class IronicHostManagerTestFilters(test.NoDBTestCase):
|
|||||||
def test_get_filtered_hosts_with_ignore_hosts_and_force_nodes(self):
|
def test_get_filtered_hosts_with_ignore_hosts_and_force_nodes(self):
|
||||||
# Ensure ignore_hosts can coexist with force_nodes
|
# Ensure ignore_hosts can coexist with force_nodes
|
||||||
fake_properties = objects.RequestSpec(
|
fake_properties = objects.RequestSpec(
|
||||||
instance_uuid='fake-uuid',
|
instance_uuid=uuids.instance,
|
||||||
ignore_hosts=['fake_host1', 'fake_host2'],
|
ignore_hosts=['fake_host1', 'fake_host2'],
|
||||||
force_hosts=[],
|
force_hosts=[],
|
||||||
force_nodes=['fake-node4', 'fake-node2'])
|
force_nodes=['fake-node4', 'fake-node2'])
|
||||||
@ -496,7 +497,7 @@ class IronicHostManagerTestFilters(test.NoDBTestCase):
|
|||||||
def test_get_filtered_hosts_with_ignore_hosts_and_force_same_nodes(self):
|
def test_get_filtered_hosts_with_ignore_hosts_and_force_same_nodes(self):
|
||||||
# Ensure ignore_hosts is processed before force_nodes
|
# Ensure ignore_hosts is processed before force_nodes
|
||||||
fake_properties = objects.RequestSpec(
|
fake_properties = objects.RequestSpec(
|
||||||
instance_uuid='fake-uuid',
|
instance_uuid=uuids.instance,
|
||||||
ignore_hosts=['fake_multihost'],
|
ignore_hosts=['fake_multihost'],
|
||||||
force_hosts=[],
|
force_hosts=[],
|
||||||
force_nodes=['fake_node4', 'fake_node2'])
|
force_nodes=['fake_node4', 'fake_node2'])
|
||||||
|
@ -29,6 +29,7 @@ from nova.scheduler import utils as scheduler_utils
|
|||||||
from nova import test
|
from nova import test
|
||||||
from nova.tests.unit import fake_instance
|
from nova.tests.unit import fake_instance
|
||||||
from nova.tests.unit.objects import test_flavor
|
from nova.tests.unit.objects import test_flavor
|
||||||
|
from nova.tests import uuidsentinel as uuids
|
||||||
|
|
||||||
|
|
||||||
class SchedulerUtilsTestCase(test.NoDBTestCase):
|
class SchedulerUtilsTestCase(test.NoDBTestCase):
|
||||||
@ -38,7 +39,7 @@ class SchedulerUtilsTestCase(test.NoDBTestCase):
|
|||||||
self.context = 'fake-context'
|
self.context = 'fake-context'
|
||||||
|
|
||||||
def test_build_request_spec_without_image(self):
|
def test_build_request_spec_without_image(self):
|
||||||
instance = {'uuid': 'fake-uuid'}
|
instance = {'uuid': uuids.instance}
|
||||||
instance_type = objects.Flavor(**test_flavor.fake_flavor)
|
instance_type = objects.Flavor(**test_flavor.fake_flavor)
|
||||||
|
|
||||||
with mock.patch.object(flavors, 'extract_flavor') as mock_extract:
|
with mock.patch.object(flavors, 'extract_flavor') as mock_extract:
|
||||||
@ -46,7 +47,7 @@ class SchedulerUtilsTestCase(test.NoDBTestCase):
|
|||||||
request_spec = scheduler_utils.build_request_spec(self.context,
|
request_spec = scheduler_utils.build_request_spec(self.context,
|
||||||
None,
|
None,
|
||||||
[instance])
|
[instance])
|
||||||
mock_extract.assert_called_once_with({'uuid': 'fake-uuid'})
|
mock_extract.assert_called_once_with({'uuid': uuids.instance})
|
||||||
self.assertEqual({}, request_spec['image'])
|
self.assertEqual({}, request_spec['image'])
|
||||||
|
|
||||||
def test_build_request_spec_with_object(self):
|
def test_build_request_spec_with_object(self):
|
||||||
@ -65,7 +66,7 @@ class SchedulerUtilsTestCase(test.NoDBTestCase):
|
|||||||
@mock.patch.object(compute_utils, 'add_instance_fault_from_exc')
|
@mock.patch.object(compute_utils, 'add_instance_fault_from_exc')
|
||||||
@mock.patch.object(objects.Instance, 'save')
|
@mock.patch.object(objects.Instance, 'save')
|
||||||
def test_set_vm_state_and_notify(self, mock_save, mock_add, mock_get):
|
def test_set_vm_state_and_notify(self, mock_save, mock_add, mock_get):
|
||||||
expected_uuid = 'fake-uuid'
|
expected_uuid = uuids.instance
|
||||||
request_spec = dict(instance_properties=dict(uuid='other-uuid'))
|
request_spec = dict(instance_properties=dict(uuid='other-uuid'))
|
||||||
updates = dict(vm_state='fake-vm-state')
|
updates = dict(vm_state='fake-vm-state')
|
||||||
service = 'fake-service'
|
service = 'fake-service'
|
||||||
@ -208,7 +209,7 @@ class SchedulerUtilsTestCase(test.NoDBTestCase):
|
|||||||
exc_reason=[msg]))
|
exc_reason=[msg]))
|
||||||
nvh = self.assertRaises(exception.MaxRetriesExceeded,
|
nvh = self.assertRaises(exception.MaxRetriesExceeded,
|
||||||
scheduler_utils.populate_retry,
|
scheduler_utils.populate_retry,
|
||||||
filter_properties, 'fake-uuid')
|
filter_properties, uuids.instance)
|
||||||
# make sure 'msg' is a substring of the complete exception text
|
# make sure 'msg' is a substring of the complete exception text
|
||||||
self.assertIn(msg, six.text_type(nvh))
|
self.assertIn(msg, six.text_type(nvh))
|
||||||
|
|
||||||
@ -324,7 +325,7 @@ class SchedulerUtilsTestCase(test.NoDBTestCase):
|
|||||||
scheduler_utils._SUPPORTS_SOFT_ANTI_AFFINITY = None
|
scheduler_utils._SUPPORTS_SOFT_ANTI_AFFINITY = None
|
||||||
self.assertRaises(exception.UnsupportedPolicyException,
|
self.assertRaises(exception.UnsupportedPolicyException,
|
||||||
scheduler_utils._get_group_details,
|
scheduler_utils._get_group_details,
|
||||||
self.context, 'fake-uuid')
|
self.context, uuids.instance)
|
||||||
|
|
||||||
def test_get_group_details_with_filter_not_configured(self):
|
def test_get_group_details_with_filter_not_configured(self):
|
||||||
policies = ['anti-affinity', 'affinity',
|
policies = ['anti-affinity', 'affinity',
|
||||||
@ -337,12 +338,12 @@ class SchedulerUtilsTestCase(test.NoDBTestCase):
|
|||||||
mock_ggd.return_value = scheduler_utils.GroupDetails(
|
mock_ggd.return_value = scheduler_utils.GroupDetails(
|
||||||
hosts=set(['hostA', 'hostB']), policies=['policy'],
|
hosts=set(['hostA', 'hostB']), policies=['policy'],
|
||||||
members=['instance1'])
|
members=['instance1'])
|
||||||
spec = {'instance_properties': {'uuid': 'fake-uuid'}}
|
spec = {'instance_properties': {'uuid': uuids.instance}}
|
||||||
filter_props = {'group_hosts': ['hostC']}
|
filter_props = {'group_hosts': ['hostC']}
|
||||||
|
|
||||||
scheduler_utils.setup_instance_group(self.context, spec, filter_props)
|
scheduler_utils.setup_instance_group(self.context, spec, filter_props)
|
||||||
|
|
||||||
mock_ggd.assert_called_once_with(self.context, 'fake-uuid',
|
mock_ggd.assert_called_once_with(self.context, uuids.instance,
|
||||||
['hostC'])
|
['hostC'])
|
||||||
expected_filter_props = {'group_updated': True,
|
expected_filter_props = {'group_updated': True,
|
||||||
'group_hosts': set(['hostA', 'hostB']),
|
'group_hosts': set(['hostA', 'hostB']),
|
||||||
@ -353,12 +354,12 @@ class SchedulerUtilsTestCase(test.NoDBTestCase):
|
|||||||
@mock.patch.object(scheduler_utils, '_get_group_details')
|
@mock.patch.object(scheduler_utils, '_get_group_details')
|
||||||
def test_setup_instance_group_with_no_group(self, mock_ggd):
|
def test_setup_instance_group_with_no_group(self, mock_ggd):
|
||||||
mock_ggd.return_value = None
|
mock_ggd.return_value = None
|
||||||
spec = {'instance_properties': {'uuid': 'fake-uuid'}}
|
spec = {'instance_properties': {'uuid': uuids.instance}}
|
||||||
filter_props = {'group_hosts': ['hostC']}
|
filter_props = {'group_hosts': ['hostC']}
|
||||||
|
|
||||||
scheduler_utils.setup_instance_group(self.context, spec, filter_props)
|
scheduler_utils.setup_instance_group(self.context, spec, filter_props)
|
||||||
|
|
||||||
mock_ggd.assert_called_once_with(self.context, 'fake-uuid',
|
mock_ggd.assert_called_once_with(self.context, uuids.instance,
|
||||||
['hostC'])
|
['hostC'])
|
||||||
self.assertNotIn('group_updated', filter_props)
|
self.assertNotIn('group_updated', filter_props)
|
||||||
self.assertNotIn('group_policies', filter_props)
|
self.assertNotIn('group_policies', filter_props)
|
||||||
@ -367,7 +368,7 @@ class SchedulerUtilsTestCase(test.NoDBTestCase):
|
|||||||
@mock.patch.object(scheduler_utils, '_get_group_details')
|
@mock.patch.object(scheduler_utils, '_get_group_details')
|
||||||
def test_setup_instance_group_with_filter_not_configured(self, mock_ggd):
|
def test_setup_instance_group_with_filter_not_configured(self, mock_ggd):
|
||||||
mock_ggd.side_effect = exception.NoValidHost(reason='whatever')
|
mock_ggd.side_effect = exception.NoValidHost(reason='whatever')
|
||||||
spec = {'instance_properties': {'uuid': 'fake-uuid'}}
|
spec = {'instance_properties': {'uuid': uuids.instance}}
|
||||||
filter_props = {'group_hosts': ['hostC']}
|
filter_props = {'group_hosts': ['hostC']}
|
||||||
|
|
||||||
self.assertRaises(exception.NoValidHost,
|
self.assertRaises(exception.NoValidHost,
|
||||||
|
@ -23,6 +23,7 @@ from nova import objects
|
|||||||
from nova import test
|
from nova import test
|
||||||
from nova.tests.unit import fake_block_device
|
from nova.tests.unit import fake_block_device
|
||||||
from nova.tests.unit import matchers
|
from nova.tests.unit import matchers
|
||||||
|
from nova.tests import uuidsentinel as uuids
|
||||||
|
|
||||||
|
|
||||||
class BlockDeviceTestCase(test.NoDBTestCase):
|
class BlockDeviceTestCase(test.NoDBTestCase):
|
||||||
@ -31,7 +32,7 @@ class BlockDeviceTestCase(test.NoDBTestCase):
|
|||||||
BDM = block_device.BlockDeviceDict
|
BDM = block_device.BlockDeviceDict
|
||||||
|
|
||||||
self.new_mapping = [
|
self.new_mapping = [
|
||||||
BDM({'id': 1, 'instance_uuid': 'fake-instance',
|
BDM({'id': 1, 'instance_uuid': uuids.instance,
|
||||||
'device_name': '/dev/sdb1',
|
'device_name': '/dev/sdb1',
|
||||||
'source_type': 'blank',
|
'source_type': 'blank',
|
||||||
'destination_type': 'local',
|
'destination_type': 'local',
|
||||||
@ -39,21 +40,21 @@ class BlockDeviceTestCase(test.NoDBTestCase):
|
|||||||
'volume_size': 1,
|
'volume_size': 1,
|
||||||
'guest_format': 'swap',
|
'guest_format': 'swap',
|
||||||
'boot_index': -1}),
|
'boot_index': -1}),
|
||||||
BDM({'id': 2, 'instance_uuid': 'fake-instance',
|
BDM({'id': 2, 'instance_uuid': uuids.instance,
|
||||||
'device_name': '/dev/sdc1',
|
'device_name': '/dev/sdc1',
|
||||||
'source_type': 'blank',
|
'source_type': 'blank',
|
||||||
'destination_type': 'local',
|
'destination_type': 'local',
|
||||||
'volume_size': 10,
|
'volume_size': 10,
|
||||||
'delete_on_termination': True,
|
'delete_on_termination': True,
|
||||||
'boot_index': -1}),
|
'boot_index': -1}),
|
||||||
BDM({'id': 3, 'instance_uuid': 'fake-instance',
|
BDM({'id': 3, 'instance_uuid': uuids.instance,
|
||||||
'device_name': '/dev/sda1',
|
'device_name': '/dev/sda1',
|
||||||
'source_type': 'volume',
|
'source_type': 'volume',
|
||||||
'destination_type': 'volume',
|
'destination_type': 'volume',
|
||||||
'volume_id': 'fake-volume-id-1',
|
'volume_id': 'fake-volume-id-1',
|
||||||
'connection_info': "{'fake': 'connection_info'}",
|
'connection_info': "{'fake': 'connection_info'}",
|
||||||
'boot_index': 0}),
|
'boot_index': 0}),
|
||||||
BDM({'id': 4, 'instance_uuid': 'fake-instance',
|
BDM({'id': 4, 'instance_uuid': uuids.instance,
|
||||||
'device_name': '/dev/sda2',
|
'device_name': '/dev/sda2',
|
||||||
'source_type': 'snapshot',
|
'source_type': 'snapshot',
|
||||||
'destination_type': 'volume',
|
'destination_type': 'volume',
|
||||||
@ -61,7 +62,7 @@ class BlockDeviceTestCase(test.NoDBTestCase):
|
|||||||
'snapshot_id': 'fake-snapshot-id-1',
|
'snapshot_id': 'fake-snapshot-id-1',
|
||||||
'volume_id': 'fake-volume-id-2',
|
'volume_id': 'fake-volume-id-2',
|
||||||
'boot_index': -1}),
|
'boot_index': -1}),
|
||||||
BDM({'id': 5, 'instance_uuid': 'fake-instance',
|
BDM({'id': 5, 'instance_uuid': uuids.instance,
|
||||||
'no_device': True,
|
'no_device': True,
|
||||||
'device_name': '/dev/vdc'}),
|
'device_name': '/dev/vdc'}),
|
||||||
]
|
]
|
||||||
@ -252,58 +253,58 @@ class TestBlockDeviceDict(test.NoDBTestCase):
|
|||||||
BDM = block_device.BlockDeviceDict
|
BDM = block_device.BlockDeviceDict
|
||||||
|
|
||||||
self.api_mapping = [
|
self.api_mapping = [
|
||||||
{'id': 1, 'instance_uuid': 'fake-instance',
|
{'id': 1, 'instance_uuid': uuids.instance,
|
||||||
'device_name': '/dev/sdb1',
|
'device_name': '/dev/sdb1',
|
||||||
'source_type': 'blank',
|
'source_type': 'blank',
|
||||||
'destination_type': 'local',
|
'destination_type': 'local',
|
||||||
'delete_on_termination': True,
|
'delete_on_termination': True,
|
||||||
'guest_format': 'swap',
|
'guest_format': 'swap',
|
||||||
'boot_index': -1},
|
'boot_index': -1},
|
||||||
{'id': 2, 'instance_uuid': 'fake-instance',
|
{'id': 2, 'instance_uuid': uuids.instance,
|
||||||
'device_name': '/dev/sdc1',
|
'device_name': '/dev/sdc1',
|
||||||
'source_type': 'blank',
|
'source_type': 'blank',
|
||||||
'destination_type': 'local',
|
'destination_type': 'local',
|
||||||
'delete_on_termination': True,
|
'delete_on_termination': True,
|
||||||
'boot_index': -1},
|
'boot_index': -1},
|
||||||
{'id': 3, 'instance_uuid': 'fake-instance',
|
{'id': 3, 'instance_uuid': uuids.instance,
|
||||||
'device_name': '/dev/sda1',
|
'device_name': '/dev/sda1',
|
||||||
'source_type': 'volume',
|
'source_type': 'volume',
|
||||||
'destination_type': 'volume',
|
'destination_type': 'volume',
|
||||||
'uuid': 'fake-volume-id-1',
|
'uuid': 'fake-volume-id-1',
|
||||||
'boot_index': 0},
|
'boot_index': 0},
|
||||||
{'id': 4, 'instance_uuid': 'fake-instance',
|
{'id': 4, 'instance_uuid': uuids.instance,
|
||||||
'device_name': '/dev/sda2',
|
'device_name': '/dev/sda2',
|
||||||
'source_type': 'snapshot',
|
'source_type': 'snapshot',
|
||||||
'destination_type': 'volume',
|
'destination_type': 'volume',
|
||||||
'uuid': 'fake-snapshot-id-1',
|
'uuid': 'fake-snapshot-id-1',
|
||||||
'boot_index': -1},
|
'boot_index': -1},
|
||||||
{'id': 5, 'instance_uuid': 'fake-instance',
|
{'id': 5, 'instance_uuid': uuids.instance,
|
||||||
'no_device': True,
|
'no_device': True,
|
||||||
'device_name': '/dev/vdc'},
|
'device_name': '/dev/vdc'},
|
||||||
]
|
]
|
||||||
|
|
||||||
self.new_mapping = [
|
self.new_mapping = [
|
||||||
BDM({'id': 1, 'instance_uuid': 'fake-instance',
|
BDM({'id': 1, 'instance_uuid': uuids.instance,
|
||||||
'device_name': '/dev/sdb1',
|
'device_name': '/dev/sdb1',
|
||||||
'source_type': 'blank',
|
'source_type': 'blank',
|
||||||
'destination_type': 'local',
|
'destination_type': 'local',
|
||||||
'delete_on_termination': True,
|
'delete_on_termination': True,
|
||||||
'guest_format': 'swap',
|
'guest_format': 'swap',
|
||||||
'boot_index': -1}),
|
'boot_index': -1}),
|
||||||
BDM({'id': 2, 'instance_uuid': 'fake-instance',
|
BDM({'id': 2, 'instance_uuid': uuids.instance,
|
||||||
'device_name': '/dev/sdc1',
|
'device_name': '/dev/sdc1',
|
||||||
'source_type': 'blank',
|
'source_type': 'blank',
|
||||||
'destination_type': 'local',
|
'destination_type': 'local',
|
||||||
'delete_on_termination': True,
|
'delete_on_termination': True,
|
||||||
'boot_index': -1}),
|
'boot_index': -1}),
|
||||||
BDM({'id': 3, 'instance_uuid': 'fake-instance',
|
BDM({'id': 3, 'instance_uuid': uuids.instance,
|
||||||
'device_name': '/dev/sda1',
|
'device_name': '/dev/sda1',
|
||||||
'source_type': 'volume',
|
'source_type': 'volume',
|
||||||
'destination_type': 'volume',
|
'destination_type': 'volume',
|
||||||
'volume_id': 'fake-volume-id-1',
|
'volume_id': 'fake-volume-id-1',
|
||||||
'connection_info': "{'fake': 'connection_info'}",
|
'connection_info': "{'fake': 'connection_info'}",
|
||||||
'boot_index': 0}),
|
'boot_index': 0}),
|
||||||
BDM({'id': 4, 'instance_uuid': 'fake-instance',
|
BDM({'id': 4, 'instance_uuid': uuids.instance,
|
||||||
'device_name': '/dev/sda2',
|
'device_name': '/dev/sda2',
|
||||||
'source_type': 'snapshot',
|
'source_type': 'snapshot',
|
||||||
'destination_type': 'volume',
|
'destination_type': 'volume',
|
||||||
@ -311,43 +312,43 @@ class TestBlockDeviceDict(test.NoDBTestCase):
|
|||||||
'snapshot_id': 'fake-snapshot-id-1',
|
'snapshot_id': 'fake-snapshot-id-1',
|
||||||
'volume_id': 'fake-volume-id-2',
|
'volume_id': 'fake-volume-id-2',
|
||||||
'boot_index': -1}),
|
'boot_index': -1}),
|
||||||
BDM({'id': 5, 'instance_uuid': 'fake-instance',
|
BDM({'id': 5, 'instance_uuid': uuids.instance,
|
||||||
'no_device': True,
|
'no_device': True,
|
||||||
'device_name': '/dev/vdc'}),
|
'device_name': '/dev/vdc'}),
|
||||||
]
|
]
|
||||||
|
|
||||||
self.legacy_mapping = [
|
self.legacy_mapping = [
|
||||||
{'id': 1, 'instance_uuid': 'fake-instance',
|
{'id': 1, 'instance_uuid': uuids.instance,
|
||||||
'device_name': '/dev/sdb1',
|
'device_name': '/dev/sdb1',
|
||||||
'delete_on_termination': True,
|
'delete_on_termination': True,
|
||||||
'virtual_name': 'swap'},
|
'virtual_name': 'swap'},
|
||||||
{'id': 2, 'instance_uuid': 'fake-instance',
|
{'id': 2, 'instance_uuid': uuids.instance,
|
||||||
'device_name': '/dev/sdc1',
|
'device_name': '/dev/sdc1',
|
||||||
'delete_on_termination': True,
|
'delete_on_termination': True,
|
||||||
'virtual_name': 'ephemeral0'},
|
'virtual_name': 'ephemeral0'},
|
||||||
{'id': 3, 'instance_uuid': 'fake-instance',
|
{'id': 3, 'instance_uuid': uuids.instance,
|
||||||
'device_name': '/dev/sda1',
|
'device_name': '/dev/sda1',
|
||||||
'volume_id': 'fake-volume-id-1',
|
'volume_id': 'fake-volume-id-1',
|
||||||
'connection_info': "{'fake': 'connection_info'}"},
|
'connection_info': "{'fake': 'connection_info'}"},
|
||||||
{'id': 4, 'instance_uuid': 'fake-instance',
|
{'id': 4, 'instance_uuid': uuids.instance,
|
||||||
'device_name': '/dev/sda2',
|
'device_name': '/dev/sda2',
|
||||||
'connection_info': "{'fake': 'connection_info'}",
|
'connection_info': "{'fake': 'connection_info'}",
|
||||||
'snapshot_id': 'fake-snapshot-id-1',
|
'snapshot_id': 'fake-snapshot-id-1',
|
||||||
'volume_id': 'fake-volume-id-2'},
|
'volume_id': 'fake-volume-id-2'},
|
||||||
{'id': 5, 'instance_uuid': 'fake-instance',
|
{'id': 5, 'instance_uuid': uuids.instance,
|
||||||
'no_device': True,
|
'no_device': True,
|
||||||
'device_name': '/dev/vdc'},
|
'device_name': '/dev/vdc'},
|
||||||
]
|
]
|
||||||
|
|
||||||
self.new_mapping_source_image = [
|
self.new_mapping_source_image = [
|
||||||
BDM({'id': 6, 'instance_uuid': 'fake-instance',
|
BDM({'id': 6, 'instance_uuid': uuids.instance,
|
||||||
'device_name': '/dev/sda3',
|
'device_name': '/dev/sda3',
|
||||||
'source_type': 'image',
|
'source_type': 'image',
|
||||||
'destination_type': 'volume',
|
'destination_type': 'volume',
|
||||||
'connection_info': "{'fake': 'connection_info'}",
|
'connection_info': "{'fake': 'connection_info'}",
|
||||||
'volume_id': 'fake-volume-id-3',
|
'volume_id': 'fake-volume-id-3',
|
||||||
'boot_index': -1}),
|
'boot_index': -1}),
|
||||||
BDM({'id': 7, 'instance_uuid': 'fake-instance',
|
BDM({'id': 7, 'instance_uuid': uuids.instance,
|
||||||
'device_name': '/dev/sda4',
|
'device_name': '/dev/sda4',
|
||||||
'source_type': 'image',
|
'source_type': 'image',
|
||||||
'destination_type': 'local',
|
'destination_type': 'local',
|
||||||
@ -357,7 +358,7 @@ class TestBlockDeviceDict(test.NoDBTestCase):
|
|||||||
]
|
]
|
||||||
|
|
||||||
self.legacy_mapping_source_image = [
|
self.legacy_mapping_source_image = [
|
||||||
{'id': 6, 'instance_uuid': 'fake-instance',
|
{'id': 6, 'instance_uuid': uuids.instance,
|
||||||
'device_name': '/dev/sda3',
|
'device_name': '/dev/sda3',
|
||||||
'connection_info': "{'fake': 'connection_info'}",
|
'connection_info': "{'fake': 'connection_info'}",
|
||||||
'volume_id': 'fake-volume-id-3'},
|
'volume_id': 'fake-volume-id-3'},
|
||||||
@ -411,7 +412,7 @@ class TestBlockDeviceDict(test.NoDBTestCase):
|
|||||||
self.assertEqual('bar', dev_dict['field2'])
|
self.assertEqual('bar', dev_dict['field2'])
|
||||||
|
|
||||||
def test_init_prepend_dev_to_device_name(self):
|
def test_init_prepend_dev_to_device_name(self):
|
||||||
bdm = {'id': 3, 'instance_uuid': 'fake-instance',
|
bdm = {'id': 3, 'instance_uuid': uuids.instance,
|
||||||
'device_name': 'vda',
|
'device_name': 'vda',
|
||||||
'source_type': 'volume',
|
'source_type': 'volume',
|
||||||
'destination_type': 'volume',
|
'destination_type': 'volume',
|
||||||
@ -431,7 +432,7 @@ class TestBlockDeviceDict(test.NoDBTestCase):
|
|||||||
def test_init_boolify_delete_on_termination(self):
|
def test_init_boolify_delete_on_termination(self):
|
||||||
# Make sure that when delete_on_termination is not passed it's
|
# Make sure that when delete_on_termination is not passed it's
|
||||||
# still set to False and not None
|
# still set to False and not None
|
||||||
bdm = {'id': 3, 'instance_uuid': 'fake-instance',
|
bdm = {'id': 3, 'instance_uuid': uuids.instance,
|
||||||
'device_name': 'vda',
|
'device_name': 'vda',
|
||||||
'source_type': 'volume',
|
'source_type': 'volume',
|
||||||
'destination_type': 'volume',
|
'destination_type': 'volume',
|
||||||
|
@ -49,6 +49,7 @@ from nova import test
|
|||||||
from nova.tests.unit.api.openstack import fakes
|
from nova.tests.unit.api.openstack import fakes
|
||||||
from nova.tests.unit import fake_block_device
|
from nova.tests.unit import fake_block_device
|
||||||
from nova.tests.unit import fake_network
|
from nova.tests.unit import fake_network
|
||||||
|
from nova.tests import uuidsentinel as uuids
|
||||||
from nova.virt import netutils
|
from nova.virt import netutils
|
||||||
|
|
||||||
CONF = cfg.CONF
|
CONF = cfg.CONF
|
||||||
@ -71,7 +72,7 @@ def fake_inst_obj(context):
|
|||||||
launch_index=1,
|
launch_index=1,
|
||||||
reservation_id='r-xxxxxxxx',
|
reservation_id='r-xxxxxxxx',
|
||||||
user_data=ENCODE_USER_DATA_STRING,
|
user_data=ENCODE_USER_DATA_STRING,
|
||||||
image_ref=7,
|
image_ref=uuids.image_ref,
|
||||||
kernel_id=None,
|
kernel_id=None,
|
||||||
ramdisk_id=None,
|
ramdisk_id=None,
|
||||||
vcpus=1,
|
vcpus=1,
|
||||||
@ -275,7 +276,7 @@ class MetadataTestCase(test.TestCase):
|
|||||||
|
|
||||||
def test_image_type_ramdisk(self):
|
def test_image_type_ramdisk(self):
|
||||||
inst = self.instance.obj_clone()
|
inst = self.instance.obj_clone()
|
||||||
inst['ramdisk_id'] = 'ari-853667c0'
|
inst['ramdisk_id'] = uuids.ramdisk_id
|
||||||
md = fake_InstanceMetadata(self.stubs, inst)
|
md = fake_InstanceMetadata(self.stubs, inst)
|
||||||
data = md.lookup("/latest/meta-data/ramdisk-id")
|
data = md.lookup("/latest/meta-data/ramdisk-id")
|
||||||
|
|
||||||
@ -284,7 +285,7 @@ class MetadataTestCase(test.TestCase):
|
|||||||
|
|
||||||
def test_image_type_kernel(self):
|
def test_image_type_kernel(self):
|
||||||
inst = self.instance.obj_clone()
|
inst = self.instance.obj_clone()
|
||||||
inst['kernel_id'] = 'aki-c2e26ff2'
|
inst['kernel_id'] = uuids.kernel_id
|
||||||
md = fake_InstanceMetadata(self.stubs, inst)
|
md = fake_InstanceMetadata(self.stubs, inst)
|
||||||
data = md.lookup("/2009-04-04/meta-data/kernel-id")
|
data = md.lookup("/2009-04-04/meta-data/kernel-id")
|
||||||
|
|
||||||
|
@ -32,6 +32,7 @@ from nova.objects import base as obj_base
|
|||||||
from nova import test
|
from nova import test
|
||||||
from nova.tests.unit import fake_network
|
from nova.tests.unit import fake_network
|
||||||
from nova.tests.unit import fake_notifier
|
from nova.tests.unit import fake_notifier
|
||||||
|
from nova.tests import uuidsentinel as uuids
|
||||||
|
|
||||||
|
|
||||||
class NotificationsTestCase(test.TestCase):
|
class NotificationsTestCase(test.TestCase):
|
||||||
@ -70,7 +71,7 @@ class NotificationsTestCase(test.TestCase):
|
|||||||
|
|
||||||
def _wrapped_create(self, params=None):
|
def _wrapped_create(self, params=None):
|
||||||
instance_type = flavors.get_flavor_by_name('m1.tiny')
|
instance_type = flavors.get_flavor_by_name('m1.tiny')
|
||||||
inst = objects.Instance(image_ref=1,
|
inst = objects.Instance(image_ref=uuids.image_ref,
|
||||||
user_id=self.user_id,
|
user_id=self.user_id,
|
||||||
project_id=self.project_id,
|
project_id=self.project_id,
|
||||||
instance_type_id=instance_type['id'],
|
instance_type_id=instance_type['id'],
|
||||||
|
Loading…
Reference in New Issue
Block a user