Merge "Handle bracketed IPv6 redfish_address"

This commit is contained in:
Zuul 2023-09-20 10:57:34 +00:00 committed by Gerrit Code Review
commit f09ce1f01c
3 changed files with 19 additions and 0 deletions

View File

@ -105,6 +105,10 @@ def get_ipmi_address(node):
if '//' in value:
url = urllib.parse.urlparse(value)
value = url.hostname
# Strip brackets in case used on IPv6 address.
value = value.strip('[').strip(']')
try:
addrinfo = socket.getaddrinfo(value, None, 0, 0, socket.SOL_TCP)
for family, socket_type, proto, canon_name, sockaddr in addrinfo:

View File

@ -135,6 +135,14 @@ class TestGetIpmiAddress(base.BaseTest):
ir_utils.get_ipmi_address(node))
mock_socket.assert_called_once_with(self.ipmi_ipv6, None, 0, 0, 6)
def test_redfish_bmc_address_ipv6_brackets_no_scheme(self):
self.cfg.config(ipmi_address_fields=['redfish_address'])
address = '[{}]'.format(self.ipmi_ipv6)
node = mock.Mock(spec=['driver_info', 'uuid'],
driver_info={'redfish_address': address})
self.assertEqual((self.ipmi_ipv6, None, self.ipmi_ipv6),
ir_utils.get_ipmi_address(node))
class TestCapabilities(unittest.TestCase):

View File

@ -0,0 +1,7 @@
---
fixes:
- |
Fixes an issue where inspection would fail if an IPv6 address wrapped in
brackets is used for the redfish BMC address. See bug:
`2036455 <https://bugs.launchpad.net/ironic/+bug/2036455>`_.