]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
cephadm: Fix error parsing <command> arguments 34888/head
authorJuan Miguel Olmo Martínez <jolmomar@redhat.com>
Mon, 4 May 2020 10:45:35 +0000 (12:45 +0200)
committerJuan Miguel Olmo Martínez <jolmomar@redhat.com>
Fri, 8 May 2020 07:28:34 +0000 (09:28 +0200)
Optional arguments in the <command> parameter used in:
 <cephadm shell>
 <cephadm enter>
 <cephadm ceph-volume>
are not parsed properly. This fixes this problem.

Signed-off-by: Juan Miguel Olmo Martínez <jolmomar@redhat.com>
src/cephadm/cephadm

index 1a0388059b79e30abd04102b445131702965d47c..66d42e09213aa3c1fccf7ff48689e1c8e74cb642 100755 (executable)
@@ -4327,7 +4327,7 @@ def _get_parser():
         default=[],
         help='set environment variable')
     parser_shell.add_argument(
-        'command', nargs='*',
+        'command', nargs=argparse.REMAINDER,
         help='command (optional)')
 
     parser_enter = subparsers.add_parser(
@@ -4341,7 +4341,7 @@ def _get_parser():
         required=True,
         help='daemon name (type.id)')
     parser_enter.add_argument(
-        'command', nargs='*',
+        'command', nargs=argparse.REMAINDER,
         help='command')
 
     parser_ceph_volume = subparsers.add_parser(
@@ -4360,7 +4360,7 @@ def _get_parser():
         '--keyring', '-k',
         help='ceph.keyring to pass through to the container')
     parser_ceph_volume.add_argument(
-        'command', nargs='+',
+        'command', nargs=argparse.REMAINDER,
         help='command')
 
     parser_unit = subparsers.add_parser(
@@ -4589,7 +4589,10 @@ def _get_parser():
 
 def _parse_args(av):
     parser = _get_parser()
-    return parser.parse_args(av)
+    args = parser.parse_args(av)
+    if 'command' in args and args.command and args.command[0] == "--":
+        args.command.pop(0)
+    return args
 
 if __name__ == "__main__":
     # allow argv to be injected