diff --git a/oslo_utils/netutils.py b/oslo_utils/netutils.py index 7849ca6d..41587f26 100644 --- a/oslo_utils/netutils.py +++ b/oslo_utils/netutils.py @@ -152,6 +152,8 @@ def _get_my_ipv4_address(): except (KeyError, IndexError): LOG.info(_LI('Could not determine default network interface, ' 'using 127.0.0.1 for IPv4 address')) + return LOCALHOST + try: return netifaces.ifaddresses(interface)[netifaces.AF_INET][0]['addr'] except (KeyError, IndexError): diff --git a/oslo_utils/tests/test_netutils.py b/oslo_utils/tests/test_netutils.py index 790104f7..7e1b5459 100644 --- a/oslo_utils/tests/test_netutils.py +++ b/oslo_utils/tests/test_netutils.py @@ -222,3 +222,12 @@ class NetworkUtilsTest(test_base.BaseTestCase): ifaddr.return_value = {} addr = netutils._get_my_ipv4_address() self.assertEqual('127.0.0.1', addr) + + @mock.patch('netifaces.gateways') + @mock.patch('netifaces.ifaddresses') + def test_get_my_ipv4_address_without_default_interface( + self, ifaddr, gateways): + gateways.return_value = {} + addr = netutils._get_my_ipv4_address() + self.assertEqual('127.0.0.1', addr) + self.assertFalse(ifaddr.called)