From d71f3b42738eef2d234ec752bc27d3e8e53e744c Mon Sep 17 00:00:00 2001 From: Sebastian Wagner Date: Mon, 17 Aug 2020 12:34:02 +0200 Subject: [PATCH] mgr/cephadm: add test_upgrade.py Signed-off-by: Sebastian Wagner --- src/pybind/mgr/cephadm/tests/test_upgrade.py | 44 ++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/pybind/mgr/cephadm/tests/test_upgrade.py diff --git a/src/pybind/mgr/cephadm/tests/test_upgrade.py b/src/pybind/mgr/cephadm/tests/test_upgrade.py new file mode 100644 index 0000000000000..3bef0844ed33e --- /dev/null +++ b/src/pybind/mgr/cephadm/tests/test_upgrade.py @@ -0,0 +1,44 @@ +import json +from unittest import mock + +from ceph.deployment.service_spec import ServiceSpec +from cephadm import CephadmOrchestrator +from .fixtures import _run_cephadm, wait, cephadm_module, with_host, with_service + +@mock.patch("cephadm.module.CephadmOrchestrator._run_cephadm", _run_cephadm('{}')) +def test_upgrade_start(cephadm_module: CephadmOrchestrator): + with with_host(cephadm_module, 'test'): + assert wait(cephadm_module, cephadm_module.upgrade_start('image_id', None)) == 'Initiating upgrade to image_id' + + assert wait(cephadm_module, cephadm_module.upgrade_status()).target_image == 'image_id' + + assert wait(cephadm_module, cephadm_module.upgrade_pause()) == 'Paused upgrade to image_id' + + assert wait(cephadm_module, cephadm_module.upgrade_resume()) == 'Resumed upgrade to image_id' + + assert wait(cephadm_module, cephadm_module.upgrade_stop()) == 'Stopped upgrade to image_id' + + +@mock.patch("cephadm.module.CephadmOrchestrator._run_cephadm", _run_cephadm('{}')) +def test_upgrade_run(cephadm_module: CephadmOrchestrator): + with with_host(cephadm_module, 'test'): + cephadm_module.check_mon_command({ + 'prefix': 'config set', + 'name': 'container_image', + 'value': 'from_image', + 'who': 'global', + }) + with with_service(cephadm_module, ServiceSpec('mgr'), CephadmOrchestrator.apply_mgr, 'test'): + assert wait(cephadm_module, cephadm_module.upgrade_start('to_image', None)) == 'Initiating upgrade to to_image' + + assert wait(cephadm_module, cephadm_module.upgrade_status()).target_image == 'to_image' + + cephadm_module.upgrade._do_upgrade() + + _, image, _ = cephadm_module.check_mon_command({ + 'prefix': 'config get', + 'who': 'global', + 'key': 'container_image', + }) + + assert image == 'to_image' -- 2.39.5