summaryrefslogtreecommitdiffstats
path: root/roles/lib_openshift_api/library/oc_obj.py
diff options
context:
space:
mode:
authorKenny Woodson <kwoodson@redhat.com>2016-04-04 16:07:02 -0400
committerKenny Woodson <kwoodson@redhat.com>2016-04-04 16:11:26 -0400
commitc667debd59e584530438198dfcf77403ed9c18c4 (patch)
tree472fc9c1219113dcc08ededb64d425fbcac8c576 /roles/lib_openshift_api/library/oc_obj.py
parente878e61bbe1d44f4c998b533131fd76ae8d40ebd (diff)
downloadopenshift-c667debd59e584530438198dfcf77403ed9c18c4.tar.gz
openshift-c667debd59e584530438198dfcf77403ed9c18c4.tar.bz2
openshift-c667debd59e584530438198dfcf77403ed9c18c4.tar.xz
openshift-c667debd59e584530438198dfcf77403ed9c18c4.zip
Fixing regexp. Periods are no longer allowed
Diffstat (limited to 'roles/lib_openshift_api/library/oc_obj.py')
-rw-r--r--roles/lib_openshift_api/library/oc_obj.py29
1 files changed, 22 insertions, 7 deletions
diff --git a/roles/lib_openshift_api/library/oc_obj.py b/roles/lib_openshift_api/library/oc_obj.py
index 27135e02e..c058072e3 100644
--- a/roles/lib_openshift_api/library/oc_obj.py
+++ b/roles/lib_openshift_api/library/oc_obj.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)
@@ -575,6 +583,13 @@ def main():
type='str',
choices=['dc', 'deploymentconfig',
'svc', 'service',
+ 'scc', 'securitycontextconstraints',
+ 'ns', 'namespace', 'project', 'projects',
+ 'is', 'imagestream',
+ 'istag', 'imagestreamtag',
+ 'bc', 'buildconfig',
+ 'routes',
+ 'node',
'secret',
]),
delete_after=dict(default=False, type='bool'),