From 71aa61b546f19299fed1cb64bf8c1efa2f9e7eb0 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Tue, 26 Jan 2021 09:24:54 -0600 Subject: [PATCH] mgr/cephadm: move release -> major translation to helper Signed-off-by: Sage Weil (cherry picked from commit 43ac324c3817b378beb9fe12437565ddbecb5370) --- src/pybind/mgr/cephadm/upgrade.py | 6 +++--- src/pybind/mgr/cephadm/utils.py | 4 ++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/pybind/mgr/cephadm/upgrade.py b/src/pybind/mgr/cephadm/upgrade.py index 5071d6ff286..0ab405ff637 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 4b93e0b98e4..48c3d837c42 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 -- 2.47.3