From: Juan Miguel Olmo Martínez Date: Mon, 4 May 2020 10:45:35 +0000 (+0200) Subject: cephadm: Fix error parsing arguments X-Git-Tag: v16.1.0~2362^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F34888%2Fhead;p=ceph.git cephadm: Fix error parsing arguments Optional arguments in the parameter used in: are not parsed properly. This fixes this problem. Signed-off-by: Juan Miguel Olmo Martínez --- diff --git a/src/cephadm/cephadm b/src/cephadm/cephadm index 1a0388059b79..66d42e09213a 100755 --- a/src/cephadm/cephadm +++ b/src/cephadm/cephadm @@ -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