]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/cephadm: add test_upgrade.py
authorSebastian Wagner <sebastian.wagner@suse.com>
Mon, 17 Aug 2020 10:34:02 +0000 (12:34 +0200)
committerSebastian Wagner <sebastian.wagner@suse.com>
Fri, 21 Aug 2020 11:04:01 +0000 (13:04 +0200)
Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
(cherry picked from commit d71f3b42738eef2d234ec752bc27d3e8e53e744c)

src/pybind/mgr/cephadm/tests/test_upgrade.py [new file with mode: 0644]

diff --git a/src/pybind/mgr/cephadm/tests/test_upgrade.py b/src/pybind/mgr/cephadm/tests/test_upgrade.py
new file mode 100644 (file)
index 0000000..3bef084
--- /dev/null
@@ -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'