Merge pull request #1 from mgogoi/feat/OPS-3453/dry-run-k8s

OPS-3453 - Pass dry_run=All to OpenShift when check mode is enabled.
This commit is contained in:
Shaun Smiley
2020-05-12 14:23:19 -07:00
committed by GitHub

View File

@@ -379,21 +379,16 @@ class KubernetesRawModule(KubernetesAnsibleModule):
self.fail_json(msg="Resource replacement timed out", **result) self.fail_json(msg="Resource replacement timed out", **result)
return result return result
# Differences exist between the existing obj and requested params # Handle check mode inside of self.patch_resource()
if self.check_mode: if LooseVersion(self.openshift_version) < LooseVersion("0.6.2"):
k8s_obj = dict_merge(existing.to_dict(), definition) k8s_obj, error = self.patch_resource(resource, definition, existing, name,
namespace)
else: else:
if LooseVersion(self.openshift_version) < LooseVersion("0.6.2"): for merge_type in self.params['merge_type'] or ['strategic-merge', 'merge']:
k8s_obj, error = self.patch_resource(resource, definition, existing, name, k8s_obj, error = self.patch_resource(resource, definition, existing, name,
namespace) namespace, merge_type=merge_type)
else: if not error:
for merge_type in self.params['merge_type'] or ['strategic-merge', 'merge']: break
k8s_obj, error = self.patch_resource(resource, definition, existing, name,
namespace, merge_type=merge_type)
if not error:
break
if error:
self.fail_json(**error)
success = True success = True
result['result'] = k8s_obj result['result'] = k8s_obj
@@ -413,6 +408,11 @@ class KubernetesRawModule(KubernetesAnsibleModule):
params = dict(name=name, namespace=namespace) params = dict(name=name, namespace=namespace)
if merge_type: if merge_type:
params['content_type'] = 'application/{0}-patch+json'.format(merge_type) params['content_type'] = 'application/{0}-patch+json'.format(merge_type)
# Pass dry_run=All to openshift
if self.check_mode:
params['dry_run'] = 'All'
k8s_obj = resource.patch(definition, **params).to_dict() k8s_obj = resource.patch(definition, **params).to_dict()
match, diffs = self.diff_objects(existing.to_dict(), k8s_obj) match, diffs = self.diff_objects(existing.to_dict(), k8s_obj)
error = {} error = {}