diff options
Diffstat (limited to 'ipalib/frontend.py')
-rw-r--r-- | ipalib/frontend.py | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/ipalib/frontend.py b/ipalib/frontend.py index d320f02e..1c4fea8c 100644 --- a/ipalib/frontend.py +++ b/ipalib/frontend.py @@ -519,11 +519,12 @@ class Command(HasParam): if len(value) == 0: # None means "delete this attribute" value = None - if attr not in self.params: - if append and attr in newdict: - newdict[attr].append(value) - else: - newdict[attr] = [value] + if attr in self.params: + value = self.params[attr](value) + if append and attr in newdict: + newdict[attr].append(value) + else: + newdict[attr] = [value] return newdict def __attributes_2_entry(self, kw): @@ -540,7 +541,11 @@ class Command(HasParam): adddict = self.__convert_2_dict(kw['setattr'], append=False) if kw.get('addattr'): - adddict.update(self.__convert_2_dict(kw['addattr'])) + for (k, v) in self.__convert_2_dict(kw['addattr']).iteritems(): + if k in adddict: + adddict[k] += v + else: + adddict[k] = v for name in adddict: value = adddict[name] |