summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Cholasta <jcholast@redhat.com>2016-04-06 15:26:48 +0200
committerJan Cholasta <jcholast@redhat.com>2016-05-25 16:06:26 +0200
commitac2e9e84cf67b59488a07ffe932019ce3e23b41a (patch)
treec73ab49d3c9be49308360ec5eb7b90efd3a82b8e
parent213237c7fe053b43589de4bc64a871861da6db9a (diff)
downloadfreeipa-ac2e9e84cf67b59488a07ffe932019ce3e23b41a.tar.gz
freeipa-ac2e9e84cf67b59488a07ffe932019ce3e23b41a.tar.xz
freeipa-ac2e9e84cf67b59488a07ffe932019ce3e23b41a.zip
frontend: do not forward argument defaults to server
When forwarding a command call to a server, use only arguments which were explicitly specified by the caller. This increases compatibility between new clients and old servers. https://fedorahosted.org/freeipa/ticket/4739 Reviewed-By: David Kupka <dkupka@redhat.com>
-rw-r--r--ipalib/cli.py2
-rw-r--r--ipalib/frontend.py5
2 files changed, 5 insertions, 2 deletions
diff --git a/ipalib/cli.py b/ipalib/cli.py
index 3692e4e53..1c88a9b1f 100644
--- a/ipalib/cli.py
+++ b/ipalib/cli.py
@@ -1243,6 +1243,8 @@ class cli(backend.Executioner):
if param.autofill:
kw[param.name] = cmd.get_default_of(param.name, **kw)
if param.name in kw and kw[param.name] is not None:
+ if param.autofill:
+ del kw[param.name]
continue
if param.password:
kw[param.name] = self.Backend.textui.prompt_password(
diff --git a/ipalib/frontend.py b/ipalib/frontend.py
index c7bbead32..adad3707d 100644
--- a/ipalib/frontend.py
+++ b/ipalib/frontend.py
@@ -442,7 +442,8 @@ class Command(HasParam):
self.debug(
'raw: %s(%s)', self.name, ', '.join(self._repr_iter(**params))
)
- params.update(self.get_default(**params))
+ if self.api.env.in_server:
+ params.update(self.get_default(**params))
params = self.normalize(**params)
params = self.convert(**params)
self.debug(
@@ -598,7 +599,7 @@ class Command(HasParam):
# Backend.textui.prompt does not fill in the default value,
# we have to do it ourselves
if not raw.strip():
- raw = default
+ return None
try:
return param(raw, **kw)