From 45ec3e10f5420756bbb38b9d66f5778fa297890d Mon Sep 17 00:00:00 2001 From: Michael Fritch Date: Wed, 16 Mar 2022 07:39:03 -0600 Subject: [PATCH] cephadm: infer the default container image during pull Fixes: https://tracker.ceph.com/issues/54588 Signed-off-by: Michael Fritch (cherry picked from commit 736af2b9c29e375a184b863220641b7d254e7d04) --- src/cephadm/cephadm | 8 ++++---- src/cephadm/tests/test_cephadm.py | 23 +++++++++++++++++++++++ 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/src/cephadm/cephadm b/src/cephadm/cephadm index c1f474c29f96a..80a7d886eb60a 100755 --- a/src/cephadm/cephadm +++ b/src/cephadm/cephadm @@ -3661,7 +3661,7 @@ def command_version(ctx): ################################## -@infer_image +@default_image def command_pull(ctx): # type: (CephadmContext) -> int @@ -8181,7 +8181,7 @@ def _get_parser(): parser_version.set_defaults(func=command_version) parser_pull = subparsers.add_parser( - 'pull', help='pull latest image version') + 'pull', help='pull the default container image') parser_pull.set_defaults(func=command_pull) parser_pull.add_argument( '--insecure', @@ -8238,7 +8238,7 @@ def _get_parser(): parser_adopt.add_argument( '--skip-pull', action='store_true', - help='do not pull the latest image before adopting') + help='do not pull the default image before adopting') parser_adopt.add_argument( '--force-start', action='store_true', @@ -8527,7 +8527,7 @@ def _get_parser(): parser_bootstrap.add_argument( '--skip-pull', action='store_true', - help='do not pull the latest image before bootstrapping') + help='do not pull the default image before bootstrapping') parser_bootstrap.add_argument( '--skip-firewalld', action='store_true', diff --git a/src/cephadm/tests/test_cephadm.py b/src/cephadm/tests/test_cephadm.py index 4aaae01359cda..4ecb25cc9d696 100644 --- a/src/cephadm/tests/test_cephadm.py +++ b/src/cephadm/tests/test_cephadm.py @@ -1933,6 +1933,29 @@ class TestPull: cd.command_pull(ctx) assert err in str(e.value) + @mock.patch('cephadm.logger') + @mock.patch('cephadm.get_image_info_from_inspect', return_value={}) + @mock.patch('cephadm.get_last_local_ceph_image', return_value='last_local_ceph_image') + def test_image(self, get_last_local_ceph_image, get_image_info_from_inspect, logger): + cmd = ['pull'] + with with_cephadm_ctx(cmd) as ctx: + retval = cd.command_pull(ctx) + assert retval == 0 + assert ctx.image == cd.DEFAULT_IMAGE + + with mock.patch.dict(os.environ, {"CEPHADM_IMAGE": 'cephadm_image_environ'}): + cmd = ['pull'] + with with_cephadm_ctx(cmd) as ctx: + retval = cd.command_pull(ctx) + assert retval == 0 + assert ctx.image == 'cephadm_image_environ' + + cmd = ['--image', 'cephadm_image_param', 'pull'] + with with_cephadm_ctx(cmd) as ctx: + retval = cd.command_pull(ctx) + assert retval == 0 + assert ctx.image == 'cephadm_image_param' + class TestApplySpec: -- 2.39.5