diff options
author | Jenkins <jenkins@review.openstack.org> | 2015-04-09 05:57:40 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2015-04-09 05:57:40 +0000 |
commit | 69ea06a613a5b44bab747379ac757681a1579bff (patch) | |
tree | 326abfed6d9e4eb24de03207d49b627a71908d91 | |
parent | c8458e9f8d3aa91133dda34e55611cf299fb82b8 (diff) | |
parent | 69ec3b6f0ceba5db714e35f6d72d40f14ef51ad3 (diff) | |
download | nova-69ea06a613a5b44bab747379ac757681a1579bff.tar.gz |
Merge "Manage compute node that exposes no pci devices"
-rw-r--r-- | nova/scheduler/host_manager.py | 7 | ||||
-rw-r--r-- | nova/tests/unit/scheduler/filters/test_pci_passthrough_filters.py | 10 | ||||
-rw-r--r-- | nova/tests/unit/scheduler/test_host_manager.py | 4 |
3 files changed, 14 insertions, 7 deletions
diff --git a/nova/scheduler/host_manager.py b/nova/scheduler/host_manager.py index cd4e2f4923..ab945b6ba2 100644 --- a/nova/scheduler/host_manager.py +++ b/nova/scheduler/host_manager.py @@ -213,11 +213,8 @@ class HostState(object): self.updated = compute.updated_at self.numa_topology = compute.numa_topology self.instance_numa_topology = None - if compute.pci_device_pools is not None: - self.pci_stats = pci_stats.PciDeviceStats( - compute.pci_device_pools) - else: - self.pci_stats = None + self.pci_stats = pci_stats.PciDeviceStats( + compute.pci_device_pools) # All virt drivers report host_ip self.host_ip = compute.host_ip diff --git a/nova/tests/unit/scheduler/filters/test_pci_passthrough_filters.py b/nova/tests/unit/scheduler/filters/test_pci_passthrough_filters.py index 57dd5ebc02..eb9ab590d2 100644 --- a/nova/tests/unit/scheduler/filters/test_pci_passthrough_filters.py +++ b/nova/tests/unit/scheduler/filters/test_pci_passthrough_filters.py @@ -13,6 +13,7 @@ import mock from nova import objects +from nova.pci import stats from nova.scheduler.filters import pci_passthrough_filter from nova import test from nova.tests.unit.scheduler import fakes @@ -65,3 +66,12 @@ class TestPCIPassthroughFilter(test.NoDBTestCase): attribute_dict={}) self.assertRaises(AttributeError, self.filt_cls.host_passes, host, filter_properties) + + def test_pci_passthrough_no_pci_stats(self): + request = objects.InstancePCIRequest(count=1, + spec=[{'vendor_id': '8086'}]) + requests = objects.InstancePCIRequests(requests=[request]) + filter_properties = {'pci_requests': requests} + host = fakes.FakeHostState('host1', 'node1', + attribute_dict={'pci_stats': stats.PciDeviceStats()}) + self.assertFalse(self.filt_cls.host_passes(host, filter_properties)) diff --git a/nova/tests/unit/scheduler/test_host_manager.py b/nova/tests/unit/scheduler/test_host_manager.py index 0dfdb05094..7115582f9d 100644 --- a/nova/tests/unit/scheduler/test_host_manager.py +++ b/nova/tests/unit/scheduler/test_host_manager.py @@ -824,7 +824,7 @@ class HostStateTestCase(test.NoDBTestCase): host = host_manager.HostState("fakehost", "fakenode") host.update_from_compute_node(compute) - self.assertIsNone(host.pci_stats) + self.assertEqual([], host.pci_stats.pools) self.assertEqual(hyper_ver_int, host.hypervisor_version) def test_stat_consumption_from_compute_node_rescue_unshelving(self): @@ -860,7 +860,7 @@ class HostStateTestCase(test.NoDBTestCase): self.assertEqual(42, host.num_io_ops) self.assertEqual(10, len(host.stats)) - self.assertIsNone(host.pci_stats) + self.assertEqual([], host.pci_stats.pools) self.assertEqual(hyper_ver_int, host.hypervisor_version) @mock.patch('nova.virt.hardware.get_host_numa_usage_from_instance') |