diff options
author | Matt Woodson <mwoodson@gmail.com> | 2016-04-04 16:16:25 -0400 |
---|---|---|
committer | Matt Woodson <mwoodson@gmail.com> | 2016-04-04 16:16:25 -0400 |
commit | 9db67b8095b206efefeb2c3def07e1e4394733d0 (patch) | |
tree | ecd55d566adf0d2ccfaeaaec9c208af3fceae8bb /roles/lib_openshift_api/library/oc_secret.py | |
parent | 63af28f86977e2d870153df98eae497a3c4680cf (diff) | |
parent | c667debd59e584530438198dfcf77403ed9c18c4 (diff) | |
download | openshift-9db67b8095b206efefeb2c3def07e1e4394733d0.tar.gz openshift-9db67b8095b206efefeb2c3def07e1e4394733d0.tar.bz2 openshift-9db67b8095b206efefeb2c3def07e1e4394733d0.tar.xz openshift-9db67b8095b206efefeb2c3def07e1e4394733d0.zip |
Merge pull request #1704 from kwoodson/yeditfix
yedit now handles periods in key names
Diffstat (limited to 'roles/lib_openshift_api/library/oc_secret.py')
-rw-r--r-- | roles/lib_openshift_api/library/oc_secret.py | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/roles/lib_openshift_api/library/oc_secret.py b/roles/lib_openshift_api/library/oc_secret.py index 8e5800e52..a03022e35 100644 --- a/roles/lib_openshift_api/library/oc_secret.py +++ b/roles/lib_openshift_api/library/oc_secret.py @@ -285,8 +285,8 @@ class YeditException(Exception): class Yedit(object): ''' Class to modify yaml files ''' - re_valid_key = r"(((\[-?\d+\])|(\w+)).?)+$" - re_key = r"(?:\[(-?\d+)\])|(\w+)" + re_valid_key = r"(((\[-?\d+\])|([a-zA-Z-./]+)).?)+$" + re_key = r"(?:\[(-?\d+)\])|([a-zA-Z-./]+)" def __init__(self, filename=None, content=None, content_type='yaml'): self.content = content @@ -326,11 +326,13 @@ class Yedit(object): if key_indexes[-1][0]: if isinstance(data, list) and int(key_indexes[-1][0]) <= len(data) - 1: del data[int(key_indexes[-1][0])] + return True # expected dict entry elif key_indexes[-1][1]: if isinstance(data, dict): del data[key_indexes[-1][1]] + return True @staticmethod def add_entry(data, key, item=None): @@ -447,7 +449,7 @@ class Yedit(object): return entry def delete(self, key): - ''' put key, value into a yaml file ''' + ''' remove key from a dict''' try: entry = Yedit.get_entry(self.yaml_dict, key) except KeyError as _: @@ -455,11 +457,14 @@ class Yedit(object): if not entry: return (False, self.yaml_dict) - Yedit.remove_entry(self.yaml_dict, key) + result = Yedit.remove_entry(self.yaml_dict, key) + if not result: + return (False, self.yaml_dict) + return (True, self.yaml_dict) def put(self, key, value): - ''' put key, value into a yaml file ''' + ''' put key, value into a dict ''' try: entry = Yedit.get_entry(self.yaml_dict, key) except KeyError as _: @@ -468,11 +473,14 @@ class Yedit(object): if entry == value: return (False, self.yaml_dict) - Yedit.add_entry(self.yaml_dict, key, value) + result = Yedit.add_entry(self.yaml_dict, key, value) + if not result: + return (False, self.yaml_dict) + return (True, self.yaml_dict) def create(self, key, value): - ''' create the file ''' + ''' create a yaml file ''' if not self.exists(): self.yaml_dict = {key: value} return (True, self.yaml_dict) |