schema: merge command args and options

Rather than having args and options separately in command schema, merge
them together and use new `positional` param flag to differentiate between
them.

https://fedorahosted.org/freeipa/ticket/4739

Reviewed-By: David Kupka <dkupka@redhat.com>
This commit is contained in:
Jan Cholasta
2016-06-16 10:19:25 +02:00
parent 91faf3ecd7
commit d0cfe37a7e
3 changed files with 17 additions and 25 deletions

View File

@@ -286,11 +286,8 @@ def _create_output(schema):
def _create_command(schema):
name = str(schema['name'])
params = {m['name']: _create_param(m) for m in schema['params']}
command = {}
command['name'] = name
command['name'] = str(schema['name'])
if 'doc' in schema:
command['doc'] = ConcatenatedLazyText(schema['doc'])
if 'topic_topic' in schema:
@@ -304,9 +301,11 @@ def _create_command(schema):
if 'no_cli' in schema:
command['NO_CLI'] = schema['no_cli']
command['takes_args'] = tuple(
params[n] for n in schema.get('args_param', []))
_create_param(s) for s in schema['params']
if s.get('positional', s.get('required', True)))
command['takes_options'] = tuple(
params[n] for n in schema.get('options_param', []))
_create_param(s) for s in schema['params']
if not s.get('positional', s.get('required', True)))
command['has_output'] = tuple(
_create_output(m) for m in schema['output'])