diff options
Diffstat (limited to 'ipa-python')
-rw-r--r-- | ipa-python/ipautil.py | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/ipa-python/ipautil.py b/ipa-python/ipautil.py index 5f7d396aa..7006e1951 100644 --- a/ipa-python/ipautil.py +++ b/ipa-python/ipautil.py @@ -528,6 +528,7 @@ class AttributeValueCompleter: self.lhs_delims = lhs_delims self.operator = operator self.strip_rhs = strip_rhs + self.pairs = None self._reset() def _reset(self): @@ -589,6 +590,13 @@ class AttributeValueCompleter: and it should return the default value for the attriubte or None''' if not self.lhs_complete: raise ValueError("attribute not parsed") + + # If the user previously provided a value let that override the supplied default + if self.pairs is not None: + prev_value = self.pairs.get(self.lhs) + if prev_value is not None: return prev_value + + # No previous user provided value, query for a default default_value_type = type(self.default_value) if default_value_type is DictType: return self.default_value.get(self.lhs, None) @@ -663,7 +671,7 @@ class AttributeValueCompleter: return None, None def get_pairs(self, prompt, mandatory_attrs=None, validate_callback=None, must_match=True, value_required=True): - pairs = {} + self.pairs = {} if mandatory_attrs: mandatory_attrs_remaining = mandatory_attrs[:] else: @@ -702,8 +710,8 @@ class AttributeValueCompleter: except ValueError: pass - pairs[attribute] = value - return pairs + self.pairs[attribute] = value + return self.pairs class ItemCompleter: ''' |