From c281237a8fea533b5babe7420888fe05182c8af2 Mon Sep 17 00:00:00 2001 From: Maciej Kwiek Date: Mon, 7 Mar 2016 16:30:08 +0100 Subject: [PATCH] Reset times in tasks on graph reset It will stop pollution of subsequent orchestrations with time values from previous runs. Change-Id: I2b0e495f84768aee3545f33e388c9bfb20d76fa4 Closes-bug: 1554058 --- solar/orchestration/graph.py | 2 ++ solar/test/orchestration/test_graph.py | 11 +++++++++++ 2 files changed, 13 insertions(+) diff --git a/solar/orchestration/graph.py b/solar/orchestration/graph.py index 03516989..fd2ee1c4 100644 --- a/solar/orchestration/graph.py +++ b/solar/orchestration/graph.py @@ -192,6 +192,8 @@ def reset(graph, state_list=None): for n in graph: if state_list is None or graph.node[n]['status'] in state_list: graph.node[n]['status'] = states.PENDING.name + graph.node[n]['start_time'] = 0.0 + graph.node[n]['end_time'] = 0.0 update_graph(graph) diff --git a/solar/test/orchestration/test_graph.py b/solar/test/orchestration/test_graph.py index 47d9b091..84900a57 100644 --- a/solar/test/orchestration/test_graph.py +++ b/solar/test/orchestration/test_graph.py @@ -12,6 +12,8 @@ # License for the specific language governing permissions and limitations # under the License. +import mock + import networkx as nx from solar.orchestration import graph @@ -20,3 +22,12 @@ from solar.orchestration import graph def test_longest_path_time_returns_0_for_empty_graph(): g = nx.MultiDiGraph() assert graph.longest_path_time(g) == 0.0 + + +def test_reset_resets_times(): + g = nx.MultiDiGraph() + g.add_node('task1', task=mock.Mock(), status='status', errmsg='', + start_time=1, end_time=4) + graph.reset(g) + assert int(g.node['task1']['start_time']) == 0 + assert int(g.node['task1']['start_time']) == 0