summaryrefslogtreecommitdiffstats
path: root/ipalib/parameters.py
diff options
context:
space:
mode:
Diffstat (limited to 'ipalib/parameters.py')
-rw-r--r--ipalib/parameters.py9
1 files changed, 5 insertions, 4 deletions
diff --git a/ipalib/parameters.py b/ipalib/parameters.py
index b1525b4d5..48155daf9 100644
--- a/ipalib/parameters.py
+++ b/ipalib/parameters.py
@@ -558,9 +558,9 @@ class Param(ReadOnly):
else:
value = self.convert(self.normalize(value))
if hasattr(self, 'env'):
- self.validate(value, self.env.context) #pylint: disable=E1101
+ self.validate(value, self.env.context, supplied=self.name in kw) #pylint: disable=E1101
else:
- self.validate(value)
+ self.validate(value, supplied=self.name in kw)
return value
def kw(self):
@@ -820,15 +820,16 @@ class Param(ReadOnly):
error=ugettext(self.type_error),
)
- def validate(self, value, context=None):
+ def validate(self, value, context=None, supplied=None):
"""
Check validity of ``value``.
:param value: A proposed value for this parameter.
:param context: The context we are running in.
+ :param supplied: True if this parameter was supplied explicitly.
"""
if value is None:
- if self.required:
+ if self.required or (supplied and 'nonempty' in self.flags):
if context == 'cli':
raise RequirementError(name=self.cli_name)
else: