Factor out error returns in state module
Change-Id: Id111f7bfbcc9ac582fede555a6e8818b4fefa97a
diff --git a/_states/helm_release.py b/_states/helm_release.py
index d736045..1004afb 100644
--- a/_states/helm_release.py
+++ b/_states/helm_release.py
@@ -3,35 +3,36 @@
from salt.serializers import yaml
+
+def failure(name, message):
+ return {
+ 'name': name,
+ 'changes': {},
+ 'result': False,
+ 'comment': message,
+ }
+
+
def present(name, chart_name, version=None, values=None):
exists = __salt__['helm.release_exists'](name)
if not exists:
result = __salt__['helm.release_create'](
name, chart_name, version, values)
- if result:
- return {
- 'name': name,
- 'changes': {name: 'CREATED'},
- 'result': True,
- 'comment': 'Release "{}" was created'.format(name),
- }
- else:
- return {
- 'name': name,
- 'changes': {},
- 'result': False,
- 'comment': 'Failed to create release "{}"'.format(name),
- }
+ if not result:
+ return failure(name, 'Failed to create release "{}"'.format(name))
+ return {
+ 'name': name,
+ 'changes': {name: 'CREATED'},
+ 'result': True,
+ 'comment': 'Release "{}" was created'.format(name),
+ }
+
old_values = __salt__['helm.get_values'](name)
result = __salt__['helm.release_upgrade'](
name, chart_name, version, values)
if not result:
- return {
- 'name': name,
- 'changes': {},
- 'result': False,
- 'comment': 'Failed to create release "{}"'.format(name),
- }
+ return failure(name, 'Failed to create release "{}"'.format(name))
+
new_values = __salt__['helm.get_values'](name)
if new_values == old_values:
return {
@@ -40,6 +41,7 @@
'result': True,
'comment': 'Release "{}" already exists'.format(name),
}
+
old_str = yaml.serialize(old_values, default_flow_style=False)
new_str = yaml.serialize(new_values, default_flow_style=False)
diff = difflib.unified_diff(
@@ -63,12 +65,7 @@
}
result = __salt__['helm.release_delete'](name)
if not result:
- return {
- 'name': name,
- 'changes': {},
- 'result': False,
- 'comment': 'Failed to delete release "{}"'.format(name),
- }
+ return failure(name, 'Failed to delete release "{}"'.format(name))
return {
'name': name,
'changes': {name: 'DELETED'},