summaryrefslogtreecommitdiffstats
path: root/ipalib/frontend.py
diff options
context:
space:
mode:
authorJason Gerard DeRose <jderose@redhat.com>2008-09-24 06:25:12 +0000
committerJason Gerard DeRose <jderose@redhat.com>2008-09-24 06:25:12 +0000
commit6bedb15674ba941c15832ac84387a40ecd2a2879 (patch)
tree6db19de57d0edd207cacfc15b4fc9c0c4950b346 /ipalib/frontend.py
parentd56f4c643b486bfbcb6523a0fe80252343fa594e (diff)
downloadfreeipa.git-6bedb15674ba941c15832ac84387a40ecd2a2879.tar.gz
freeipa.git-6bedb15674ba941c15832ac84387a40ecd2a2879.tar.xz
freeipa.git-6bedb15674ba941c15832ac84387a40ecd2a2879.zip
332: Param.normalize() now returns None if multivalue and len() == 0
Diffstat (limited to 'ipalib/frontend.py')
-rw-r--r--ipalib/frontend.py15
1 files changed, 10 insertions, 5 deletions
diff --git a/ipalib/frontend.py b/ipalib/frontend.py
index 59cdf69f..5971f9df 100644
--- a/ipalib/frontend.py
+++ b/ipalib/frontend.py
@@ -105,6 +105,15 @@ class Param(plugable.ReadOnly):
self.rules = (type_.validate,) + rules
lock(self)
+ def __if_multivalue(self, value, scalar):
+ if self.multivalue:
+ if type(value) in (tuple, list):
+ if len(value) == 0:
+ return None
+ return tuple(scalar(v) for v in value)
+ return (scalar(value),) # tuple
+ return scalar(value)
+
def __normalize_scalar(self, value):
if not isinstance(value, basestring):
return value
@@ -131,11 +140,7 @@ class Param(plugable.ReadOnly):
"""
if self.__normalize is None:
return value
- if self.multivalue:
- if type(value) in (tuple, list):
- return tuple(self.__normalize_scalar(v) for v in value)
- return (self.__normalize_scalar(value),) # tuple
- return self.__normalize_scalar(value)
+ return self.__if_multivalue(value, self.__normalize_scalar)
def __convert_scalar(self, value, index=None):
if value is None: