]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/cephadm/utils: resolve_ip(): prefer IPv4
authorSage Weil <sage@newdream.net>
Tue, 23 Mar 2021 20:09:15 +0000 (16:09 -0400)
committerSage Weil <sage@newdream.net>
Fri, 23 Apr 2021 12:24:13 +0000 (07:24 -0500)
On my system the first item in hte list is
'fe80::408d:35e7:510:e9fe%eno1np0'.

Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 2e7808ccf80c78d424e1fc3db330ce0a6db1cb5d)

src/pybind/mgr/cephadm/utils.py

index 0ca4ad644c1d4acfa9c85aeca548717311bbb515..1e0ee11678988d144ec7b4f98d48991159d7e39c 100644 (file)
@@ -106,7 +106,13 @@ def is_repo_digest(image_name: str) -> bool:
 
 def resolve_ip(hostname: str) -> str:
     try:
-        return socket.getaddrinfo(hostname, None, flags=socket.AI_CANONNAME, type=socket.SOCK_STREAM)[0][4][0]
+        r = socket.getaddrinfo(hostname, None, flags=socket.AI_CANONNAME,
+                               type=socket.SOCK_STREAM)
+        # pick first v4 IP, if present
+        for a in r:
+            if a[0] == socket.AF_INET:
+                return a[4][0]
+        return r[0][4][0]
     except socket.gaierror as e:
         raise OrchestratorError(f"Cannot resolve ip for host {hostname}: {e}")