]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
cephadm: consolidate default image logic
authorSage Weil <sage@redhat.com>
Wed, 18 Mar 2020 20:04:01 +0000 (15:04 -0500)
committerSage Weil <sage@redhat.com>
Thu, 19 Mar 2020 00:10:20 +0000 (19:10 -0500)
Merge the _parse_args() logic into @default_image.

Signed-off-by: Sage Weil <sage@redhat.com>
src/cephadm/cephadm
src/cephadm/tests/test_cephadm.py

index aa3288e35b7e943bb83e051d3131b35171baf8fb..8588b0812451b74935113afc195914f2f0f387be 100755 (executable)
@@ -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
index 311abbe39583eee2a27f200626fb314e0f300ba7..6f51b3e78af4414f9200ef48555f92bf4f6436c6 100644 (file)
@@ -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'])