frontend: don't copy command arguments to output params

Use only object params and params defined in has_output_params as output
params. This removes unnecessary duplication of params defined both in
object plugins and as command arguments.

This requires all command output params to be properly defined in either
the object plugins or the command's has_output_params. Fix the plugins
where this wasn't true.

https://fedorahosted.org/freeipa/ticket/4739

Reviewed-By: David Kupka <dkupka@redhat.com>
This commit is contained in:
Jan Cholasta
2016-06-08 16:00:49 +02:00
parent db13494045
commit f554078291
9 changed files with 42 additions and 34 deletions

View File

@@ -991,12 +991,6 @@ class Command(HasParam):
def get_output_params(self):
for param in self._get_param_iterable('output_params', verb='has'):
yield param
if self.params is None:
return
for param in self.params():
if 'no_output' in param.flags:
continue
yield param
def get_summary_default(self, output):
if self.msg_summary:
@@ -1421,12 +1415,7 @@ class Method(Attribute, Command):
if 'no_output' in param.flags:
continue
yield param
for param in self.params():
if param.name not in list(self.obj.params):
if 'no_output' in param.flags:
continue
yield param
for param in self._get_param_iterable('output_params', verb='has'):
for param in super(Method, self).get_output_params():
yield param