Drop dependency on netifaces
The netifaces library was abandoned and archived. Replace it by psutil which is already part of the requirements. Closes-Bug: #2071596 Change-Id: Ibca206ec2af1374199d0c0cfad897dded1298733
This commit is contained in:
parent
fe98640fa3
commit
42ea1dbd1a
@ -20,10 +20,10 @@ import socket
|
||||
import struct
|
||||
import sys
|
||||
|
||||
import netifaces
|
||||
from oslo_config import cfg
|
||||
from oslo_log import log as logging
|
||||
from oslo_utils import netutils
|
||||
import psutil
|
||||
|
||||
from ironic_python_agent import utils
|
||||
|
||||
@ -214,31 +214,29 @@ def _get_lldp_info(interfaces):
|
||||
return lldp_info
|
||||
|
||||
|
||||
def get_default_ip_addr(type, interface_id):
|
||||
"""Retrieve default IPv4 or IPv6 address."""
|
||||
def get_default_ip_addr(family, interface_id):
|
||||
"""Retrieve default IPv4, IPv6 or mac address."""
|
||||
try:
|
||||
addrs = netifaces.ifaddresses(interface_id)
|
||||
return addrs[type][0]['addr']
|
||||
except (ValueError, IndexError, KeyError):
|
||||
addrs = psutil.net_if_addrs()[interface_id]
|
||||
for addr in addrs:
|
||||
if addr.family == family:
|
||||
return addr.address
|
||||
except KeyError:
|
||||
# No default IP address found
|
||||
return None
|
||||
pass
|
||||
return None
|
||||
|
||||
|
||||
def get_ipv4_addr(interface_id):
|
||||
return get_default_ip_addr(netifaces.AF_INET, interface_id)
|
||||
return get_default_ip_addr(socket.AF_INET, interface_id)
|
||||
|
||||
|
||||
def get_ipv6_addr(interface_id):
|
||||
return get_default_ip_addr(netifaces.AF_INET6, interface_id)
|
||||
return get_default_ip_addr(socket.AF_INET6, interface_id)
|
||||
|
||||
|
||||
def get_mac_addr(interface_id):
|
||||
try:
|
||||
addrs = netifaces.ifaddresses(interface_id)
|
||||
return addrs[netifaces.AF_LINK][0]['addr']
|
||||
except (ValueError, IndexError, KeyError):
|
||||
# No mac address found
|
||||
return None
|
||||
return get_default_ip_addr(socket.AF_PACKET, interface_id)
|
||||
|
||||
|
||||
# Other options...
|
||||
|
@ -13,18 +13,19 @@
|
||||
# limitations under the License.
|
||||
|
||||
import binascii
|
||||
from collections import namedtuple
|
||||
import glob
|
||||
import json
|
||||
import logging
|
||||
import os
|
||||
import re
|
||||
import shutil
|
||||
import socket
|
||||
import stat
|
||||
import time
|
||||
from unittest import mock
|
||||
|
||||
from ironic_lib import utils as il_utils
|
||||
import netifaces
|
||||
from oslo_concurrency import processutils
|
||||
from oslo_config import cfg
|
||||
from oslo_utils import units
|
||||
@ -6123,30 +6124,32 @@ class TestCollectSystemLogs(base.IronicAgentTest):
|
||||
self.assertGreaterEqual(len(io_dict), len(expected))
|
||||
|
||||
|
||||
FakeAddr = namedtuple('FakeAddr', ('family', 'address'))
|
||||
|
||||
|
||||
@mock.patch.object(hardware.GenericHardwareManager, '_get_system_lshw_dict',
|
||||
autospec=True, return_value={'id': 'host'})
|
||||
@mock.patch.object(hardware, 'get_managers', autospec=True,
|
||||
return_value=[hardware.GenericHardwareManager()])
|
||||
@mock.patch('netifaces.ifaddresses', autospec=True)
|
||||
@mock.patch('psutil.net_if_addrs', autospec=True)
|
||||
@mock.patch('os.listdir', autospec=True)
|
||||
@mock.patch('os.path.exists', autospec=True)
|
||||
@mock.patch('builtins.open', autospec=True)
|
||||
@mock.patch.object(il_utils, 'execute', autospec=True)
|
||||
@mock.patch.object(netutils, 'get_mac_addr', autospec=True)
|
||||
@mock.patch.object(netutils, 'interface_has_carrier', autospec=True)
|
||||
class TestListNetworkInterfaces(base.IronicAgentTest):
|
||||
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
self.hardware = hardware.GenericHardwareManager()
|
||||
|
||||
def test_list_network_interfaces(self,
|
||||
mock_has_carrier,
|
||||
mock_get_mac,
|
||||
mocked_execute,
|
||||
mocked_open,
|
||||
mocked_exists,
|
||||
mocked_listdir,
|
||||
mocked_ifaddresses,
|
||||
mocked_net_if_addrs,
|
||||
mockedget_managers,
|
||||
mocked_lshw):
|
||||
mocked_lshw.return_value = json.loads(hws.LSHW_JSON_OUTPUT_V2[0])
|
||||
@ -6156,16 +6159,24 @@ class TestListNetworkInterfaces(base.IronicAgentTest):
|
||||
mocked_open.return_value.__exit__ = mock.Mock()
|
||||
read_mock = mocked_open.return_value.read
|
||||
read_mock.side_effect = ['1']
|
||||
mocked_ifaddresses.return_value = {
|
||||
netifaces.AF_INET: [{'addr': '192.168.1.2'}],
|
||||
netifaces.AF_INET6: [{'addr': 'fd00::101'}]
|
||||
mocked_net_if_addrs.return_value = {
|
||||
'lo': [
|
||||
FakeAddr(socket.AF_INET, '127.0.0.1'),
|
||||
FakeAddr(socket.AF_INET6, '::1'),
|
||||
FakeAddr(socket.AF_PACKET, '00:00:00:00:00:00')
|
||||
],
|
||||
'eth0': [
|
||||
FakeAddr(socket.AF_INET, '192.168.1.2'),
|
||||
FakeAddr(socket.AF_INET6, 'fd00::101'),
|
||||
FakeAddr(socket.AF_PACKET, '00:0c:29:8c:11:b1')
|
||||
],
|
||||
'foobar': [
|
||||
FakeAddr(socket.AF_INET, '192.168.2.2'),
|
||||
FakeAddr(socket.AF_INET6, 'fd00:1000::101')
|
||||
]
|
||||
}
|
||||
mocked_execute.return_value = ('em0\n', '')
|
||||
mock_has_carrier.return_value = True
|
||||
mock_get_mac.side_effect = [
|
||||
'00:0c:29:8c:11:b1',
|
||||
None,
|
||||
]
|
||||
interfaces = self.hardware.list_network_interfaces()
|
||||
self.assertEqual(1, len(interfaces))
|
||||
self.assertEqual('eth0', interfaces[0].name)
|
||||
@ -6179,12 +6190,11 @@ class TestListNetworkInterfaces(base.IronicAgentTest):
|
||||
|
||||
def test_list_network_interfaces_with_biosdevname(self,
|
||||
mock_has_carrier,
|
||||
mock_get_mac,
|
||||
mocked_execute,
|
||||
mocked_open,
|
||||
mocked_exists,
|
||||
mocked_listdir,
|
||||
mocked_ifaddresses,
|
||||
mocked_net_if_addrs,
|
||||
mockedget_managers,
|
||||
mocked_lshw):
|
||||
mocked_listdir.return_value = ['lo', 'eth0']
|
||||
@ -6193,12 +6203,19 @@ class TestListNetworkInterfaces(base.IronicAgentTest):
|
||||
mocked_open.return_value.__exit__ = mock.Mock()
|
||||
read_mock = mocked_open.return_value.read
|
||||
read_mock.side_effect = ['1']
|
||||
mocked_ifaddresses.return_value = {
|
||||
netifaces.AF_INET: [{'addr': '192.168.1.2'}],
|
||||
netifaces.AF_INET6: [{'addr': 'fd00::101'}]
|
||||
mocked_net_if_addrs.return_value = {
|
||||
'lo': [
|
||||
FakeAddr(socket.AF_INET, '127.0.0.1'),
|
||||
FakeAddr(socket.AF_INET6, '::1'),
|
||||
FakeAddr(socket.AF_PACKET, '00:00:00:00:00:00')
|
||||
],
|
||||
'eth0': [
|
||||
FakeAddr(socket.AF_INET, '192.168.1.2'),
|
||||
FakeAddr(socket.AF_INET6, 'fd00::101'),
|
||||
FakeAddr(socket.AF_PACKET, '00:0c:29:8c:11:b1')
|
||||
]
|
||||
}
|
||||
mocked_execute.return_value = ('em0\n', '')
|
||||
mock_get_mac.return_value = '00:0c:29:8c:11:b1'
|
||||
mock_has_carrier.return_value = True
|
||||
interfaces = self.hardware.list_network_interfaces()
|
||||
self.assertEqual(1, len(interfaces))
|
||||
@ -6215,12 +6232,11 @@ class TestListNetworkInterfaces(base.IronicAgentTest):
|
||||
def test_list_network_interfaces_with_lldp(self,
|
||||
mocked_lldp_info,
|
||||
mock_has_carrier,
|
||||
mock_get_mac,
|
||||
mocked_execute,
|
||||
mocked_open,
|
||||
mocked_exists,
|
||||
mocked_listdir,
|
||||
mocked_ifaddresses,
|
||||
mocked_net_if_addrs,
|
||||
mockedget_managers,
|
||||
mocked_lshw):
|
||||
CONF.set_override('collect_lldp', True)
|
||||
@ -6230,9 +6246,17 @@ class TestListNetworkInterfaces(base.IronicAgentTest):
|
||||
mocked_open.return_value.__exit__ = mock.Mock()
|
||||
read_mock = mocked_open.return_value.read
|
||||
read_mock.side_effect = ['1']
|
||||
mocked_ifaddresses.return_value = {
|
||||
netifaces.AF_INET: [{'addr': '192.168.1.2'}],
|
||||
netifaces.AF_INET6: [{'addr': 'fd00::101'}]
|
||||
mocked_net_if_addrs.return_value = {
|
||||
'lo': [
|
||||
FakeAddr(socket.AF_INET, '127.0.0.1'),
|
||||
FakeAddr(socket.AF_INET6, '::1'),
|
||||
FakeAddr(socket.AF_PACKET, '00:00:00:00:00:00')
|
||||
],
|
||||
'eth0': [
|
||||
FakeAddr(socket.AF_INET, '192.168.1.2'),
|
||||
FakeAddr(socket.AF_INET6, 'fd00::101'),
|
||||
FakeAddr(socket.AF_PACKET, '00:0c:29:8c:11:b1')
|
||||
]
|
||||
}
|
||||
mocked_lldp_info.return_value = {'eth0': [
|
||||
(0, b''),
|
||||
@ -6241,7 +6265,6 @@ class TestListNetworkInterfaces(base.IronicAgentTest):
|
||||
(3, b'\x00x')]
|
||||
}
|
||||
mock_has_carrier.return_value = True
|
||||
mock_get_mac.return_value = '00:0c:29:8c:11:b1'
|
||||
mocked_execute.return_value = ('em0\n', '')
|
||||
interfaces = self.hardware.list_network_interfaces()
|
||||
self.assertEqual(1, len(interfaces))
|
||||
@ -6260,10 +6283,16 @@ class TestListNetworkInterfaces(base.IronicAgentTest):
|
||||
self.assertEqual('em0', interfaces[0].biosdevname)
|
||||
|
||||
@mock.patch.object(netutils, 'get_lldp_info', autospec=True)
|
||||
def test_list_network_interfaces_with_lldp_error(
|
||||
self, mocked_lldp_info, mock_has_carrier, mock_get_mac,
|
||||
mocked_execute, mocked_open, mocked_exists, mocked_listdir,
|
||||
mocked_ifaddresses, mockedget_managers, mocked_lshw):
|
||||
def test_list_network_interfaces_with_lldp_error(self,
|
||||
mocked_lldp_info,
|
||||
mock_has_carrier,
|
||||
mocked_execute,
|
||||
mocked_open,
|
||||
mocked_exists,
|
||||
mocked_listdir,
|
||||
mocked_net_if_addrs,
|
||||
mockedget_managers,
|
||||
mocked_lshw):
|
||||
CONF.set_override('collect_lldp', True)
|
||||
mocked_listdir.return_value = ['lo', 'eth0']
|
||||
mocked_exists.side_effect = [False, False, True]
|
||||
@ -6271,14 +6300,21 @@ class TestListNetworkInterfaces(base.IronicAgentTest):
|
||||
mocked_open.return_value.__exit__ = mock.Mock()
|
||||
read_mock = mocked_open.return_value.read
|
||||
read_mock.side_effect = ['1']
|
||||
mocked_ifaddresses.return_value = {
|
||||
netifaces.AF_INET: [{'addr': '192.168.1.2'}],
|
||||
netifaces.AF_INET6: [{'addr': 'fd00::101'}]
|
||||
mocked_net_if_addrs.return_value = {
|
||||
'lo': [
|
||||
FakeAddr(socket.AF_INET, '127.0.0.1'),
|
||||
FakeAddr(socket.AF_INET6, '::1'),
|
||||
FakeAddr(socket.AF_PACKET, '00:00:00:00:00:00')
|
||||
],
|
||||
'eth0': [
|
||||
FakeAddr(socket.AF_INET, '192.168.1.2'),
|
||||
FakeAddr(socket.AF_INET6, 'fd00::101'),
|
||||
FakeAddr(socket.AF_PACKET, '00:0c:29:8c:11:b1')
|
||||
]
|
||||
}
|
||||
mocked_lldp_info.side_effect = Exception('Boom!')
|
||||
mocked_execute.return_value = ('em0\n', '')
|
||||
mock_has_carrier.return_value = True
|
||||
mock_get_mac.return_value = '00:0c:29:8c:11:b1'
|
||||
interfaces = self.hardware.list_network_interfaces()
|
||||
self.assertEqual(1, len(interfaces))
|
||||
self.assertEqual('eth0', interfaces[0].name)
|
||||
@ -6291,12 +6327,11 @@ class TestListNetworkInterfaces(base.IronicAgentTest):
|
||||
|
||||
def test_list_network_interfaces_no_carrier(self,
|
||||
mock_has_carrier,
|
||||
mock_get_mac,
|
||||
mocked_execute,
|
||||
mocked_open,
|
||||
mocked_exists,
|
||||
mocked_listdir,
|
||||
mocked_ifaddresses,
|
||||
mocked_net_if_addrs,
|
||||
mockedget_managers,
|
||||
mocked_lshw):
|
||||
|
||||
@ -6307,13 +6342,20 @@ class TestListNetworkInterfaces(base.IronicAgentTest):
|
||||
mocked_open.return_value.__exit__ = mock.Mock()
|
||||
read_mock = mocked_open.return_value.read
|
||||
read_mock.side_effect = [OSError('boom')]
|
||||
mocked_ifaddresses.return_value = {
|
||||
netifaces.AF_INET: [{'addr': '192.168.1.2'}],
|
||||
netifaces.AF_INET6: [{'addr': 'fd00::101'}]
|
||||
mocked_net_if_addrs.return_value = {
|
||||
'lo': [
|
||||
FakeAddr(socket.AF_INET, '127.0.0.1'),
|
||||
FakeAddr(socket.AF_INET6, '::1'),
|
||||
FakeAddr(socket.AF_PACKET, '00:00:00:00:00:00')
|
||||
],
|
||||
'eth0': [
|
||||
FakeAddr(socket.AF_INET, '192.168.1.2'),
|
||||
FakeAddr(socket.AF_INET6, 'fd00::101'),
|
||||
FakeAddr(socket.AF_PACKET, '00:0c:29:8c:11:b1')
|
||||
]
|
||||
}
|
||||
mocked_execute.return_value = ('em0\n', '')
|
||||
mock_has_carrier.return_value = False
|
||||
mock_get_mac.return_value = '00:0c:29:8c:11:b1'
|
||||
interfaces = self.hardware.list_network_interfaces()
|
||||
self.assertEqual(1, len(interfaces))
|
||||
self.assertEqual('eth0', interfaces[0].name)
|
||||
@ -6326,12 +6368,11 @@ class TestListNetworkInterfaces(base.IronicAgentTest):
|
||||
|
||||
def test_list_network_interfaces_with_vendor_info(self,
|
||||
mock_has_carrier,
|
||||
mock_get_mac,
|
||||
mocked_execute,
|
||||
mocked_open,
|
||||
mocked_exists,
|
||||
mocked_listdir,
|
||||
mocked_ifaddresses,
|
||||
mocked_net_if_addrs,
|
||||
mockedget_managers,
|
||||
mocked_lshw):
|
||||
mocked_listdir.return_value = ['lo', 'eth0']
|
||||
@ -6341,13 +6382,20 @@ class TestListNetworkInterfaces(base.IronicAgentTest):
|
||||
read_mock = mocked_open.return_value.read
|
||||
mac = '00:0c:29:8c:11:b1'
|
||||
read_mock.side_effect = ['0x15b3\n', '0x1014\n']
|
||||
mocked_ifaddresses.return_value = {
|
||||
netifaces.AF_INET: [{'addr': '192.168.1.2'}],
|
||||
netifaces.AF_INET6: [{'addr': 'fd00::101'}]
|
||||
mocked_net_if_addrs.return_value = {
|
||||
'lo': [
|
||||
FakeAddr(socket.AF_INET, '127.0.0.1'),
|
||||
FakeAddr(socket.AF_INET6, '::1'),
|
||||
FakeAddr(socket.AF_PACKET, '00:00:00:00:00:00')
|
||||
],
|
||||
'eth0': [
|
||||
FakeAddr(socket.AF_INET, '192.168.1.2'),
|
||||
FakeAddr(socket.AF_INET6, 'fd00::101'),
|
||||
FakeAddr(socket.AF_PACKET, '00:0c:29:8c:11:b1')
|
||||
]
|
||||
}
|
||||
mocked_execute.return_value = ('em0\n', '')
|
||||
mock_has_carrier.return_value = True
|
||||
mock_get_mac.return_value = mac
|
||||
interfaces = self.hardware.list_network_interfaces()
|
||||
self.assertEqual(1, len(interfaces))
|
||||
self.assertEqual('eth0', interfaces[0].name)
|
||||
@ -6361,12 +6409,11 @@ class TestListNetworkInterfaces(base.IronicAgentTest):
|
||||
|
||||
def test_list_network_interfaces_with_bond(self,
|
||||
mock_has_carrier,
|
||||
mock_get_mac,
|
||||
mocked_execute,
|
||||
mocked_open,
|
||||
mocked_exists,
|
||||
mocked_listdir,
|
||||
mocked_ifaddresses,
|
||||
mocked_net_if_addrs,
|
||||
mockedget_managers,
|
||||
mocked_lshw):
|
||||
mocked_listdir.return_value = ['lo', 'bond0']
|
||||
@ -6375,16 +6422,20 @@ class TestListNetworkInterfaces(base.IronicAgentTest):
|
||||
mocked_open.return_value.__exit__ = mock.Mock()
|
||||
read_mock = mocked_open.return_value.read
|
||||
read_mock.side_effect = ['1']
|
||||
mocked_ifaddresses.return_value = {
|
||||
netifaces.AF_INET: [{'addr': '192.168.1.2'}],
|
||||
netifaces.AF_INET6: [{'addr': 'fd00::101'}]
|
||||
mocked_net_if_addrs.return_value = {
|
||||
'lo': [
|
||||
FakeAddr(socket.AF_INET, '127.0.0.1'),
|
||||
FakeAddr(socket.AF_INET6, '::1'),
|
||||
FakeAddr(socket.AF_PACKET, '00:00:00:00:00:00')
|
||||
],
|
||||
'bond0': [
|
||||
FakeAddr(socket.AF_INET, '192.168.1.2'),
|
||||
FakeAddr(socket.AF_INET6, 'fd00::101'),
|
||||
FakeAddr(socket.AF_PACKET, '00:0c:29:8c:11:b1')
|
||||
]
|
||||
}
|
||||
mocked_execute.return_value = ('\n', '')
|
||||
mock_has_carrier.return_value = True
|
||||
mock_get_mac.side_effect = [
|
||||
'00:0c:29:8c:11:b1',
|
||||
None,
|
||||
]
|
||||
interfaces = self.hardware.list_network_interfaces()
|
||||
self.assertEqual(1, len(interfaces))
|
||||
self.assertEqual('bond0', interfaces[0].name)
|
||||
@ -6397,12 +6448,11 @@ class TestListNetworkInterfaces(base.IronicAgentTest):
|
||||
|
||||
def test_list_network_vlan_interfaces(self,
|
||||
mock_has_carrier,
|
||||
mock_get_mac,
|
||||
mocked_execute,
|
||||
mocked_open,
|
||||
mocked_exists,
|
||||
mocked_listdir,
|
||||
mocked_ifaddresses,
|
||||
mocked_net_if_addrs,
|
||||
mockedget_managers,
|
||||
mocked_lshw):
|
||||
CONF.set_override('enable_vlan_interfaces', 'eth0.100')
|
||||
@ -6412,13 +6462,25 @@ class TestListNetworkInterfaces(base.IronicAgentTest):
|
||||
mocked_open.return_value.__exit__ = mock.Mock()
|
||||
read_mock = mocked_open.return_value.read
|
||||
read_mock.side_effect = ['1']
|
||||
mocked_ifaddresses.return_value = {
|
||||
netifaces.AF_INET: [{'addr': '192.168.1.2'}],
|
||||
netifaces.AF_INET6: [{'addr': 'fd00::101'}]
|
||||
mocked_net_if_addrs.return_value = {
|
||||
'lo': [
|
||||
FakeAddr(socket.AF_INET, '127.0.0.1'),
|
||||
FakeAddr(socket.AF_INET6, '::1'),
|
||||
FakeAddr(socket.AF_PACKET, '00:00:00:00:00:00')
|
||||
],
|
||||
'eth0': [
|
||||
FakeAddr(socket.AF_INET, '192.168.1.2'),
|
||||
FakeAddr(socket.AF_INET6, 'fd00::101'),
|
||||
FakeAddr(socket.AF_PACKET, '00:0c:29:8c:11:b1')
|
||||
],
|
||||
'eth0.100': [
|
||||
FakeAddr(socket.AF_INET, '192.168.2.2'),
|
||||
FakeAddr(socket.AF_INET6, 'fd00::1000::101'),
|
||||
FakeAddr(socket.AF_PACKET, '00:0c:29:8c:11:b1')
|
||||
]
|
||||
}
|
||||
mocked_execute.return_value = ('em0\n', '')
|
||||
mock_get_mac.mock_has_carrier = True
|
||||
mock_get_mac.return_value = '00:0c:29:8c:11:b1'
|
||||
mock_has_carrier.return_value = True
|
||||
interfaces = self.hardware.list_network_interfaces()
|
||||
self.assertEqual(2, len(interfaces))
|
||||
self.assertEqual('eth0', interfaces[0].name)
|
||||
@ -6434,12 +6496,11 @@ class TestListNetworkInterfaces(base.IronicAgentTest):
|
||||
def test_list_network_vlan_interfaces_using_lldp(self,
|
||||
mocked_lldp_info,
|
||||
mock_has_carrier,
|
||||
mock_get_mac,
|
||||
mocked_execute,
|
||||
mocked_open,
|
||||
mocked_exists,
|
||||
mocked_listdir,
|
||||
mocked_ifaddresses,
|
||||
mocked_net_if_addrs,
|
||||
mockedget_managers,
|
||||
mocked_lshw):
|
||||
CONF.set_override('collect_lldp', True)
|
||||
@ -6451,13 +6512,34 @@ class TestListNetworkInterfaces(base.IronicAgentTest):
|
||||
mocked_open.return_value.__exit__ = mock.Mock()
|
||||
read_mock = mocked_open.return_value.read
|
||||
read_mock.side_effect = ['1']
|
||||
mocked_net_if_addrs.return_value = {
|
||||
'lo': [
|
||||
FakeAddr(socket.AF_INET, '127.0.0.1'),
|
||||
FakeAddr(socket.AF_INET6, '::1'),
|
||||
FakeAddr(socket.AF_PACKET, '00:00:00:00:00:00')
|
||||
],
|
||||
'eth0': [
|
||||
FakeAddr(socket.AF_INET, '192.168.1.2'),
|
||||
FakeAddr(socket.AF_INET6, 'fd00::101'),
|
||||
FakeAddr(socket.AF_PACKET, '00:0c:29:8c:11:b1')
|
||||
],
|
||||
'eth0.100': [
|
||||
FakeAddr(socket.AF_INET, '192.168.100.2'),
|
||||
FakeAddr(socket.AF_INET6, 'fd00:0100::101'),
|
||||
FakeAddr(socket.AF_PACKET, '00:0c:29:8c:11:c1')
|
||||
],
|
||||
'eth0.101': [
|
||||
FakeAddr(socket.AF_INET, '192.168.101.2'),
|
||||
FakeAddr(socket.AF_INET6, 'fd00:0101::101'),
|
||||
FakeAddr(socket.AF_PACKET, '00:0c:29:8c:11:c2')
|
||||
]
|
||||
}
|
||||
mocked_lldp_info.return_value = {'eth0': [
|
||||
(0, b''),
|
||||
(127, b'\x00\x80\xc2\x03\x00d\x08vlan-100'),
|
||||
(127, b'\x00\x80\xc2\x03\x00e\x08vlan-101')]
|
||||
}
|
||||
mock_has_carrier.return_value = True
|
||||
mock_get_mac.return_value = '00:0c:29:8c:11:b1'
|
||||
interfaces = self.hardware.list_network_interfaces()
|
||||
self.assertEqual(3, len(interfaces))
|
||||
self.assertEqual('eth0', interfaces[0].name)
|
||||
@ -6469,22 +6551,21 @@ class TestListNetworkInterfaces(base.IronicAgentTest):
|
||||
]
|
||||
self.assertEqual(expected_lldp_info, interfaces[0].lldp)
|
||||
self.assertEqual('eth0.100', interfaces[1].name)
|
||||
self.assertEqual('00:0c:29:8c:11:b1', interfaces[1].mac_address)
|
||||
self.assertEqual('00:0c:29:8c:11:c1', interfaces[1].mac_address)
|
||||
self.assertIsNone(interfaces[1].lldp)
|
||||
self.assertEqual('eth0.101', interfaces[2].name)
|
||||
self.assertEqual('00:0c:29:8c:11:b1', interfaces[2].mac_address)
|
||||
self.assertEqual('00:0c:29:8c:11:c2', interfaces[2].mac_address)
|
||||
self.assertIsNone(interfaces[2].lldp)
|
||||
|
||||
@mock.patch.object(netutils, 'LOG', autospec=True)
|
||||
def test_list_network_vlan_invalid_int(self,
|
||||
mocked_log,
|
||||
mock_has_carrier,
|
||||
mock_get_mac,
|
||||
mocked_execute,
|
||||
mocked_open,
|
||||
mocked_exists,
|
||||
mocked_listdir,
|
||||
mocked_ifaddresses,
|
||||
mocked_net_if_addrs,
|
||||
mockedget_managers,
|
||||
mocked_lshw):
|
||||
CONF.set_override('collect_lldp', True)
|
||||
@ -6495,13 +6576,20 @@ class TestListNetworkInterfaces(base.IronicAgentTest):
|
||||
mocked_open.return_value.__exit__ = mock.Mock()
|
||||
read_mock = mocked_open.return_value.read
|
||||
read_mock.side_effect = ['1']
|
||||
mocked_ifaddresses.return_value = {
|
||||
netifaces.AF_INET: [{'addr': '192.168.1.2'}],
|
||||
netifaces.AF_INET6: [{'addr': 'fd00::101'}]
|
||||
mocked_net_if_addrs.return_value = {
|
||||
'lo': [
|
||||
FakeAddr(socket.AF_INET, '127.0.0.1'),
|
||||
FakeAddr(socket.AF_INET6, '::1'),
|
||||
FakeAddr(socket.AF_PACKET, '00:00:00:00:00:00')
|
||||
],
|
||||
'eth0': [
|
||||
FakeAddr(socket.AF_INET, '192.168.1.2'),
|
||||
FakeAddr(socket.AF_INET6, 'fd00::101'),
|
||||
FakeAddr(socket.AF_PACKET, '00:0c:29:8c:11:b1')
|
||||
]
|
||||
}
|
||||
mocked_execute.return_value = ('em0\n', '')
|
||||
mock_get_mac.mock_has_carrier = True
|
||||
mock_get_mac.return_value = '00:0c:29:8c:11:b1'
|
||||
mock_has_carrier.return_value = True
|
||||
|
||||
self.hardware.list_network_interfaces()
|
||||
mocked_log.warning.assert_called_once_with(
|
||||
@ -6511,12 +6599,11 @@ class TestListNetworkInterfaces(base.IronicAgentTest):
|
||||
def test_list_network_vlan_interfaces_using_lldp_all(self,
|
||||
mocked_lldp_info,
|
||||
mock_has_carrier,
|
||||
mock_get_mac,
|
||||
mocked_execute,
|
||||
mocked_open,
|
||||
mocked_exists,
|
||||
mocked_listdir,
|
||||
mocked_ifaddresses,
|
||||
mocked_net_if_addrs,
|
||||
mockedget_managers,
|
||||
mocked_lshw):
|
||||
CONF.set_override('collect_lldp', True)
|
||||
@ -6528,6 +6615,43 @@ class TestListNetworkInterfaces(base.IronicAgentTest):
|
||||
mocked_open.return_value.__exit__ = mock.Mock()
|
||||
read_mock = mocked_open.return_value.read
|
||||
read_mock.side_effect = ['1']
|
||||
mocked_net_if_addrs.return_value = {
|
||||
'lo': [
|
||||
FakeAddr(socket.AF_INET, '127.0.0.1'),
|
||||
FakeAddr(socket.AF_INET6, '::1'),
|
||||
FakeAddr(socket.AF_PACKET, '00:00:00:00:00:00')
|
||||
],
|
||||
'eth0': [
|
||||
FakeAddr(socket.AF_INET, '192.168.1.2'),
|
||||
FakeAddr(socket.AF_INET6, 'fd00::101'),
|
||||
FakeAddr(socket.AF_PACKET, '00:0c:29:8c:11:b1')
|
||||
],
|
||||
'eth1': [
|
||||
FakeAddr(socket.AF_INET, '192.168.2.2'),
|
||||
FakeAddr(socket.AF_INET6, 'fd00:1000::101'),
|
||||
FakeAddr(socket.AF_PACKET, '00:0c:29:8c:11:b2')
|
||||
],
|
||||
'eth0.100': [
|
||||
FakeAddr(socket.AF_INET, '192.168.100.2'),
|
||||
FakeAddr(socket.AF_INET6, 'fd00:0100::101'),
|
||||
FakeAddr(socket.AF_PACKET, '00:0c:29:8c:11:c1')
|
||||
],
|
||||
'eth0.101': [
|
||||
FakeAddr(socket.AF_INET, '192.168.101.2'),
|
||||
FakeAddr(socket.AF_INET6, 'fd00:0101::101'),
|
||||
FakeAddr(socket.AF_PACKET, '00:0c:29:8c:11:c2')
|
||||
],
|
||||
'eth1.102': [
|
||||
FakeAddr(socket.AF_INET, '192.168.102.2'),
|
||||
FakeAddr(socket.AF_INET6, 'fd00:1102::101'),
|
||||
FakeAddr(socket.AF_PACKET, '00:0c:29:8c:11:d1')
|
||||
],
|
||||
'eth1.103': [
|
||||
FakeAddr(socket.AF_INET, '192.168.103.2'),
|
||||
FakeAddr(socket.AF_INET6, 'fd00:1103::101'),
|
||||
FakeAddr(socket.AF_PACKET, '00:0c:29:8c:11:d2')
|
||||
]
|
||||
}
|
||||
mocked_lldp_info.return_value = {'eth0': [
|
||||
(0, b''),
|
||||
(127, b'\x00\x80\xc2\x03\x00d\x08vlan-100'),
|
||||
|
@ -1,6 +1,5 @@
|
||||
pbr>=2.0.0 # Apache-2.0
|
||||
eventlet>=0.18.2 # MIT
|
||||
netifaces>=0.10.4 # MIT
|
||||
oslo.config>=5.2.0 # Apache-2.0
|
||||
oslo.concurrency>=3.26.0 # Apache-2.0
|
||||
oslo.log>=4.6.1 # Apache-2.0
|
||||
|
Loading…
Reference in New Issue
Block a user