diff options
author | Jan Cholasta <jcholast@redhat.com> | 2016-05-19 14:25:47 +0200 |
---|---|---|
committer | Jan Cholasta <jcholast@redhat.com> | 2016-05-25 16:06:26 +0200 |
commit | 3eaafe42b52d3c76517946fa4c2c1c120065b9fa (patch) | |
tree | 231bdec7db05fa19f0227c935a0fa3a74c193927 | |
parent | 71f960457ed2e2fe53c4c8ea5c37b50180d89a6a (diff) | |
download | freeipa-3eaafe42b52d3c76517946fa4c2c1c120065b9fa.tar.gz freeipa-3eaafe42b52d3c76517946fa4c2c1c120065b9fa.tar.xz freeipa-3eaafe42b52d3c76517946fa4c2c1c120065b9fa.zip |
frontend: do not forward unspecified positional arguments to server
When forwarding a command call to a server, do not use a value of None in
place of unspecified positional arguments.
https://fedorahosted.org/freeipa/ticket/4739
Reviewed-By: David Kupka <dkupka@redhat.com>
-rw-r--r-- | ipalib/frontend.py | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/ipalib/frontend.py b/ipalib/frontend.py index 119987b8e..c7bbead32 100644 --- a/ipalib/frontend.py +++ b/ipalib/frontend.py @@ -559,8 +559,21 @@ class Command(HasParam): """ Split params into (args, options). """ - args = tuple(params.get(name, None) for name in self.args) + args = tuple() options = dict(self.__params_2_options(params)) + + is_arg = True + for name in self.args: + try: + value = params[name] + except KeyError: + is_arg = False + continue + if is_arg: + args += (value,) + else: + options[name] = value + return (args, options) def __params_2_options(self, params): |