From: Sebastian Wagner Date: Fri, 11 Sep 2020 10:42:40 +0000 (+0200) Subject: mgr/cephadm: move serve() to serve.py X-Git-Tag: v15.2.8~14^2~34 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=bba511814db2f2e4b3757497f52dbb69b40656ba;p=ceph.git mgr/cephadm: move serve() to serve.py Signed-off-by: Sebastian Wagner (cherry picked from commit 2228d59229bff1aef4ef7f8e18b9d5f6c395a51d) --- diff --git a/src/pybind/mgr/cephadm/module.py b/src/pybind/mgr/cephadm/module.py index 9f9e0540276f..930268decdb1 100644 --- a/src/pybind/mgr/cephadm/module.py +++ b/src/pybind/mgr/cephadm/module.py @@ -27,6 +27,7 @@ from ceph.deployment.drive_group import DriveGroupSpec from ceph.deployment.service_spec import \ NFSServiceSpec, RGWSpec, ServiceSpec, PlacementSpec, assert_valid_host, \ CustomContainerSpec +from cephadm.serve import CephadmServe from cephadm.services.cephadmservice import CephadmDaemonSpec from mgr_module import MgrModule, HandleCommandResult @@ -518,42 +519,8 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule): A command handler will typically change the declarative state of cephadm. This loop will then attempt to apply this new state. """ - self.log.debug("serve starting") - while self.run: - - try: - - self.convert_tags_to_repo_digest() - - # refresh daemons - self.log.debug('refreshing hosts and daemons') - self._refresh_hosts_and_daemons() - - self._check_for_strays() - - self._update_paused_health() - - if not self.paused: - self.rm_util.process_removal_queue() - - self.migration.migrate() - if self.migration.is_migration_ongoing(): - continue - - if self._apply_all_services(): - continue # did something, refresh - - self._check_daemons() - - if self.upgrade.continue_upgrade(): - continue - - except OrchestratorError as e: - if e.event_subject: - self.events.from_orch_error(e) - - self._serve_sleep() - self.log.debug("serve exit") + serve = CephadmServe(self) + serve.serve() def convert_tags_to_repo_digest(self): if not self.use_repo_digest: diff --git a/src/pybind/mgr/cephadm/serve.py b/src/pybind/mgr/cephadm/serve.py index 74d5353eadd5..fb81efa71335 100644 --- a/src/pybind/mgr/cephadm/serve.py +++ b/src/pybind/mgr/cephadm/serve.py @@ -1,6 +1,8 @@ import logging from typing import TYPE_CHECKING +from orchestrator import OrchestratorError + if TYPE_CHECKING: from cephadm.module import CephadmOrchestrator @@ -18,3 +20,48 @@ class CephadmServe: def __init__(self, mgr: "CephadmOrchestrator"): self.mgr: "CephadmOrchestrator" = mgr + self.log = logger + + def serve(self) -> None: + """ + The main loop of cephadm. + + A command handler will typically change the declarative state + of cephadm. This loop will then attempt to apply this new state. + """ + self.log.debug("serve starting") + while self.mgr.run: + + try: + + self.mgr.convert_tags_to_repo_digest() + + # refresh daemons + self.log.debug('refreshing hosts and daemons') + self.mgr._refresh_hosts_and_daemons() + + self.mgr._check_for_strays() + + self.mgr._update_paused_health() + + if not self.mgr.paused: + self.mgr.rm_util.process_removal_queue() + + self.mgr.migration.migrate() + if self.mgr.migration.is_migration_ongoing(): + continue + + if self.mgr._apply_all_services(): + continue # did something, refresh + + self.mgr._check_daemons() + + if self.mgr.upgrade.continue_upgrade(): + continue + + except OrchestratorError as e: + if e.event_subject: + self.mgr.events.from_orch_error(e) + + self.mgr._serve_sleep() + self.log.debug("serve exit")