def lookup(self, name): """ Populate info using runtime information from /sys/class/net files for active interfaces and for inactive bond and vlan interfaces from cfg files :param name: :return: """ try: # encode name to ensure comparison are in same type. if encode_value(name) in ethtool.get_devices(): info = netinfo.get_interface_info(name) elif cfgInterfacesHelper.is_cfgfileexist(name): type = cfgInterfacesHelper.get_type(name).lower() if type not in IFACE_BOND + [IFACE_VLAN]: raise ValueError device = cfgInterfacesHelper.get_device(name) info = { 'device': device, 'type': cfgInterfacesHelper.get_type(name), 'status': "down", 'ipaddr': "", 'netmask': "", 'macaddr': "", 'module': netinfo.get_interface_kernel_module(name) } if info.get('type') is not 'nic': info['nic_type'] = 'N/A' else: info['nic_type'] = netinfo.get_nic_type(device) else: raise ValueError('unknown interface: %s' % name) info['rdma_enabled'] = netinfo.is_rdma_enabled(name) return info except ValueError: raise NotFoundError("GINNET0014E", {'name': name})
def lookup(self, name): """ Populate info using runtime information from /sys/class/net files for active interfaces and for inactive bond and vlan interfaces from cfg files :param name: :return: """ try: # encode name to ensure comparison are in same type. if encode_value(name) in ethtool.get_devices(): info = netinfo.get_interface_info(name) elif cfgInterfacesHelper.is_cfgfileexist(name): type = cfgInterfacesHelper.get_type(name).lower() if type not in IFACE_BOND + [IFACE_VLAN]: raise ValueError device = cfgInterfacesHelper.get_device(name) info = {'device': device, 'type': cfgInterfacesHelper.get_type(name), 'status': "down", 'ipaddr': "", 'netmask': "", 'macaddr': "", 'module': netinfo.get_interface_kernel_module(name)} if info.get('type') is not 'nic': info['nic_type'] = 'N/A' else: info['nic_type'] = netinfo.get_nic_type(device) else: raise ValueError('unknown interface: %s' % name) info['rdma_enabled'] = netinfo.is_rdma_enabled(name) return info except ValueError: raise NotFoundError("GINNET0014E", {'name': name})
def test_netinfo_get_interface_info(self, mock_macaddr, mock_netmask, mock_ipaddr, mock_getdevs, mock_get_module): mock_get_module.return_value = 'dummy_net_module' mock_getdevs.return_value = ['dev1', 'dummy_iface', 'dev2'] mock_ipaddr.return_value = '99.99.99.99' mock_netmask.return_value = '255.255.255.0' mock_macaddr.return_value = 'aa:bb:cc:dd:ee:ff' iface_info = netinfo.get_interface_info('dummy_iface') mock_macaddr.assert_called_once_with('dummy_iface') mock_netmask.assert_called_once_with('dummy_iface') mock_ipaddr.assert_called_once_with('dummy_iface') mock_getdevs.assert_called_once_with() mock_get_module.assert_called_once_with('dummy_iface') self.assertEqual(iface_info.get('device'), 'dummy_iface') self.assertEqual(iface_info.get('type'), 'unknown') self.assertEqual(iface_info.get('status'), 'down') self.assertEqual(iface_info.get('ipaddr'), '99.99.99.99') self.assertEqual(iface_info.get('netmask'), '255.255.255.0') self.assertEqual(iface_info.get('macaddr'), 'aa:bb:cc:dd:ee:ff') self.assertEqual(iface_info.get('module'), 'dummy_net_module')
def lookup(self, name): try: return netinfo.get_interface_info(name) except ValueError: raise NotFoundError("KCHIFACE0001E", {'name': name})