コード例 #1
0
 def test_white_list_parsing(self, mock_whitelist_parse):
     white_list = '{"product_id":"0001", "vendor_id":"8086"}'
     CONF.set_override('passthrough_whitelist', white_list, 'pci')
     pci_stats = stats.PciDeviceStats()
     pci_stats.add_device(self.fake_dev_2)
     pci_stats.remove_device(self.fake_dev_2)
     self.assertEqual(1, mock_whitelist_parse.call_count)
コード例 #2
0
 def setUp(self):
     super(PciDeviceStatsTestCase, self).setUp()
     self.pci_stats = stats.PciDeviceStats()
     # The following two calls need to be made before adding the devices.
     patcher = fakes.fake_pci_whitelist()
     self.addCleanup(patcher.stop)
     self._create_fake_devs()
コード例 #3
0
 def test_pci_stats_equivalent(self):
     pci_stats2 = stats.PciDeviceStats()
     for dev in [
             self.fake_dev_1, self.fake_dev_2, self.fake_dev_3,
             self.fake_dev_4
     ]:
         pci_stats2.add_device(dev)
     self.assertEqual(self.pci_stats, pci_stats2)
コード例 #4
0
 def setUp(self):
     super(PciDeviceVFPFStatsTestCase, self).setUp()
     white_list = [
         '{"vendor_id":"8086","product_id":"1528"}',
         '{"vendor_id":"8086","product_id":"1515"}'
     ]
     self.config(passthrough_whitelist=white_list, group='pci')
     self.pci_stats = stats.PciDeviceStats()
コード例 #5
0
    def test_object_create(self):
        m = self.pci_stats.to_device_pools_obj()
        new_stats = stats.PciDeviceStats(m)

        self.assertEqual(len(new_stats.pools), 3)
        self.assertEqual(set([d['count'] for d in new_stats]), set([1, 2]))
        self.assertEqual(set([d['vendor_id'] for d in new_stats]),
                         set(['v1', 'v2', 'v3']))
コード例 #6
0
 def setUp(self):
     super(PciDeviceStatsWithTagsTestCase, self).setUp()
     white_list = [
         '{"vendor_id":"1137","product_id":"0071",'
         '"address":"*:0a:00.*","physical_network":"physnet1"}',
         '{"vendor_id":"1137","product_id":"0072"}'
     ]
     self.config(passthrough_whitelist=white_list, group='pci')
     dev_filter = whitelist.Whitelist(white_list)
     self.pci_stats = stats.PciDeviceStats(dev_filter=dev_filter)
コード例 #7
0
 def test_pci_passthrough_no_pci_stats(self):
     request = objects.ContainerPCIRequest(
         count=1, spec=[{'vendor_id': '8086'}])
     requests = objects.ContainerPCIRequests(requests=[request])
     container = objects.Container(self.context)
     host = HostState('testhost')
     host.pci_stats = stats.PciDeviceStats()
     extra_spec = {'pci_requests': requests}
     self.assertFalse(self.filt_cls.host_passes(host, container,
                                                extra_spec))
コード例 #8
0
 def _update_from_compute_node(self, compute_node):
     """Update information about a host from a Compute object"""
     self.mem_total = compute_node.mem_total
     self.mem_free = compute_node.mem_free
     self.mem_used = compute_node.mem_used
     self.cpus = compute_node.cpus
     self.cpu_used = compute_node.cpu_used
     self.numa_topology = compute_node.numa_topology
     self.labels = compute_node.labels
     self.pci_stats = pci_stats.PciDeviceStats(
         stats=compute_node.pci_device_pools)
コード例 #9
0
ファイル: host_state.py プロジェクト: shaisxx/zun
 def _update_from_compute_node(self, compute_node):
     """Update information about a host from a Compute object"""
     self.mem_available = compute_node.mem_available
     self.mem_total = compute_node.mem_total
     self.mem_free = compute_node.mem_free
     self.mem_used = compute_node.mem_used
     self.cpus = compute_node.cpus
     self.cpu_used = compute_node.cpu_used
     self.disk_total = compute_node.disk_total
     self.disk_used = compute_node.disk_used
     self.numa_topology = compute_node.numa_topology
     self.labels = compute_node.labels
     self.pci_stats = pci_stats.PciDeviceStats(
         stats=compute_node.pci_device_pools)
     self.disk_quota_supported = compute_node.disk_quota_supported
     self.runtimes = compute_node.runtimes
     self.enable_cpu_pinning = compute_node.enable_cpu_pinning
コード例 #10
0
ファイル: manager.py プロジェクト: zukobronja/zun
    def __init__(self, context, node_id=None):
        """Create a pci device tracker.

        If a node_id is passed in, it will fetch pci devices information
        from database, otherwise, it will create an empty devices list
        and the resource tracker will update the node_id information later.
        """

        super(PciDevTracker, self).__init__()
        self.stale = {}
        self.node_id = node_id
        self.dev_filter = whitelist.Whitelist(CONF.pci.passthrough_whitelist)
        self.stats = stats.PciDeviceStats(dev_filter=self.dev_filter)
        self._context = context
        if node_id:
            self.pci_devs = objects.PciDevice.list_by_compute_node(
                context, node_id)
        else:
            self.pci_devs = []
        self._build_device_tree(self.pci_devs)
        self._initial_instance_usage()