From cf4a016143e3ba28baca569c566aff419978c87a Mon Sep 17 00:00:00 2001 From: Nikolay Mahotkin Date: Wed, 18 Dec 2013 14:03:03 +0400 Subject: [PATCH] Fix resolving dependencies in workflow Change-Id: I9024165a2f4b745ebd85d09baff6138f1388e152 --- mistral/engine/scalable/workflow.py | 25 ++++++++----------- .../unit/engine/scalable/test_workflow.py | 2 +- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/mistral/engine/scalable/workflow.py b/mistral/engine/scalable/workflow.py index bd3e21e41..ad0060038 100644 --- a/mistral/engine/scalable/workflow.py +++ b/mistral/engine/scalable/workflow.py @@ -79,17 +79,14 @@ def _update_dependencies(tasks, graph): def _get_resolved_tasks(tasks): - resolved_tasks = [] - allows = [] - for t in tasks: - if t['state'] == states.SUCCESS: - allows += t['dependencies'] - - allow_set = set(allows) - - for t in tasks: - if len(allow_set - set(t['dependencies'])) == 0: - if t['state'] == states.IDLE: - resolved_tasks.append(t) - - return resolved_tasks + resolved_tasks = [] + allows = [] + for t in tasks: + if t['state'] == states.SUCCESS: + allows += [t['name']] + allow_set = set(allows) + for t in tasks: + if len(set(t['dependencies']) - allow_set) == 0: + if t['state'] == states.IDLE: + resolved_tasks.append(t) + return resolved_tasks diff --git a/mistral/tests/unit/engine/scalable/test_workflow.py b/mistral/tests/unit/engine/scalable/test_workflow.py index 479f3ccbd..f33ebffb0 100644 --- a/mistral/tests/unit/engine/scalable/test_workflow.py +++ b/mistral/tests/unit/engine/scalable/test_workflow.py @@ -30,7 +30,7 @@ TASKS = [ { 'dependencies': [], 'name': 'create-vms', - 'state': states.RUNNING + 'state': states.SUCCESS }, { 'dependencies': ['create-vms'],