summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2015-04-09 05:57:40 +0000
committerGerrit Code Review <review@openstack.org>2015-04-09 05:57:40 +0000
commit69ea06a613a5b44bab747379ac757681a1579bff (patch)
tree326abfed6d9e4eb24de03207d49b627a71908d91
parentc8458e9f8d3aa91133dda34e55611cf299fb82b8 (diff)
parent69ec3b6f0ceba5db714e35f6d72d40f14ef51ad3 (diff)
downloadnova-69ea06a613a5b44bab747379ac757681a1579bff.tar.gz
Merge "Manage compute node that exposes no pci devices"
-rw-r--r--nova/scheduler/host_manager.py7
-rw-r--r--nova/tests/unit/scheduler/filters/test_pci_passthrough_filters.py10
-rw-r--r--nova/tests/unit/scheduler/test_host_manager.py4
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')