summaryrefslogtreecommitdiffstats
path: root/ipalib/public.py
diff options
context:
space:
mode:
authorJason Gerard DeRose <jderose@redhat.com>2008-09-18 23:53:23 +0000
committerJason Gerard DeRose <jderose@redhat.com>2008-09-18 23:53:23 +0000
commitf29c827d06cb455709d3b07baf727913381709ca (patch)
tree029618fe0cc03cf8a9114bbc95b99f2fe67bf4db /ipalib/public.py
parente0b900894fcc884fbde26ba78fa61aedec3843e9 (diff)
downloadfreeipa.git-f29c827d06cb455709d3b07baf727913381709ca.tar.gz
freeipa.git-f29c827d06cb455709d3b07baf727913381709ca.tar.xz
freeipa.git-f29c827d06cb455709d3b07baf727913381709ca.zip
301: Command.args_to_kw() now raises ArgumentError if more args than max_args are given
Diffstat (limited to 'ipalib/public.py')
-rw-r--r--ipalib/public.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/ipalib/public.py b/ipalib/public.py
index c2624f67..967f88ce 100644
--- a/ipalib/public.py
+++ b/ipalib/public.py
@@ -388,6 +388,14 @@ class Command(plugable.Plugin):
yield None
def args_to_kw(self, *values):
+ if self.max_args is not None and len(values) > self.max_args:
+ if self.max_args == 0:
+ raise errors.ArgumentError(self, 'takes no arguments')
+ if self.max_args == 1:
+ raise errors.ArgumentError(self, 'takes at most 1 argument')
+ raise errors.ArgumentError(self,
+ 'takes at most %d arguments' % len(self.args)
+ )
return dict(self.__args_to_kw_iter(values))
def __args_to_kw_iter(self, values):