summaryrefslogtreecommitdiffstats
path: root/ipaserver/plugins
diff options
context:
space:
mode:
authorJan Cholasta <jcholast@redhat.com>2016-06-22 15:15:32 +0200
committerJan Cholasta <jcholast@redhat.com>2016-06-27 16:42:42 +0200
commitac8e8ecdd3f75c104e30f68630290b0b1ad5a40b (patch)
tree861b0ec75029572cf367f82b1f97cc08861a8699 /ipaserver/plugins
parent7b8247a485081a6f1f5201e286ac17228f976355 (diff)
downloadfreeipa-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')
-rw-r--r--ipaserver/plugins/schema.py23
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',