summaryrefslogtreecommitdiffstats
path: root/ipalib
diff options
context:
space:
mode:
authorPetr Viktorin <pviktori@redhat.com>2012-03-22 04:27:48 -0400
committerRob Crittenden <rcritten@redhat.com>2012-03-28 22:01:36 -0400
commitbc7111a3ea15a9370fb860c6aefe652afac508a8 (patch)
tree187037d9c2a444c4182f22e8fbf4243cf0954805 /ipalib
parent471e06fc3fd92fb4fcb501242030f4ff6b893ded (diff)
downloadfreeipa.git-bc7111a3ea15a9370fb860c6aefe652afac508a8.tar.gz
freeipa.git-bc7111a3ea15a9370fb860c6aefe652afac508a8.tar.xz
freeipa.git-bc7111a3ea15a9370fb860c6aefe652afac508a8.zip
Allow multi-line CSV parameters
Feed individual lines of input into the CSV parser, and include all lines in the output. https://fedorahosted.org/freeipa/ticket/2402
Diffstat (limited to 'ipalib')
-rw-r--r--ipalib/parameters.py11
1 files changed, 6 insertions, 5 deletions
diff --git a/ipalib/parameters.py b/ipalib/parameters.py
index 5040234a..60fb5023 100644
--- a/ipalib/parameters.py
+++ b/ipalib/parameters.py
@@ -715,14 +715,15 @@ class Param(ReadOnly):
if self.csv:
if type(value) not in (tuple, list):
value = (value,)
- newval = ()
+ newval = []
for v in value:
if isinstance(v, basestring):
- csvreader = self.__unicode_csv_reader([unicode(v)])
- newval += tuple(csvreader.next()) #pylint: disable=E1101
+ lines = unicode(v).splitlines()
+ for row in self.__unicode_csv_reader(lines):
+ newval.extend(row)
else:
- newval += (v,)
- return newval
+ newval.append(v)
+ return tuple(newval)
else:
return value