diff --git a/ipaclient/remote_plugins/schema.py b/ipaclient/remote_plugins/schema.py index c21da5ff0..b944fb08f 100644 --- a/ipaclient/remote_plugins/schema.py +++ b/ipaclient/remote_plugins/schema.py @@ -213,7 +213,6 @@ def _create_param(meta): for key, value in meta.items(): if key in ('alwaysask', - 'autofill', 'doc', 'label', 'multivalue', @@ -229,11 +228,9 @@ def _create_param(meta): kwargs[key] = value elif key == 'default': default = value - kwargs['autofill'] = True elif key == 'default_from_param': kwargs['default_from'] = DefaultFrom(_nope, *(str(k) for k in value)) - kwargs['autofill'] = True elif key in ('exclude', 'include'): kwargs[key] = tuple(str(v) for v in value) @@ -246,6 +243,9 @@ def _create_param(meta): default = tmp._convert_scalar(default[0]) 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) if sensitive: 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',