diff --git a/ironic_inspector/common/ironic.py b/ironic_inspector/common/ironic.py index 9d4a111de..eb8d6a76a 100644 --- a/ironic_inspector/common/ironic.py +++ b/ironic_inspector/common/ironic.py @@ -137,11 +137,8 @@ def get_ipmi_address(node): elif family == socket.AF_INET6: ipv6 = ip except socket.gaierror: - msg = _('Failed to resolve the hostname (%(value)s)' - ' for node %(uuid)s') - raise utils.Error(msg % {'value': value, - 'uuid': node.id}, - node_info=node) + LOG.warning('Failed to resolve the hostname (%s)' + ' for node %s', value, node.id, node_info=node) return (value, ipv4, ipv6) if ipv4 or ipv6 else none_address return none_address diff --git a/ironic_inspector/test/unit/test_common_ironic.py b/ironic_inspector/test/unit/test_common_ironic.py index bf538a916..0848db6f6 100644 --- a/ironic_inspector/test/unit/test_common_ironic.py +++ b/ironic_inspector/test/unit/test_common_ironic.py @@ -71,14 +71,6 @@ class TestGetIpmiAddress(base.BaseTest): mock_socket.assert_called_once_with(self.ipmi_address, None, 0, 0, socket.SOL_TCP) - @mock.patch('socket.getaddrinfo', autospec=True) - def test_bad_hostname_errors(self, mock_socket): - node = mock.Mock(spec=['driver_info', 'uuid'], - driver_info={'ipmi_address': 'meow'}, - id='uuid1') - mock_socket.side_effect = socket.gaierror('Boom') - self.assertRaises(utils.Error, ir_utils.get_ipmi_address, node) - def test_additional_fields(self): node = mock.Mock(spec=['driver_info', 'uuid'], driver_info={'foo': self.ipmi_ipv4}) diff --git a/releasenotes/notes/ignore-resolve-error-5c20514598e0dbbf.yaml b/releasenotes/notes/ignore-resolve-error-5c20514598e0dbbf.yaml new file mode 100644 index 000000000..47ebc75a3 --- /dev/null +++ b/releasenotes/notes/ignore-resolve-error-5c20514598e0dbbf.yaml @@ -0,0 +1,7 @@ +--- +fixes: + - | + No longer throws an exception if an address of some node cannot be + resolved, but just logs a warning instead. This fixes the issue that + if an address of any other node is not resolvable, no new node can be + registered, even if its own address is resolvable.