summaryrefslogtreecommitdiffstats
path: root/ipalib/public.py
diff options
context:
space:
mode:
authorJason Gerard DeRose <jderose@redhat.com>2008-08-13 05:14:12 +0000
committerJason Gerard DeRose <jderose@redhat.com>2008-08-13 05:14:12 +0000
commitb4ad681f410ee5be56b0b02f73306aa49e5c668a (patch)
treefd52bfcc9f1cade2edcaa0610ffed1f4aad022fc /ipalib/public.py
parent47fed6c4c2ec509f1283bf18c4aad6eff9a4b756 (diff)
downloadfreeipa.git-b4ad681f410ee5be56b0b02f73306aa49e5c668a.tar.gz
freeipa.git-b4ad681f410ee5be56b0b02f73306aa49e5c668a.tar.xz
freeipa.git-b4ad681f410ee5be56b0b02f73306aa49e5c668a.zip
143: Added errors.RequirementError exception; cmd.validate() now raises RequirementError if a required option is missing
Diffstat (limited to 'ipalib/public.py')
-rw-r--r--ipalib/public.py10
1 files changed, 7 insertions, 3 deletions
diff --git a/ipalib/public.py b/ipalib/public.py
index 9677358f..4c085ba3 100644
--- a/ipalib/public.py
+++ b/ipalib/public.py
@@ -199,9 +199,13 @@ class cmd(plugable.Plugin):
def validate(self, **kw):
self.print_call('validate', kw, 1)
- for (key, value) in kw.items():
- if key in self.options:
- self.options[key].validate(value)
+ for opt in self.options:
+ value = kw.get(opt.name, None)
+ if value is None:
+ if opt.required:
+ raise errors.RequirementError(opt.name)
+ continue
+ opt.validate(value)
def execute(self, **kw):
self.print_call('execute', kw, 1)