From: Adam King Date: Fri, 21 Oct 2022 20:24:19 +0000 (-0400) Subject: mgr/cephadm: clear upgrade health error when upgrade is resumed X-Git-Tag: v17.2.6~71^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=a5f6cdef4bce7295a8a1f7a032ae92fca0ae52cf;p=ceph.git mgr/cephadm: clear upgrade health error when upgrade is resumed The health error is no longer valid if the upgrade has been removed. If the issue is still present we'll hit it again. Fixes: https://tracker.ceph.com/issues/57891 Signed-off-by: Adam King (cherry picked from commit 23f523dd0fdf079d2e0b41113c524e7b53ed3c0c) --- diff --git a/src/pybind/mgr/cephadm/tests/test_upgrade.py b/src/pybind/mgr/cephadm/tests/test_upgrade.py index 2315511d4473..107395b93a15 100644 --- a/src/pybind/mgr/cephadm/tests/test_upgrade.py +++ b/src/pybind/mgr/cephadm/tests/test_upgrade.py @@ -67,6 +67,19 @@ def test_do_upgrade_offline_hosts(cephadm_module: CephadmOrchestrator): cephadm_module.offline_hosts = set([]) # so remove_host doesn't fail when leaving the with_host block +@mock.patch("cephadm.serve.CephadmServe._run_cephadm", _run_cephadm('{}')) +@mock.patch("cephadm.module.CephadmOrchestrator.remove_health_warning") +def test_upgrade_resume_clear_health_warnings(_rm_health_warning, cephadm_module: CephadmOrchestrator): + with with_host(cephadm_module, 'test'): + with with_host(cephadm_module, 'test2'): + cephadm_module.upgrade.upgrade_state = UpgradeState('target_image', 0, paused=True) + _rm_health_warning.return_value = None + assert wait(cephadm_module, cephadm_module.upgrade_resume() + ) == 'Resumed upgrade to target_image' + calls_list = [mock.call(alert_id) for alert_id in cephadm_module.upgrade.UPGRADE_ERRORS] + _rm_health_warning.assert_has_calls(calls_list, any_order=True) + + @mock.patch("cephadm.serve.CephadmServe._run_cephadm", _run_cephadm('{}')) @pytest.mark.parametrize("use_repo_digest", [ diff --git a/src/pybind/mgr/cephadm/upgrade.py b/src/pybind/mgr/cephadm/upgrade.py index e40d7577299d..252d0820de98 100644 --- a/src/pybind/mgr/cephadm/upgrade.py +++ b/src/pybind/mgr/cephadm/upgrade.py @@ -462,6 +462,8 @@ class CephadmUpgrade: self.mgr.log.info('Upgrade: Resumed upgrade to %s' % self.target_image) self._save_upgrade_state() self.mgr.event.set() + for alert_id in self.UPGRADE_ERRORS: + self.mgr.remove_health_warning(alert_id) return 'Resumed upgrade to %s' % self.target_image def upgrade_stop(self) -> str: