diff --git a/lib/astute/task_node.rb b/lib/astute/task_node.rb index e4b9e23b..796563f1 100644 --- a/lib/astute/task_node.rb +++ b/lib/astute/task_node.rb @@ -124,10 +124,10 @@ module Astute def node_report_status if !finished? {} - elsif successful? - cluster.node_statuses_transitions.fetch('successful', {}) elsif skipped? cluster.node_statuses_transitions.fetch('stopped', {}) + elsif successful? + cluster.node_statuses_transitions.fetch('successful', {}) else cluster.node_statuses_transitions.fetch('failed', {}) end diff --git a/spec/unit/task_node_spec.rb b/spec/unit/task_node_spec.rb index 6ee7383e..be0bc257 100644 --- a/spec/unit/task_node_spec.rb +++ b/spec/unit/task_node_spec.rb @@ -378,6 +378,27 @@ describe Astute::TaskNode do }) task_node.poll end + + it 'should report stopped if node skipped' do + cluster.node_statuses_transitions['stopped'] = { + 'status' => 'stopped' + } + cluster.node_statuses_transitions['successful'] = { + 'status' => 'ready' + } + + task_node.set_status_skipped + task_node.stubs(:finished?).returns(true) + task_node.stubs(:successful?).returns(true) + + ctx.expects(:report).with({ + 'nodes' => [{ + 'uid' => 'node_id', + 'status' => 'stopped', + 'progress' => 100}] + }) + task_node.report_node_status + end end it 'should report error if task failed and no more task' do