From 2e7808ccf80c78d424e1fc3db330ce0a6db1cb5d Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Tue, 23 Mar 2021 16:09:15 -0400 Subject: [PATCH] mgr/cephadm/utils: resolve_ip(): prefer IPv4 On my system the first item in hte list is 'fe80::408d:35e7:510:e9fe%eno1np0'. Signed-off-by: Sage Weil --- src/pybind/mgr/cephadm/utils.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/pybind/mgr/cephadm/utils.py b/src/pybind/mgr/cephadm/utils.py index 0ca4ad644c1..1e0ee116789 100644 --- a/src/pybind/mgr/cephadm/utils.py +++ b/src/pybind/mgr/cephadm/utils.py @@ -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}") -- 2.39.5