kafka: Fix invalid hostaddr format for IPv6 address
When IPv6 address is used for host, the hostaddr should be formatted
in [<address>]:<port> format instead of <address>:<port> format. This
ensures the correct format is used.
Closes-Bug: 1907702
Change-Id: I6f4a453a69e942d5b2d66ffeca6960b85c8bc721
(cherry picked from commit b0e28a1603
)
This commit is contained in:
parent
95b8e0ff65
commit
5cb7cbfc6a
@ -125,7 +125,12 @@ class Connection(object):
|
||||
LOG.warning("Different transport usernames detected")
|
||||
|
||||
if host.hostname:
|
||||
self.hostaddrs.append("%s:%s" % (host.hostname, host.port))
|
||||
if ':' in host.hostname:
|
||||
hostaddr = "[%s]:%s" % (host.hostname, host.port)
|
||||
else:
|
||||
hostaddr = "%s:%s" % (host.hostname, host.port)
|
||||
|
||||
self.hostaddrs.append(hostaddr)
|
||||
|
||||
def reset(self):
|
||||
"""Reset a connection so it can be used again."""
|
||||
|
@ -66,6 +66,16 @@ class TestKafkaTransportURL(test_utils.BaseTestCase):
|
||||
username='stack',
|
||||
password='stacksecret',
|
||||
vhost='my_host'))),
|
||||
('ipv4', dict(url='kafka://127.0.0.1:1234',
|
||||
expected=dict(hostaddrs=['127.0.0.1:1234'],
|
||||
username=None,
|
||||
password=None,
|
||||
vhost=None))),
|
||||
('ipv6', dict(url='kafka://[::1]:1234',
|
||||
expected=dict(hostaddrs=['[::1]:1234'],
|
||||
username=None,
|
||||
password=None,
|
||||
vhost=None))),
|
||||
]
|
||||
|
||||
def setUp(self):
|
||||
|
Loading…
Reference in New Issue
Block a user