Merge "Drop dependency on netifaces"

This commit is contained in:
Zuul
2025-02-17 20:07:30 +00:00
committed by Gerrit Code Review
4 changed files with 19 additions and 30 deletions
+10 -11
View File
@@ -19,12 +19,13 @@ import functools
import inspect import inspect
import itertools import itertools
import math import math
import socket
import traceback import traceback
import netifaces
from oslo_log import log from oslo_log import log
from oslo_serialization import jsonutils from oslo_serialization import jsonutils
from oslo_utils import excutils from oslo_utils import excutils
import psutil
from nova.accelerator import cyborg from nova.accelerator import cyborg
from nova import block_device from nova import block_device
@@ -1071,22 +1072,20 @@ def get_machine_ips():
:returns: list of Strings of ip addresses :returns: list of Strings of ip addresses
""" """
addresses = [] addresses = []
for interface in netifaces.interfaces(): for interface, ifaddresses in psutil.net_if_addrs().items():
try: for ifaddress in ifaddresses:
iface_data = netifaces.ifaddresses(interface) if ifaddress.family not in (socket.AF_INET, socket.AF_INET6):
for family in iface_data:
if family not in (netifaces.AF_INET, netifaces.AF_INET6):
continue continue
for address in iface_data[family]:
addr = address['addr'] addr = ifaddress.address
# If we have an ipv6 address remove the # If we have an ipv6 address remove the
# %ether_interface at the end # %ether_interface at the end
if family == netifaces.AF_INET6: if ifaddress.family == socket.AF_INET6:
addr = addr.split('%')[0] addr = addr.split('%')[0]
addresses.append(addr) addresses.append(addr)
except ValueError:
pass
return addresses return addresses
+4 -1
View File
@@ -32,6 +32,7 @@ import warnings
import eventlet import eventlet
import fixtures import fixtures
import futurist import futurist
from openstack.cloud import _utils
from openstack import service_description from openstack import service_description
from oslo_concurrency import lockutils from oslo_concurrency import lockutils
from oslo_config import cfg from oslo_config import cfg
@@ -1662,6 +1663,8 @@ class OpenStackSDKFixture(fixtures.Fixture):
self.useFixture(fixtures.MockPatchObject( self.useFixture(fixtures.MockPatchObject(
service_description.ServiceDescription, '_make_proxy', service_description.ServiceDescription, '_make_proxy',
fake_make_proxy)) fake_make_proxy))
self.useFixture(fixtures.MockPatchObject(
_utils, 'localhost_supports_ipv6', return_value=False))
class HostNameWeigher(weights.BaseHostWeigher): class HostNameWeigher(weights.BaseHostWeigher):
@@ -1716,7 +1719,7 @@ class HostNameWeigherFixture(fixtures.Fixture):
class GenericPoisonFixture(fixtures.Fixture): class GenericPoisonFixture(fixtures.Fixture):
POISON_THESE = ( POISON_THESE = (
( (
'netifaces.interfaces', 'psutil.net_if_addrs',
'tests should not be inspecting real interfaces on the test node', 'tests should not be inspecting real interfaces on the test node',
), ),
( (
-12
View File
@@ -1155,18 +1155,6 @@ class ComputeUtilsTestCase(test.NoDBTestCase):
self.assertRaises(test.TestingException, self.assertRaises(test.TestingException,
self._test_event_reporter_graceful_exit, error) self._test_event_reporter_graceful_exit, error)
@mock.patch('netifaces.interfaces')
def test_get_machine_ips_value_error(self, mock_interfaces):
# Tests that the utility method does not explode if netifaces raises
# a ValueError.
iface = mock.sentinel
mock_interfaces.return_value = [iface]
with mock.patch('netifaces.ifaddresses',
side_effect=ValueError) as mock_ifaddresses:
addresses = compute_utils.get_machine_ips()
self.assertEqual([], addresses)
mock_ifaddresses.assert_called_once_with(iface)
@mock.patch('nova.compute.utils.notify_about_instance_action') @mock.patch('nova.compute.utils.notify_about_instance_action')
@mock.patch('nova.compute.utils.notify_about_instance_usage') @mock.patch('nova.compute.utils.notify_about_instance_usage')
@mock.patch('nova.objects.Instance.destroy') @mock.patch('nova.objects.Instance.destroy')
-1
View File
@@ -18,7 +18,6 @@ Paste>=2.0.2 # MIT
PrettyTable>=0.7.1 # BSD PrettyTable>=0.7.1 # BSD
alembic>=1.5.0 # MIT alembic>=1.5.0 # MIT
netaddr>=0.7.18 # BSD netaddr>=0.7.18 # BSD
netifaces>=0.10.4 # MIT
paramiko>=2.7.1 # LGPLv2.1+ paramiko>=2.7.1 # LGPLv2.1+
iso8601>=0.1.11 # MIT iso8601>=0.1.11 # MIT
jsonschema>=4.0.0 # MIT jsonschema>=4.0.0 # MIT