else:
ver = 'v2' # default mon protocol version if port is not provided
logger.warning(f'Using msgr2 protocol for unrecognized port {ep}')
- addr_arg_list.append(f'{ver}:{ep.ip}:{ep.port}')
+ ip = wrap_ipv6(ep.ip) if is_ipv6(ep.ip) else ep.ip
+ addr_arg_list.append(f'{ver}:{ip}:{ep.port}')
addr_arg = '[{0}]'.format(','.join(addr_arg_list))
return addr_arg
assert json.loads(capsys.readouterr().out) == {
'10.4.0.1/32': {'tun0': ['10.4.0.2']}
}
+
+ def test_build_addrv_params_brackets_ipv6_endpoints_correctly(self):
+ from cephadmlib.net_utils import build_addrv_params, EndPoint
+
+ # IPv6 must be emitted as vX:[ip]:port (NOT vX:ip:port).
+ eps = [EndPoint('2001:db8:100::10', 3300), EndPoint('2001:db8:100::10', 6789)]
+ arg = build_addrv_params(eps)
+
+ assert arg == '[v2:[2001:db8:100::10]:3300,v1:[2001:db8:100::10]:6789]'
+
+ def test_build_addrv_params_ipv4_is_not_bracketed(self):
+ from cephadmlib.net_utils import build_addrv_params, EndPoint
+
+ eps = [EndPoint('192.168.100.100', 3300), EndPoint('192.168.100.100', 6789)]
+ arg = build_addrv_params(eps)
+
+ assert arg == '[v2:192.168.100.100:3300,v1:192.168.100.100:6789]'