summaryrefslogtreecommitdiffstats
path: root/ipalib/frontend.py
diff options
context:
space:
mode:
authorJan Cholasta <jcholast@redhat.com>2016-05-19 14:25:47 +0200
committerJan Cholasta <jcholast@redhat.com>2016-05-25 16:06:26 +0200
commit3eaafe42b52d3c76517946fa4c2c1c120065b9fa (patch)
tree231bdec7db05fa19f0227c935a0fa3a74c193927 /ipalib/frontend.py
parent71f960457ed2e2fe53c4c8ea5c37b50180d89a6a (diff)
downloadfreeipa-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>
Diffstat (limited to 'ipalib/frontend.py')
-rw-r--r--ipalib/frontend.py15
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):