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: v18.1.0~527^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=23f523dd0fdf079d2e0b41113c524e7b53ed3c0c;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 --- 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 948336aa559a..11dc9cfaae3a 100644 --- a/src/pybind/mgr/cephadm/upgrade.py +++ b/src/pybind/mgr/cephadm/upgrade.py @@ -469,6 +469,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: