]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/cephadm: move release -> major translation to helper
authorSage Weil <sage@newdream.net>
Tue, 26 Jan 2021 15:24:54 +0000 (09:24 -0600)
committerSebastian Wagner <sebastian.wagner@suse.com>
Wed, 10 Feb 2021 12:26:25 +0000 (13:26 +0100)
Signed-off-by: Sage Weil <sage@newdream.net>
(cherry picked from commit 43ac324c3817b378beb9fe12437565ddbecb5370)

src/pybind/mgr/cephadm/upgrade.py
src/pybind/mgr/cephadm/utils.py

index 5071d6ff28655e74cbddea74719b131fe86cb11a..0ab405ff637c889822185d12abfdac912f37d772 100644 (file)
@@ -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({
index 4b93e0b98e446e4b01d8fa3a5eec6e1d3c9d3dee..48c3d837c4265cb9fd679fad2fbe8dfa62c14d37 100644 (file)
@@ -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