def test_physical_function(self, mock_readlink, *args): mock_readlink.return_value = '../../../0000:00:00.1' with mock.patch.object( builtins, 'open', mock.mock_open(read_data='4')): address, physical_function = utils.get_function_by_ifname('eth0') self.assertEqual(address, '0000:00:00.1') self.assertTrue(physical_function)
def test_virtual_function(self, mock_readlink, *args): mock_readlink.return_value = '../../../0000.00.00.1' with mock.patch.object( builtins, 'open', side_effect=IOError()): address, physical_function = utils.get_function_by_ifname('eth0') self.assertEqual(address, '0000.00.00.1') self.assertFalse(physical_function)
def _init_dev_details(self): details = jsonutils.loads(self.dev_spec) self.vendor_id = details.pop("vendor_id", ANY) self.product_id = details.pop("product_id", ANY) self.address = details.pop("address", None) self.dev_name = details.pop("devname", None) self.vendor_id = self.vendor_id.strip() get_pci_dev_info(self, 'vendor_id', MAX_VENDOR_ID, '%04x') get_pci_dev_info(self, 'product_id', MAX_PRODUCT_ID, '%04x') pf = False if self.address and self.dev_name: raise exception.PciDeviceInvalidDeviceName() if not self.address: if self.dev_name: self.address, pf = utils.get_function_by_ifname( self.dev_name) if not self.address: raise exception.PciDeviceNotFoundById(id=self.dev_name) else: self.address = "*:*:*.*" self.address = PciAddress(self.address, pf) self.tags = details
def test_virtual_function(self, mock_readlink, *args): mock_readlink.return_value = '../../../0000.00.00.1' with mock.patch.object( builtins, 'open', side_effect=IOError()): address, physical_function = utils.get_function_by_ifname('eth0') self.assertEqual(address, '0000.00.00.1') self.assertFalse(physical_function)
def test_physical_function(self, mock_readlink, *args): mock_readlink.return_value = '../../../0000:00:00.1' with mock.patch.object(builtins, 'open', mock.mock_open(read_data='4')): address, physical_function = utils.get_function_by_ifname('eth0') self.assertEqual(address, '0000:00:00.1') self.assertTrue(physical_function)
def test_physical_function(self, mock_readlink, *args): ifname = 'eth0' totalvf_path = "/sys/class/net/%s/device/%s" % (ifname, utils._SRIOV_TOTALVFS) mock_readlink.return_value = '../../../0000:00:00.1' with self.patch_open(totalvf_path, '4') as mock_open: address, physical_function = utils.get_function_by_ifname('eth0') self.assertEqual(address, '0000:00:00.1') self.assertTrue(physical_function) mock_open.assert_called_once_with(totalvf_path)
def test_physical_function(self, mock_readlink, *args): ifname = 'eth0' totalvf_path = "/sys/class/net/%s/device/%s" % (ifname, utils._SRIOV_TOTALVFS) mock_readlink.return_value = '../../../0000:00:00.1' with mock.patch.object( builtins, 'open', mock.mock_open(read_data='4')) as mock_open: address, physical_function = utils.get_function_by_ifname('eth0') self.assertEqual(address, '0000:00:00.1') self.assertTrue(physical_function) mock_open.assert_called_once_with(totalvf_path)
def match(self, dev_dict): if self.dev_name: address_str, pf = utils.get_function_by_ifname(self.dev_name) if not address_str: return False address_obj = PciAddress(address_str, pf) elif self.address: address_obj = self.address return all([ self.vendor_id in (ANY, dev_dict['vendor_id']), self.product_id in (ANY, dev_dict['product_id']), address_obj.match(dev_dict['address'], dev_dict.get('parent_addr')) ])
def _address_obj(self) -> ty.Optional[WhitelistPciAddress]: address_obj = None if self.dev_name: address_str, pf = utils.get_function_by_ifname(self.dev_name) if not address_str: return None # Note(moshele): In this case we always passing a string # of the PF pci address address_obj = WhitelistPciAddress(address_str, pf) else: # use self.address address_obj = self.address return address_obj
def match(self, dev_dict): if self.dev_name: address_str, pf = utils.get_function_by_ifname( self.dev_name) if not address_str: return False address_obj = PciAddress(address_str, pf) elif self.address: address_obj = self.address return all([ self.vendor_id in (ANY, dev_dict['vendor_id']), self.product_id in (ANY, dev_dict['product_id']), address_obj.match(dev_dict['address'], dev_dict.get('parent_addr'))])
def match(self, dev_dict): if self.dev_name: address_str, pf = utils.get_function_by_ifname(self.dev_name) if not address_str: return False # Note(moshele): In this case we always passing a string # of the PF pci address address_obj = WhitelistPciAddress(address_str, pf) elif self.address: address_obj = self.address return all([ self.vendor_id in (ANY, dev_dict['vendor_id']), self.product_id in (ANY, dev_dict['product_id']), address_obj.match(dev_dict['address'], dev_dict.get('parent_addr')) ])
def match(self, dev_dict): if self.dev_name: address_str, pf = utils.get_function_by_ifname( self.dev_name) if not address_str: return False # Note(moshele): In this case we always passing a string # of the PF pci address address_obj = WhitelistPciAddress(address_str, pf) elif self.address: address_obj = self.address return all([ self.vendor_id in (ANY, dev_dict['vendor_id']), self.product_id in (ANY, dev_dict['product_id']), address_obj.match(dev_dict['address'], dev_dict.get('parent_addr'))])
def _init_dev_details(self): self.vendor_id = self.tags.pop("vendor_id", ANY) self.product_id = self.tags.pop("product_id", ANY) self.address = self.tags.pop("address", None) self.dev_name = self.tags.pop("devname", None) self.vendor_id = self.vendor_id.strip() get_pci_dev_info(self, 'vendor_id', MAX_VENDOR_ID, '%04x') get_pci_dev_info(self, 'product_id', MAX_PRODUCT_ID, '%04x') pf = False if self.address and self.dev_name: raise exception.PciDeviceInvalidDeviceName() if not self.address: if self.dev_name: self.address, pf = utils.get_function_by_ifname(self.dev_name) if not self.address: raise exception.PciDeviceNotFoundById(id=self.dev_name) else: self.address = "*:*:*.*" self.address = PciAddress(self.address, pf)
def test_physical_function(self, mock_readlink, *args): mock_readlink.return_value = "../../../0000:00:00.1" with mock.patch.object(builtins, "open", mock.mock_open(read_data="4")): address, physical_function = utils.get_function_by_ifname("eth0") self.assertEqual(address, "0000:00:00.1") self.assertTrue(physical_function)
def test_exception(self, *args): address, physical_function = utils.get_function_by_ifname('lo') self.assertIsNone(address) self.assertFalse(physical_function)
def test_exception(self, mock_listdir): mock_listdir.side_effect = OSError('No such file or directory') address, physical_function = utils.get_function_by_ifname('lo') self.assertIsNone(address) self.assertFalse(physical_function)
def test_physical_function(self, mock_listdir, mock_readlink): mock_listdir.return_value = ['foo', 'virtfn1', 'bar'] mock_readlink.return_value = '../../../0000:00:00.1' address, physical_function = utils.get_function_by_ifname('eth0') self.assertEqual(address, '0000:00:00.1') self.assertTrue(physical_function)
def test_exception(self, *args): address, physical_function = utils.get_function_by_ifname('lo') self.assertIsNone(address) self.assertFalse(physical_function)