59 var touched = false |
59 var touched = false |
60 var accepted = false |
60 var accepted = false |
61 var failed = false |
61 var failed = false |
62 var forks = 0 |
62 var forks = 0 |
63 var runs = 0 |
63 var runs = 0 |
64 for { markup <- markups; name = markup.name } |
64 for (markup <- markups) { |
65 name match { |
65 markup.name match { |
66 case Markup.ACCEPTED => accepted = true |
66 case Markup.ACCEPTED => accepted = true |
67 case Markup.FORKED => touched = true; forks += 1 |
67 case Markup.FORKED => touched = true; forks += 1 |
68 case Markup.JOINED => forks -= 1 |
68 case Markup.JOINED => forks -= 1 |
69 case Markup.RUNNING => touched = true; runs += 1 |
69 case Markup.RUNNING => touched = true; runs += 1 |
70 case Markup.FINISHED => runs -= 1 |
70 case Markup.FINISHED => runs -= 1 |
71 case Markup.FAILED => failed = true |
71 case Markup.FAILED => failed = true |
72 case _ => |
72 case _ => |
73 } |
73 } |
|
74 } |
74 Status(touched, accepted, failed, forks, runs) |
75 Status(touched, accepted, failed, forks, runs) |
75 } |
76 } |
76 |
77 |
77 val command_status_elements = |
78 val command_status_elements = |
78 Document.Elements(Markup.ACCEPTED, Markup.FORKED, Markup.JOINED, Markup.RUNNING, |
79 Document.Elements(Markup.ACCEPTED, Markup.FORKED, Markup.JOINED, Markup.RUNNING, |
112 var unprocessed = 0 |
113 var unprocessed = 0 |
113 var running = 0 |
114 var running = 0 |
114 var finished = 0 |
115 var finished = 0 |
115 var warned = 0 |
116 var warned = 0 |
116 var failed = 0 |
117 var failed = 0 |
117 for { command <- node.commands } |
118 for (command <- node.commands.iterator) { |
118 { |
|
119 val states = state.command_states(version, command) |
119 val states = state.command_states(version, command) |
120 val status = command_status(states.iterator.flatMap(st => st.status.iterator)) |
120 val status = command_status(states.iterator.flatMap(st => st.status.iterator)) |
121 |
121 |
122 if (status.is_running) running += 1 |
122 if (status.is_running) running += 1 |
123 else if (status.is_finished) { |
123 else if (status.is_finished) { |
146 var total = 0.0 |
146 var total = 0.0 |
147 var commands = Map.empty[Command, Double] |
147 var commands = Map.empty[Command, Double] |
148 for { |
148 for { |
149 command <- node.commands.iterator |
149 command <- node.commands.iterator |
150 st <- state.command_states(version, command) |
150 st <- state.command_states(version, command) |
151 command_timing = |
151 } { |
|
152 val command_timing = |
152 (0.0 /: st.status)({ |
153 (0.0 /: st.status)({ |
153 case (timing, Markup.Timing(t)) => timing + t.elapsed.seconds |
154 case (timing, Markup.Timing(t)) => timing + t.elapsed.seconds |
154 case (timing, _) => timing |
155 case (timing, _) => timing |
155 }) |
156 }) |
156 } { |
|
157 total += command_timing |
157 total += command_timing |
158 if (command_timing >= threshold) commands += (command -> command_timing) |
158 if (command_timing >= threshold) commands += (command -> command_timing) |
159 } |
159 } |
160 Node_Timing(total, commands) |
160 Node_Timing(total, commands) |
161 } |
161 } |