summaryrefslogtreecommitdiffstats
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
parentea96a91a2775321aa60062e25934e22ad8be9de3 (diff)
downloadopenshift-42fd5866e3eeb878f7d890005bf69365fade5482.tar.gz
openshift-42fd5866e3eeb878f7d890005bf69365fade5482.tar.bz2
openshift-42fd5866e3eeb878f7d890005bf69365fade5482.tar.xz
openshift-42fd5866e3eeb878f7d890005bf69365fade5482.zip
Adding ability to yedit json files.
-rw-r--r--roles/lib_openshift/library/oc_adm_ca_server_cert.py24
-rw-r--r--roles/lib_openshift/library/oc_adm_csr.py24
-rw-r--r--roles/lib_openshift/library/oc_adm_manage_node.py24
-rw-r--r--roles/lib_openshift/library/oc_adm_policy_group.py24
-rw-r--r--roles/lib_openshift/library/oc_adm_policy_user.py24
-rw-r--r--roles/lib_openshift/library/oc_adm_registry.py24
-rw-r--r--roles/lib_openshift/library/oc_adm_router.py24
-rw-r--r--roles/lib_openshift/library/oc_clusterrole.py24
-rw-r--r--roles/lib_openshift/library/oc_configmap.py24
-rw-r--r--roles/lib_openshift/library/oc_edit.py24
-rw-r--r--roles/lib_openshift/library/oc_env.py24
-rw-r--r--roles/lib_openshift/library/oc_group.py24
-rw-r--r--roles/lib_openshift/library/oc_image.py24
-rw-r--r--roles/lib_openshift/library/oc_label.py24
-rw-r--r--roles/lib_openshift/library/oc_obj.py24
-rw-r--r--roles/lib_openshift/library/oc_objectvalidator.py24
-rw-r--r--roles/lib_openshift/library/oc_process.py24
-rw-r--r--roles/lib_openshift/library/oc_project.py24
-rw-r--r--roles/lib_openshift/library/oc_pvc.py24
-rw-r--r--roles/lib_openshift/library/oc_route.py24
-rw-r--r--roles/lib_openshift/library/oc_scale.py24
-rw-r--r--roles/lib_openshift/library/oc_secret.py24
-rw-r--r--roles/lib_openshift/library/oc_service.py24
-rw-r--r--roles/lib_openshift/library/oc_serviceaccount.py24
-rw-r--r--roles/lib_openshift/library/oc_serviceaccount_secret.py24
-rw-r--r--roles/lib_openshift/library/oc_storageclass.py24
-rw-r--r--roles/lib_openshift/library/oc_user.py24
-rw-r--r--roles/lib_openshift/library/oc_version.py24
-rw-r--r--roles/lib_openshift/library/oc_volume.py24
-rw-r--r--roles/lib_utils/library/yedit.py26
-rw-r--r--roles/lib_utils/src/ansible/yedit.py2
-rw-r--r--roles/lib_utils/src/class/yedit.py24
32 files changed, 560 insertions, 188 deletions
diff --git a/roles/lib_openshift/library/oc_adm_ca_server_cert.py b/roles/lib_openshift/library/oc_adm_ca_server_cert.py
index bfed58011..379d9a83e 100644
--- a/roles/lib_openshift/library/oc_adm_ca_server_cert.py
+++ b/roles/lib_openshift/library/oc_adm_ca_server_cert.py
@@ -362,10 +362,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)
@@ -413,7 +419,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)
@@ -658,7 +664,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)
@@ -727,6 +738,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']
diff --git a/roles/lib_openshift/library/oc_adm_csr.py b/roles/lib_openshift/library/oc_adm_csr.py
index c78e379d5..3f33d50cd 100644
--- a/roles/lib_openshift/library/oc_adm_csr.py
+++ b/roles/lib_openshift/library/oc_adm_csr.py
@@ -340,10 +340,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)
@@ -391,7 +397,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)
@@ -636,7 +642,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)
@@ -705,6 +716,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']
diff --git a/roles/lib_openshift/library/oc_adm_manage_node.py b/roles/lib_openshift/library/oc_adm_manage_node.py
index b1b2cb5b5..1cf5b4953 100644
--- a/roles/lib_openshift/library/oc_adm_manage_node.py
+++ b/roles/lib_openshift/library/oc_adm_manage_node.py
@@ -348,10 +348,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)
@@ -399,7 +405,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)
@@ -644,7 +650,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)
@@ -713,6 +724,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']
diff --git a/roles/lib_openshift/library/oc_adm_policy_group.py b/roles/lib_openshift/library/oc_adm_policy_group.py
index 2773201d7..70a82aaf6 100644
--- a/roles/lib_openshift/library/oc_adm_policy_group.py
+++ b/roles/lib_openshift/library/oc_adm_policy_group.py
@@ -334,10 +334,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)
@@ -385,7 +391,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)
@@ -630,7 +636,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)
@@ -699,6 +710,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']
diff --git a/roles/lib_openshift/library/oc_adm_policy_user.py b/roles/lib_openshift/library/oc_adm_policy_user.py
index 25cbed8b7..6796d7475 100644
--- a/roles/lib_openshift/library/oc_adm_policy_user.py
+++ b/roles/lib_openshift/library/oc_adm_policy_user.py
@@ -348,10 +348,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)
@@ -399,7 +405,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)
@@ -644,7 +650,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)
@@ -713,6 +724,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']
diff --git a/roles/lib_openshift/library/oc_adm_registry.py b/roles/lib_openshift/library/oc_adm_registry.py
index e26214316..8b1e9e04f 100644
--- a/roles/lib_openshift/library/oc_adm_registry.py
+++ b/roles/lib_openshift/library/oc_adm_registry.py
@@ -452,10 +452,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)
@@ -503,7 +509,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)
@@ -748,7 +754,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)
@@ -817,6 +828,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']
diff --git a/roles/lib_openshift/library/oc_adm_router.py b/roles/lib_openshift/library/oc_adm_router.py
index 62fca19e5..c1d19ff88 100644
--- a/roles/lib_openshift/library/oc_adm_router.py
+++ b/roles/lib_openshift/library/oc_adm_router.py
@@ -477,10 +477,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)
@@ -528,7 +534,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)
@@ -773,7 +779,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)
@@ -842,6 +853,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']
diff --git a/roles/lib_openshift/library/oc_clusterrole.py b/roles/lib_openshift/library/oc_clusterrole.py
index 0c4bfa01f..884ed706f 100644
--- a/roles/lib_openshift/library/oc_clusterrole.py
+++ b/roles/lib_openshift/library/oc_clusterrole.py
@@ -326,10 +326,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)
@@ -377,7 +383,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)
@@ -622,7 +628,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)
@@ -691,6 +702,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']
diff --git a/roles/lib_openshift/library/oc_configmap.py b/roles/lib_openshift/library/oc_configmap.py
index 36e6111eb..f188ed2fe 100644
--- a/roles/lib_openshift/library/oc_configmap.py
+++ b/roles/lib_openshift/library/oc_configmap.py
@@ -332,10 +332,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)
@@ -383,7 +389,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)
@@ -628,7 +634,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)
@@ -697,6 +708,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']
diff --git a/roles/lib_openshift/library/oc_edit.py b/roles/lib_openshift/library/oc_edit.py
index ab4f153c7..bfb7c5908 100644
--- a/roles/lib_openshift/library/oc_edit.py
+++ b/roles/lib_openshift/library/oc_edit.py
@@ -376,10 +376,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)
@@ -427,7 +433,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)
@@ -672,7 +678,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)
@@ -741,6 +752,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']
diff --git a/roles/lib_openshift/library/oc_env.py b/roles/lib_openshift/library/oc_env.py
index f334ddaa4..d57bea625 100644
--- a/roles/lib_openshift/library/oc_env.py
+++ b/roles/lib_openshift/library/oc_env.py
@@ -343,10 +343,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)
@@ -394,7 +400,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)
@@ -639,7 +645,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)
@@ -708,6 +719,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']
diff --git a/roles/lib_openshift/library/oc_group.py b/roles/lib_openshift/library/oc_group.py
index 7e9078339..ef01d01d7 100644
--- a/roles/lib_openshift/library/oc_group.py
+++ b/roles/lib_openshift/library/oc_group.py
@@ -316,10 +316,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)
@@ -367,7 +373,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)
@@ -612,7 +618,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)
@@ -681,6 +692,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']
diff --git a/roles/lib_openshift/library/oc_image.py b/roles/lib_openshift/library/oc_image.py
index e71e2eb5c..b479857ad 100644
--- a/roles/lib_openshift/library/oc_image.py
+++ b/roles/lib_openshift/library/oc_image.py
@@ -335,10 +335,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)
@@ -386,7 +392,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)
@@ -631,7 +637,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)
@@ -700,6 +711,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']
diff --git a/roles/lib_openshift/library/oc_label.py b/roles/lib_openshift/library/oc_label.py
index ac3279ef8..93c11970e 100644
--- a/roles/lib_openshift/library/oc_label.py
+++ b/roles/lib_openshift/library/oc_label.py
@@ -352,10 +352,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)
@@ -403,7 +409,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)
@@ -648,7 +654,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)
@@ -717,6 +728,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']
diff --git a/roles/lib_openshift/library/oc_obj.py b/roles/lib_openshift/library/oc_obj.py
index ca53c4c97..0512cd34e 100644
--- a/roles/lib_openshift/library/oc_obj.py
+++ b/roles/lib_openshift/library/oc_obj.py
@@ -355,10 +355,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)
@@ -406,7 +412,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)
@@ -651,7 +657,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)
@@ -720,6 +731,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']
diff --git a/roles/lib_openshift/library/oc_objectvalidator.py b/roles/lib_openshift/library/oc_objectvalidator.py
index 877c78d93..24da3e639 100644
--- a/roles/lib_openshift/library/oc_objectvalidator.py
+++ b/roles/lib_openshift/library/oc_objectvalidator.py
@@ -287,10 +287,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)
@@ -338,7 +344,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)
@@ -583,7 +589,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)
@@ -652,6 +663,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']
diff --git a/roles/lib_openshift/library/oc_process.py b/roles/lib_openshift/library/oc_process.py
index 507170424..30b60ebc5 100644
--- a/roles/lib_openshift/library/oc_process.py
+++ b/roles/lib_openshift/library/oc_process.py
@@ -344,10 +344,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)
@@ -395,7 +401,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)
@@ -640,7 +646,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)
@@ -709,6 +720,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']
diff --git a/roles/lib_openshift/library/oc_project.py b/roles/lib_openshift/library/oc_project.py
index 347e879ca..7b8ca4a59 100644
--- a/roles/lib_openshift/library/oc_project.py
+++ b/roles/lib_openshift/library/oc_project.py
@@ -341,10 +341,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)
@@ -392,7 +398,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)
@@ -637,7 +643,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)
@@ -706,6 +717,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']
diff --git a/roles/lib_openshift/library/oc_pvc.py b/roles/lib_openshift/library/oc_pvc.py
index 93c96b817..342865048 100644
--- a/roles/lib_openshift/library/oc_pvc.py
+++ b/roles/lib_openshift/library/oc_pvc.py
@@ -348,10 +348,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)
@@ -399,7 +405,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)
@@ -644,7 +650,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)
@@ -713,6 +724,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']
diff --git a/roles/lib_openshift/library/oc_route.py b/roles/lib_openshift/library/oc_route.py
index 3369cf134..5106925b4 100644
--- a/roles/lib_openshift/library/oc_route.py
+++ b/roles/lib_openshift/library/oc_route.py
@@ -392,10 +392,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)
@@ -443,7 +449,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)
@@ -688,7 +694,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)
@@ -757,6 +768,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']
diff --git a/roles/lib_openshift/library/oc_scale.py b/roles/lib_openshift/library/oc_scale.py
index 1b6202a26..d07c0fc2e 100644
--- a/roles/lib_openshift/library/oc_scale.py
+++ b/roles/lib_openshift/library/oc_scale.py
@@ -330,10 +330,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)
@@ -381,7 +387,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)
@@ -626,7 +632,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)
@@ -695,6 +706,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']
diff --git a/roles/lib_openshift/library/oc_secret.py b/roles/lib_openshift/library/oc_secret.py
index 732299e48..998daae1a 100644
--- a/roles/lib_openshift/library/oc_secret.py
+++ b/roles/lib_openshift/library/oc_secret.py
@@ -388,10 +388,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)
@@ -439,7 +445,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)
@@ -684,7 +690,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)
@@ -753,6 +764,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']
diff --git a/roles/lib_openshift/library/oc_service.py b/roles/lib_openshift/library/oc_service.py
index a6cf764ff..81977b590 100644
--- a/roles/lib_openshift/library/oc_service.py
+++ b/roles/lib_openshift/library/oc_service.py
@@ -395,10 +395,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)
@@ -446,7 +452,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)
@@ -691,7 +697,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)
@@ -760,6 +771,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']
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']
diff --git a/roles/lib_openshift/library/oc_serviceaccount_secret.py b/roles/lib_openshift/library/oc_serviceaccount_secret.py
index 0d9acac0e..7ad380631 100644
--- a/roles/lib_openshift/library/oc_serviceaccount_secret.py
+++ b/roles/lib_openshift/library/oc_serviceaccount_secret.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']
diff --git a/roles/lib_openshift/library/oc_storageclass.py b/roles/lib_openshift/library/oc_storageclass.py
index 6fb5a94e9..401572536 100644
--- a/roles/lib_openshift/library/oc_storageclass.py
+++ b/roles/lib_openshift/library/oc_storageclass.py
@@ -346,10 +346,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)
@@ -397,7 +403,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)
@@ -642,7 +648,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)
@@ -711,6 +722,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']
diff --git a/roles/lib_openshift/library/oc_user.py b/roles/lib_openshift/library/oc_user.py
index feb69348b..4e653fc47 100644
--- a/roles/lib_openshift/library/oc_user.py
+++ b/roles/lib_openshift/library/oc_user.py
@@ -388,10 +388,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)
@@ -439,7 +445,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)
@@ -684,7 +690,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)
@@ -753,6 +764,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']
diff --git a/roles/lib_openshift/library/oc_version.py b/roles/lib_openshift/library/oc_version.py
index 0f024c048..b918f180c 100644
--- a/roles/lib_openshift/library/oc_version.py
+++ b/roles/lib_openshift/library/oc_version.py
@@ -300,10 +300,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)
@@ -351,7 +357,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)
@@ -596,7 +602,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)
@@ -665,6 +676,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']
diff --git a/roles/lib_openshift/library/oc_volume.py b/roles/lib_openshift/library/oc_volume.py
index 6f409f979..f20546969 100644
--- a/roles/lib_openshift/library/oc_volume.py
+++ b/roles/lib_openshift/library/oc_volume.py
@@ -377,10 +377,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)
@@ -428,7 +434,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)
@@ -673,7 +679,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)
@@ -742,6 +753,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']
diff --git a/roles/lib_utils/library/yedit.py b/roles/lib_utils/library/yedit.py
index cf5c2e423..4bd5171a7 100644
--- a/roles/lib_utils/library/yedit.py
+++ b/roles/lib_utils/library/yedit.py
@@ -410,10 +410,16 @@ class Yedit(object):
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)
@@ -461,7 +467,7 @@ class Yedit(object):
# 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)
@@ -706,7 +712,12 @@ class Yedit(object):
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)
@@ -775,6 +786,7 @@ class Yedit(object):
'''perform the idempotent crud operations'''
yamlfile = Yedit(filename=params['src'],
backup=params['backup'],
+ content_type=params['content_type'],
separator=params['separator'])
state = params['state']
@@ -885,7 +897,7 @@ def main():
debug=dict(default=False, type='bool'),
src=dict(default=None, type='str'),
content=dict(default=None),
- content_type=dict(default='dict', choices=['dict']),
+ content_type=dict(default='yaml', choices=['yaml', 'json']),
key=dict(default='', type='str'),
value=dict(),
value_type=dict(default='', type='str'),
diff --git a/roles/lib_utils/src/ansible/yedit.py b/roles/lib_utils/src/ansible/yedit.py
index c4b818cf1..c2ae08654 100644
--- a/roles/lib_utils/src/ansible/yedit.py
+++ b/roles/lib_utils/src/ansible/yedit.py
@@ -13,7 +13,7 @@ def main():
debug=dict(default=False, type='bool'),
src=dict(default=None, type='str'),
content=dict(default=None),
- content_type=dict(default='dict', choices=['dict']),
+ content_type=dict(default='yaml', choices=['yaml', 'json']),
key=dict(default='', type='str'),
value=dict(),
value_type=dict(default='', type='str'),
diff --git a/roles/lib_utils/src/class/yedit.py b/roles/lib_utils/src/class/yedit.py
index 0a4fbe07a..5f69d797c 100644
--- a/roles/lib_utils/src/class/yedit.py
+++ b/roles/lib_utils/src/class/yedit.py
@@ -207,10 +207,16 @@ class Yedit(object):
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)
@@ -258,7 +264,7 @@ class Yedit(object):
# 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)
@@ -503,7 +509,12 @@ class Yedit(object):
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)
@@ -572,6 +583,7 @@ class Yedit(object):
'''perform the idempotent crud operations'''
yamlfile = Yedit(filename=params['src'],
backup=params['backup'],
+ content_type=params['content_type'],
separator=params['separator'])
state = params['state']