]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/cepahdm: move convert_tags_to_repo_digest to serve.py
authorSebastian Wagner <sebastian.wagner@suse.com>
Fri, 11 Sep 2020 11:44:54 +0000 (13:44 +0200)
committerSebastian Wagner <sebastian.wagner@suse.com>
Wed, 18 Nov 2020 10:52:17 +0000 (11:52 +0100)
Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
(cherry picked from commit 86f5b1f16c2e859087ba5a50e9124617721ae10a)

src/pybind/mgr/cephadm/module.py
src/pybind/mgr/cephadm/serve.py
src/pybind/mgr/cephadm/tests/test_cephadm.py

index 303bdcdf4ccdba3872f8b3b5092d6f74e277bfac..7c6465f4b348fddd575a2c864f7fd1c29a2362e2 100644 (file)
@@ -25,7 +25,7 @@ import subprocess
 from ceph.deployment import inventory
 from ceph.deployment.drive_group import DriveGroupSpec
 from ceph.deployment.service_spec import \
-    NFSServiceSpec, RGWSpec, ServiceSpec, PlacementSpec, assert_valid_host, \
+    NFSServiceSpec, ServiceSpec, PlacementSpec, assert_valid_host, \
     CustomContainerSpec
 from cephadm.serve import CephadmServe
 from cephadm.services.cephadmservice import CephadmDaemonSpec
@@ -52,7 +52,7 @@ from .inventory import Inventory, SpecStore, HostCache, EventStore
 from .upgrade import CEPH_UPGRADE_ORDER, CephadmUpgrade
 from .template import TemplateMgr
 from .utils import forall_hosts, CephadmNoImage, cephadmNoImage, \
-    str_to_datetime, datetime_to_str, is_repo_digest
+    str_to_datetime, datetime_to_str
 
 try:
     import remoto
@@ -441,24 +441,6 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
         serve = CephadmServe(self)
         serve.serve()
 
-    def convert_tags_to_repo_digest(self):
-        if not self.use_repo_digest:
-            return
-        settings = self.upgrade.get_distinct_container_image_settings()
-        digests: Dict[str, ContainerInspectInfo] = {}
-        for container_image_ref in set(settings.values()):
-            if not is_repo_digest(container_image_ref):
-                image_info = self._get_container_image_info(container_image_ref)
-                if image_info.repo_digest:
-                    assert is_repo_digest(image_info.repo_digest), image_info
-                digests[container_image_ref] = image_info
-
-        for entity, container_image_ref in settings.items():
-            if not is_repo_digest(container_image_ref):
-                image_info = digests[container_image_ref]
-                if image_info.repo_digest:
-                    self.set_container_image(entity, image_info.repo_digest)
-
     def set_container_image(self, entity: str, image):
         self.check_mon_command({
             'prefix': 'config set',
index e70521f13961a1fe3a864166f90ce9dd65c8d9fe..a9ade9c7ba9f28151af013397035fcd0946c3d98 100644 (file)
@@ -16,11 +16,11 @@ from ceph.deployment.service_spec import ServiceSpec, HostPlacementSpec, RGWSpec
 import orchestrator
 from cephadm.schedule import HostAssignment
 from cephadm.upgrade import CEPH_UPGRADE_ORDER
-from cephadm.utils import forall_hosts, cephadmNoImage, str_to_datetime
+from cephadm.utils import forall_hosts, cephadmNoImage, str_to_datetime, is_repo_digest
 from orchestrator import OrchestratorError
 
 if TYPE_CHECKING:
-    from cephadm.module import CephadmOrchestrator
+    from cephadm.module import CephadmOrchestrator, ContainerInspectInfo
 
 logger = logging.getLogger(__name__)
 
@@ -52,7 +52,7 @@ class CephadmServe:
 
             try:
 
-                self.mgr.convert_tags_to_repo_digest()
+                self.convert_tags_to_repo_digest()
 
                 # refresh daemons
                 self.log.debug('refreshing hosts and daemons')
@@ -614,3 +614,21 @@ class CephadmServe:
             if daemon_type in self.mgr.requires_post_actions:
                 self.mgr.requires_post_actions.remove(daemon_type)
                 self.mgr._get_cephadm_service(daemon_type).daemon_check_post(daemon_descs)
+
+    def convert_tags_to_repo_digest(self):
+        if not self.mgr.use_repo_digest:
+            return
+        settings = self.mgr.upgrade.get_distinct_container_image_settings()
+        digests: Dict[str, ContainerInspectInfo] = {}
+        for container_image_ref in set(settings.values()):
+            if not is_repo_digest(container_image_ref):
+                image_info = self.mgr._get_container_image_info(container_image_ref)
+                if image_info.repo_digest:
+                    assert is_repo_digest(image_info.repo_digest), image_info
+                digests[container_image_ref] = image_info
+
+        for entity, container_image_ref in settings.items():
+            if not is_repo_digest(container_image_ref):
+                image_info = digests[container_image_ref]
+                if image_info.repo_digest:
+                    self.mgr.set_container_image(entity, image_info.repo_digest)
index ee39c36a2fb2a3f434a434e05a81c7ea92dca718..52be4ea7d27623615f73b85a49f386035db3e547 100644 (file)
@@ -926,7 +926,7 @@ class TestCephadm(object):
             if use_repo_digest:
                 cephadm_module.use_repo_digest = True
 
-            cephadm_module.convert_tags_to_repo_digest()
+                CephadmServe(cephadm_module).convert_tags_to_repo_digest()
 
             _, image, _ = cephadm_module.check_mon_command({
                 'prefix': 'config get',