From: Sage Weil Date: Wed, 18 Mar 2020 20:04:01 +0000 (-0500) Subject: cephadm: consolidate default image logic X-Git-Tag: v15.2.0~17^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=a8d7f871b15ccbae0f5fcb2b6ee77d66a626df9b;p=ceph.git cephadm: consolidate default image logic Merge the _parse_args() logic into @default_image. Signed-off-by: Sage Weil --- diff --git a/src/cephadm/cephadm b/src/cephadm/cephadm index aa3288e35b7e..8588b0812451 100755 --- a/src/cephadm/cephadm +++ b/src/cephadm/cephadm @@ -952,7 +952,14 @@ def default_image(func): @wraps(func) def _default_image(): if not args.image: - args.image = DEFAULT_IMAGE + if 'name' in args and args.name: + type_ = args.name.split('.', 1)[0] + if type_ in Monitoring.components: + args.image = Monitoring.components[type_]['image'] + if not args.image: + args.image = os.environ.get('CEPHADM_IMAGE') + if not args.image: + args.image = DEFAULT_IMAGE return func() return _default_image @@ -2445,6 +2452,7 @@ def extract_uid_gid_monitoring(daemon_type): return uid, gid +@default_image def command_deploy(): # type: () -> None (daemon_type, daemon_id) = args.name.split('.', 1) @@ -4208,17 +4216,7 @@ def _get_parser(): def _parse_args(av): parser = _get_parser() - args = parser.parse_args(av) - - if not args.image: - if 'name' in args and args.name: - type_ = args.name.split('.', 1)[0] - if type_ in Monitoring.components: - args.image = Monitoring.components[type_]['image'] - if not args.image: - args.image = os.environ.get('CEPHADM_IMAGE') - - return args + return parser.parse_args(av) if __name__ == "__main__": # allow argv to be injected diff --git a/src/cephadm/tests/test_cephadm.py b/src/cephadm/tests/test_cephadm.py index 311abbe39583..6f51b3e78af4 100644 --- a/src/cephadm/tests/test_cephadm.py +++ b/src/cephadm/tests/test_cephadm.py @@ -21,11 +21,6 @@ class TestCephAdm(object): args = cd._parse_args(['--image', 'foo', 'version']) assert args.image == 'foo' - @mock.patch.dict(os.environ,{'CEPHADM_IMAGE':'bar'}) - def test__get_parser_image_with_envvar(self): - args = cd._parse_args(['version']) - assert args.image == 'bar' - def test_CustomValidation(self): assert cd._parse_args(['deploy', '--name', 'mon.a', '--fsid', 'fsid'])