summaryrefslogtreecommitdiff
path: root/heat/engine/resources/openstack/mistral/workflow.py
diff options
context:
space:
mode:
Diffstat (limited to 'heat/engine/resources/openstack/mistral/workflow.py')
-rw-r--r--heat/engine/resources/openstack/mistral/workflow.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/heat/engine/resources/openstack/mistral/workflow.py b/heat/engine/resources/openstack/mistral/workflow.py
index 3c9ea23bc..8794b23d7 100644
--- a/heat/engine/resources/openstack/mistral/workflow.py
+++ b/heat/engine/resources/openstack/mistral/workflow.py
@@ -46,6 +46,8 @@ class Workflow(signal_responder.SignalResponder,
entity = 'workflows'
+ always_replace_on_check_failed = False
+
PROPERTIES = (
NAME, TYPE, DESCRIPTION, INPUT, OUTPUT, TASKS, PARAMS,
TASK_DEFAULTS, USE_REQUEST_BODY_AS_INPUT, TAGS
@@ -596,6 +598,19 @@ class Workflow(signal_responder.SignalResponder,
executions.extend(self.data().get(self.EXECUTIONS).split(','))
self.data_set(self.EXECUTIONS, ','.join(executions))
+ def needs_replace_failed(self):
+ if self.resource_id is None:
+ return True
+
+ if self.properties[self.NAME] is None:
+ return True
+
+ with self.client_plugin().ignore_not_found:
+ self.client().workflows.get(self.resource_id)
+ return False
+ self.resource_id_set(None)
+ return True
+
def handle_update(self, json_snippet, tmpl_diff, prop_diff):
if prop_diff:
props = json_snippet.properties(self.properties_schema,