]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
cephadm: Fix error parsing <command> arguments
authorJuan Miguel Olmo Martínez <jolmomar@redhat.com>
Mon, 4 May 2020 10:45:35 +0000 (12:45 +0200)
committerSebastian Wagner <sebastian.wagner@suse.com>
Thu, 21 May 2020 21:33:18 +0000 (23:33 +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>
(cherry picked from commit ba07fa257cbdcb06037ccbab25f853cc3dfbb1e2)

src/cephadm/cephadm

index 50c34a66e4b2a7c25342518e3be2310c9cd793ee..a77a99ab3481f26dce4c66e5027a4cf158bf7f00 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