From: Sage Weil Date: Tue, 26 Jan 2021 15:24:54 +0000 (-0600) Subject: mgr/cephadm: move release -> major translation to helper X-Git-Tag: v16.2.0~207^2~13 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=71aa61b546f19299fed1cb64bf8c1efa2f9e7eb0;p=ceph.git mgr/cephadm: move release -> major translation to helper Signed-off-by: Sage Weil (cherry picked from commit 43ac324c3817b378beb9fe12437565ddbecb5370) --- diff --git a/src/pybind/mgr/cephadm/upgrade.py b/src/pybind/mgr/cephadm/upgrade.py index 5071d6ff2865..0ab405ff637c 100644 --- a/src/pybind/mgr/cephadm/upgrade.py +++ b/src/pybind/mgr/cephadm/upgrade.py @@ -6,7 +6,7 @@ from typing import TYPE_CHECKING, Optional, Dict import orchestrator from cephadm.serve import CephadmServe -from cephadm.utils import name_to_config_section, CEPH_UPGRADE_ORDER +from cephadm.utils import ceph_release_to_major, name_to_config_section, CEPH_UPGRADE_ORDER from orchestrator import OrchestratorError, DaemonDescription, daemon_type_to_service, service_to_daemon_types if TYPE_CHECKING: @@ -121,7 +121,7 @@ class CephadmUpgrade: # check osd min osdmap = self.mgr.get("osd_map") osd_min_name = osdmap.get("require_osd_release", "argonaut") - osd_min = ord(osd_min_name[0]) - ord('a') + 1 + osd_min = ceph_release_to_major(osd_min_name) if osd_min < int(major) - 2: return f'require_osd_release ({osd_min_name} or {osd_min}) < target {major} - 2; first complete an upgrade to an earlier release' @@ -475,7 +475,7 @@ class CephadmUpgrade: if daemon_type == 'osd': osdmap = self.mgr.get("osd_map") osd_min_name = osdmap.get("require_osd_release", "argonaut") - osd_min = ord(osd_min_name[0]) - ord('a') + 1 + osd_min = ceph_release_to_major(osd_min_name) if osd_min < int(target_major): logger.info(f'Upgrade: Setting require_osd_release to {target_major} {target_major_name}') ret, _, err = self.mgr.check_mon_command({ diff --git a/src/pybind/mgr/cephadm/utils.py b/src/pybind/mgr/cephadm/utils.py index 4b93e0b98e44..48c3d837c426 100644 --- a/src/pybind/mgr/cephadm/utils.py +++ b/src/pybind/mgr/cephadm/utils.py @@ -106,3 +106,7 @@ def resolve_ip(hostname: str) -> str: return socket.getaddrinfo(hostname, None, flags=socket.AI_CANONNAME, type=socket.SOCK_STREAM)[0][4][0] except socket.gaierror as e: raise OrchestratorError(f"Cannot resolve ip for host {hostname}: {e}") + + +def ceph_release_to_major(release: str) -> int: + return ord(release[0]) - ord('a') + 1