diff options
author | Jan Cholasta <jcholast@redhat.com> | 2016-06-22 15:15:32 +0200 |
---|---|---|
committer | Jan Cholasta <jcholast@redhat.com> | 2016-06-27 16:42:42 +0200 |
commit | ac8e8ecdd3f75c104e30f68630290b0b1ad5a40b (patch) | |
tree | 861b0ec75029572cf367f82b1f97cc08861a8699 /ipaserver/plugins/schema.py | |
parent | 7b8247a485081a6f1f5201e286ac17228f976355 (diff) | |
download | freeipa-ac8e8ecdd3f75c104e30f68630290b0b1ad5a40b.tar.gz freeipa-ac8e8ecdd3f75c104e30f68630290b0b1ad5a40b.tar.xz freeipa-ac8e8ecdd3f75c104e30f68630290b0b1ad5a40b.zip |
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>
Diffstat (limited to 'ipaserver/plugins/schema.py')
-rw-r--r-- | ipaserver/plugins/schema.py | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/ipaserver/plugins/schema.py b/ipaserver/plugins/schema.py index a67d7b243..c3a0e60ba 100644 --- a/ipaserver/plugins/schema.py +++ b/ipaserver/plugins/schema.py @@ -542,23 +542,26 @@ class param(BaseParam): 'include'): obj[key] = list(unicode(v) for v in value) if isinstance(metaobj, Command): - if key in ('alwaysask', - 'confirm'): + if key == 'alwaysask': + obj.setdefault(key, value) + elif key == 'confirm': obj[key] = value elif key in ('cli_metavar', 'cli_name', 'option_group'): obj[key] = unicode(value) elif key == 'default': - if param.autofill: - if param.multivalue: - obj[key] = [unicode(v) for v in value] - else: - obj[key] = [unicode(value)] + if param.multivalue: + obj[key] = [unicode(v) for v in value] + else: + obj[key] = [unicode(value)] + if not param.autofill: + obj['alwaysask'] = True elif key == 'default_from': - if param.autofill: - obj['default_from_param'] = list(unicode(k) - for k in value.keys) + obj['default_from_param'] = list(unicode(k) + for k in value.keys) + if not param.autofill: + obj['alwaysask'] = True elif key in ('exponential', 'normalizer', 'only_absolute', |