]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
cephadm: fixing build_addrv_params function ipv6 handling 68573/head
authorRedouane Kachach <rkachach@ibm.com>
Thu, 26 Feb 2026 15:32:22 +0000 (16:32 +0100)
committerRedouane Kachach <rkachach@ibm.com>
Thu, 23 Apr 2026 13:34:43 +0000 (15:34 +0200)
Fixes: https://tracker.ceph.com/issues/75165 (original ticket)
Fixes: https://tracker.ceph.com/issues/75567 (backport ticket)
Signed-off-by: Redouane Kachach <rkachach@ibm.com>
(cherry picked from commit 39d6b507b48c54d6a604761eda4cfa2fff3c8e3b)

src/cephadm/cephadmlib/net_utils.py
src/cephadm/tests/test_networks.py

index 7fe48c0b36ab374acc329804a2bdabfea04c2202..0cc5f2b598f6069e1b04cfceb31c38362f2ce435 100644 (file)
@@ -307,7 +307,8 @@ def build_addrv_params(addrv: List[EndPoint]) -> str:
         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
index f97dcb6a2d563fea1c9384772f8bd885867ac319..5cc5fd00dc8d30d809078ed776deb408eec73ba9 100644 (file)
@@ -285,3 +285,20 @@ fe80000000000000505400fffe04c154 03 40 20 80     eth1
             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]'