summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuul <zuul@review.openstack.org>2017-11-08 01:33:19 +0000
committerGerrit Code Review <review@openstack.org>2017-11-08 01:33:19 +0000
commit5b37c8dace4f8d0a51398a93fe96a09ee13cd9aa (patch)
treea7fadba10d7d755c1032e8f2a847ab5385adc20c
parentc3c2713c40c6f5b45143e73f57a8034514576500 (diff)
parenta0fa6261759bb160f286ab5d6de987a59fc41385 (diff)
downloadheat-5b37c8dace4f8d0a51398a93fe96a09ee13cd9aa.tar.gz
Merge "Fix workflow update" into stable/ocata
-rw-r--r--heat/engine/resources/openstack/mistral/workflow.py6
-rw-r--r--heat/tests/openstack/mistral/test_workflow.py13
2 files changed, 14 insertions, 5 deletions
diff --git a/heat/engine/resources/openstack/mistral/workflow.py b/heat/engine/resources/openstack/mistral/workflow.py
index bdb1c3821..e5b290665 100644
--- a/heat/engine/resources/openstack/mistral/workflow.py
+++ b/heat/engine/resources/openstack/mistral/workflow.py
@@ -595,11 +595,7 @@ class Workflow(signal_responder.SignalResponder,
self.data_set(self.EXECUTIONS, ','.join(executions))
def handle_update(self, json_snippet, tmpl_diff, prop_diff):
- update_allowed = [self.INPUT, self.PARAMS, self.DESCRIPTION]
- for prop in update_allowed:
- if prop in prop_diff:
- del prop_diff[prop]
- if len(prop_diff) > 0:
+ if prop_diff:
props = json_snippet.properties(self.properties_schema,
self.context)
new_props = self.prepare_properties(props)
diff --git a/heat/tests/openstack/mistral/test_workflow.py b/heat/tests/openstack/mistral/test_workflow.py
index 836791946..4582dfa46 100644
--- a/heat/tests/openstack/mistral/test_workflow.py
+++ b/heat/tests/openstack/mistral/test_workflow.py
@@ -535,6 +535,19 @@ class TestMistralWorkflow(common.HeatTestCase):
self.assertTrue(self.mistral.workflows.update.called)
self.assertEqual((wf.UPDATE, wf.COMPLETE), wf.state)
+ def test_update_input(self):
+ wf = self._create_resource('workflow', self.rsrc_defn,
+ self.stack)
+ t = template_format.parse(workflow_template)
+ t['resources']['workflow']['properties']['input'] = {'foo': 'bar'}
+ rsrc_defns = template.Template(t).resource_definitions(self.stack)
+ new_wf = rsrc_defns['workflow']
+ self.mistral.workflows.update.return_value = [
+ FakeWorkflow('test_stack-workflow-b5fiekfci3yc')]
+ scheduler.TaskRunner(wf.update, new_wf)()
+ self.assertTrue(self.mistral.workflows.update.called)
+ self.assertEqual((wf.UPDATE, wf.COMPLETE), wf.state)
+
def test_update_failed(self):
wf = self._create_resource('workflow', self.rsrc_defn,
self.stack)