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
This commit is contained in:
parent
b5244bd05a
commit
b0e28a1603
@ -125,7 +125,12 @@ class Connection(object):
|
|||||||
LOG.warning("Different transport usernames detected")
|
LOG.warning("Different transport usernames detected")
|
||||||
|
|
||||||
if host.hostname:
|
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):
|
def reset(self):
|
||||||
"""Reset a connection so it can be used again."""
|
"""Reset a connection so it can be used again."""
|
||||||
|
@ -66,6 +66,16 @@ class TestKafkaTransportURL(test_utils.BaseTestCase):
|
|||||||
username='stack',
|
username='stack',
|
||||||
password='stacksecret',
|
password='stacksecret',
|
||||||
vhost='my_host'))),
|
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):
|
def setUp(self):
|
||||||
|
Loading…
Reference in New Issue
Block a user