diff options
Diffstat (limited to 'ipalib/parameters.py')
-rw-r--r-- | ipalib/parameters.py | 9 |
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: |