summaryrefslogtreecommitdiffstats
path: root/roles/lib_openshift/library/oc_serviceaccount.py
diff options
context:
space:
mode:
authorKenny Woodson <kwoodson@redhat.com>2018-02-13 20:19:33 -0500
committerKenny Woodson <kwoodson@redhat.com>2018-02-13 22:21:44 -0500
commit42fd5866e3eeb878f7d890005bf69365fade5482 (patch)
tree1482bdc24b7232a3103c4865f5306f304eac864b /roles/lib_openshift/library/oc_serviceaccount.py
parentea96a91a2775321aa60062e25934e22ad8be9de3 (diff)
downloadopenshift-42fd5866e3eeb878f7d890005bf69365fade5482.tar.gz
openshift-42fd5866e3eeb878f7d890005bf69365fade5482.tar.bz2
openshift-42fd5866e3eeb878f7d890005bf69365fade5482.tar.xz
openshift-42fd5866e3eeb878f7d890005bf69365fade5482.zip
Adding ability to yedit json files.
Diffstat (limited to 'roles/lib_openshift/library/oc_serviceaccount.py')
-rw-r--r--roles/lib_openshift/library/oc_serviceaccount.py24
1 files changed, 18 insertions, 6 deletions
diff --git a/roles/lib_openshift/library/oc_serviceaccount.py b/roles/lib_openshift/library/oc_serviceaccount.py
index 90d514292..db997ef9c 100644
--- a/roles/lib_openshift/library/oc_serviceaccount.py
+++ b/roles/lib_openshift/library/oc_serviceaccount.py
@@ -328,10 +328,16 @@ class Yedit(object): # pragma: no cover
pass
# Try to use RoundTripDumper if supported.
- try:
- Yedit._write(self.filename, yaml.dump(self.yaml_dict, Dumper=yaml.RoundTripDumper))
- except AttributeError:
- Yedit._write(self.filename, yaml.safe_dump(self.yaml_dict, default_flow_style=False))
+ if self.content_type == 'yaml':
+ try:
+ Yedit._write(self.filename, yaml.dump(self.yaml_dict, Dumper=yaml.RoundTripDumper))
+ except AttributeError:
+ Yedit._write(self.filename, yaml.safe_dump(self.yaml_dict, default_flow_style=False))
+ elif self.content_type == 'json':
+ Yedit._write(self.filename, json.dumps(self.yaml_dict, indent=4, sort_keys=True))
+ else:
+ raise YeditException('Unsupported content_type: {}.'.format(self.content_type) +
+ 'Please specify a content_type of yaml or json.')
return (True, self.yaml_dict)
@@ -379,7 +385,7 @@ class Yedit(object): # pragma: no cover
# Try to use RoundTripLoader if supported.
try:
- self.yaml_dict = yaml.safe_load(contents, yaml.RoundTripLoader)
+ self.yaml_dict = yaml.load(contents, yaml.RoundTripLoader)
except AttributeError:
self.yaml_dict = yaml.safe_load(contents)
@@ -624,7 +630,12 @@ class Yedit(object): # pragma: no cover
curr_value = invalue
if val_type == 'yaml':
- curr_value = yaml.load(invalue)
+ try:
+ # AUDIT:maybe-no-member makes sense due to different yaml libraries
+ # pylint: disable=maybe-no-member
+ curr_value = yaml.safe_load(invalue, Loader=yaml.RoundTripLoader)
+ except AttributeError:
+ curr_value = yaml.safe_load(invalue)
elif val_type == 'json':
curr_value = json.loads(invalue)
@@ -693,6 +704,7 @@ class Yedit(object): # pragma: no cover
'''perform the idempotent crud operations'''
yamlfile = Yedit(filename=params['src'],
backup=params['backup'],
+ content_type=params['content_type'],
separator=params['separator'])
state = params['state']