From ba07fa257cbdcb06037ccbab25f853cc3dfbb1e2 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Juan=20Miguel=20Olmo=20Mart=C3=ADnez?= Date: Mon, 4 May 2020 12:45:35 +0200 Subject: [PATCH] cephadm: Fix error parsing arguments MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Optional arguments in the parameter used in: are not parsed properly. This fixes this problem. Signed-off-by: Juan Miguel Olmo Martínez --- src/cephadm/cephadm | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/cephadm/cephadm b/src/cephadm/cephadm index 1a0388059b79e..66d42e09213aa 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 -- 2.39.5