From ac8e8ecdd3f75c104e30f68630290b0b1ad5a40b Mon Sep 17 00:00:00 2001 From: Jan Cholasta Date: Wed, 22 Jun 2016 15:15:32 +0200 Subject: 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 --- ipaserver/plugins/schema.py | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) (limited to 'ipaserver/plugins') 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', -- cgit