mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
schema: fix param default value handling
Advertise param's default value even when `autofill` is False. When `autofill` is False, set `alwaysask` to True in the schema, as it is semantically equivallent and removes redundancy. This fixes default value disappearing in CLI for some params. https://fedorahosted.org/freeipa/ticket/4739 Reviewed-By: David Kupka <dkupka@redhat.com>
This commit is contained in:
parent
7b8247a485
commit
ac8e8ecdd3
@ -213,7 +213,6 @@ def _create_param(meta):
|
|||||||
|
|
||||||
for key, value in meta.items():
|
for key, value in meta.items():
|
||||||
if key in ('alwaysask',
|
if key in ('alwaysask',
|
||||||
'autofill',
|
|
||||||
'doc',
|
'doc',
|
||||||
'label',
|
'label',
|
||||||
'multivalue',
|
'multivalue',
|
||||||
@ -229,11 +228,9 @@ def _create_param(meta):
|
|||||||
kwargs[key] = value
|
kwargs[key] = value
|
||||||
elif key == 'default':
|
elif key == 'default':
|
||||||
default = value
|
default = value
|
||||||
kwargs['autofill'] = True
|
|
||||||
elif key == 'default_from_param':
|
elif key == 'default_from_param':
|
||||||
kwargs['default_from'] = DefaultFrom(_nope,
|
kwargs['default_from'] = DefaultFrom(_nope,
|
||||||
*(str(k) for k in value))
|
*(str(k) for k in value))
|
||||||
kwargs['autofill'] = True
|
|
||||||
elif key in ('exclude',
|
elif key in ('exclude',
|
||||||
'include'):
|
'include'):
|
||||||
kwargs[key] = tuple(str(v) for v in value)
|
kwargs[key] = tuple(str(v) for v in value)
|
||||||
@ -246,6 +243,9 @@ def _create_param(meta):
|
|||||||
default = tmp._convert_scalar(default[0])
|
default = tmp._convert_scalar(default[0])
|
||||||
kwargs['default'] = default
|
kwargs['default'] = default
|
||||||
|
|
||||||
|
if 'default' in kwargs or 'default_from' in kwargs:
|
||||||
|
kwargs['autofill'] = not kwargs.pop('alwaysask', False)
|
||||||
|
|
||||||
param = cls(str(meta['name']), **kwargs)
|
param = cls(str(meta['name']), **kwargs)
|
||||||
|
|
||||||
if sensitive:
|
if sensitive:
|
||||||
|
@ -542,23 +542,26 @@ class param(BaseParam):
|
|||||||
'include'):
|
'include'):
|
||||||
obj[key] = list(unicode(v) for v in value)
|
obj[key] = list(unicode(v) for v in value)
|
||||||
if isinstance(metaobj, Command):
|
if isinstance(metaobj, Command):
|
||||||
if key in ('alwaysask',
|
if key == 'alwaysask':
|
||||||
'confirm'):
|
obj.setdefault(key, value)
|
||||||
|
elif key == 'confirm':
|
||||||
obj[key] = value
|
obj[key] = value
|
||||||
elif key in ('cli_metavar',
|
elif key in ('cli_metavar',
|
||||||
'cli_name',
|
'cli_name',
|
||||||
'option_group'):
|
'option_group'):
|
||||||
obj[key] = unicode(value)
|
obj[key] = unicode(value)
|
||||||
elif key == 'default':
|
elif key == 'default':
|
||||||
if param.autofill:
|
if param.multivalue:
|
||||||
if param.multivalue:
|
obj[key] = [unicode(v) for v in value]
|
||||||
obj[key] = [unicode(v) for v in value]
|
else:
|
||||||
else:
|
obj[key] = [unicode(value)]
|
||||||
obj[key] = [unicode(value)]
|
if not param.autofill:
|
||||||
|
obj['alwaysask'] = True
|
||||||
elif key == 'default_from':
|
elif key == 'default_from':
|
||||||
if param.autofill:
|
obj['default_from_param'] = list(unicode(k)
|
||||||
obj['default_from_param'] = list(unicode(k)
|
for k in value.keys)
|
||||||
for k in value.keys)
|
if not param.autofill:
|
||||||
|
obj['alwaysask'] = True
|
||||||
elif key in ('exponential',
|
elif key in ('exponential',
|
||||||
'normalizer',
|
'normalizer',
|
||||||
'only_absolute',
|
'only_absolute',
|
||||||
|
Loading…
Reference in New Issue
Block a user