Job Detail Page

Changed to match new graph spec: https://trello.com/c/4xDbmXXW/285-pi-chart-mathematics-does-not-show-of-hosts-with-activity-x
This commit is contained in:
Chris Houseknecht
2014-08-13 18:28:48 -04:00
parent 14aa9e4004
commit b54f9066b9
2 changed files with 91 additions and 16 deletions

View File

@@ -232,7 +232,7 @@ function JobDetailController ($location, $rootScope, $scope, $compile, $routePar
Rest.setUrl(url); Rest.setUrl(url);
Rest.get() Rest.get()
.success(function(data) { .success(function(data) {
var idx, event, status, status_text, item; var idx, event, status, status_text, item, msg;
if (data.results.length > 0) { if (data.results.length > 0) {
lastEventId = data.results[0].id; lastEventId = data.results[0].id;
} }
@@ -272,6 +272,15 @@ function JobDetailController ($location, $rootScope, $scope, $compile, $routePar
} }
} }
msg = '';
if (event.event_data && event.event_data.res) {
if (typeof event.event_data.res === 'object') {
msg = event.event_data.res.msg;
} else {
msg = event.event_data.res;
}
}
if (event.event !== "runner_on_no_hosts") { if (event.event !== "runner_on_no_hosts") {
task.hostResults[event.id] = { task.hostResults[event.id] = {
id: event.id, id: event.id,
@@ -281,7 +290,7 @@ function JobDetailController ($location, $rootScope, $scope, $compile, $routePar
task_id: event.parent, task_id: event.parent,
name: event.event_data.host, name: event.event_data.host,
created: event.created, created: event.created,
msg: (event.event_data && event.event_data.res) ? event.event_data.res.msg : '' , msg: msg,
item: item item: item
}; };
} }
@@ -1099,7 +1108,7 @@ function JobDetailController ($location, $rootScope, $scope, $compile, $routePar
.success(function(data) { .success(function(data) {
scope.next_host_results = data.next; scope.next_host_results = data.next;
data.results.forEach(function(row) { data.results.forEach(function(row) {
var status, status_text, item; var status, status_text, item, msg;
if (row.event === "runner_on_skipped") { if (row.event === "runner_on_skipped") {
status = 'skipped'; status = 'skipped';
} }
@@ -1131,6 +1140,14 @@ function JobDetailController ($location, $rootScope, $scope, $compile, $routePar
item = JSON.stringify(item); item = JSON.stringify(item);
} }
} }
msg = '';
if (row.event_data && row.event_data.res) {
if (typeof row.event_data.res === 'object') {
msg = row.event_data.res.msg;
} else {
msg = row.event_data.res;
}
}
scope.hostResults.push({ scope.hostResults.push({
id: row.id, id: row.id,
status: status, status: status,

View File

@@ -46,10 +46,23 @@ function($rootScope, $log, UpdatePlayStatus, UpdateHostStatus, AddHostResult, Ge
return function(params) { return function(params) {
var scope = params.scope, var scope = params.scope,
event = params.event; event = params.event,
msg;
$log.debug('processing event: ' + event.id); $log.debug('processing event: ' + event.id);
function getMsg(event) {
var msg = '';
if (event.event_data && event.event_data.res) {
if (typeof event.event_data.res === 'object') {
msg = event.event_data.res.msg;
} else {
msg = event.event_data.res;
}
}
return msg;
}
switch (event.event) { switch (event.event) {
case 'playbook_on_start': case 'playbook_on_start':
if (!JobIsFinished(scope)) { if (!JobIsFinished(scope)) {
@@ -72,6 +85,7 @@ function($rootScope, $log, UpdatePlayStatus, UpdateHostStatus, AddHostResult, Ge
case 'runner_on_ok': case 'runner_on_ok':
case 'runner_on_async_ok': case 'runner_on_async_ok':
msg = getMsg(event);
UpdateHostStatus({ UpdateHostStatus({
scope: scope, scope: scope,
name: event.event_data.host, name: event.event_data.host,
@@ -81,7 +95,7 @@ function($rootScope, $log, UpdatePlayStatus, UpdateHostStatus, AddHostResult, Ge
id: event.id, id: event.id,
created: event.created, created: event.created,
modified: event.modified, modified: event.modified,
message: (event.event_data && event.event_data.res) ? event.event_data.res.msg : '', message: msg,
item: (event.event_data && event.event_data.res) ? event.event_data.res.item : '' item: (event.event_data && event.event_data.res) ? event.event_data.res.item : ''
}); });
break; break;
@@ -98,6 +112,7 @@ function($rootScope, $log, UpdatePlayStatus, UpdateHostStatus, AddHostResult, Ge
break; break;
case 'runner_on_unreachable': case 'runner_on_unreachable':
msg = getMsg(event);
UpdateHostStatus({ UpdateHostStatus({
scope: scope, scope: scope,
name: event.event_data.host, name: event.event_data.host,
@@ -107,13 +122,14 @@ function($rootScope, $log, UpdatePlayStatus, UpdateHostStatus, AddHostResult, Ge
id: event.id, id: event.id,
created: event.created, created: event.created,
modified: event.modified, modified: event.modified,
message: (event.event_data && event.event_data.res) ? event.event_data.res.msg : '', message: msg,
item: (event.event_data && event.event_data.res) ? event.event_data.res.item : '' item: (event.event_data && event.event_data.res) ? event.event_data.res.item : ''
}); });
break; break;
case 'runner_on_error': case 'runner_on_error':
case 'runner_on_async_failed': case 'runner_on_async_failed':
msg = getMsg(event);
UpdateHostStatus({ UpdateHostStatus({
scope: scope, scope: scope,
name: event.event_data.host, name: event.event_data.host,
@@ -123,7 +139,7 @@ function($rootScope, $log, UpdatePlayStatus, UpdateHostStatus, AddHostResult, Ge
id: event.id, id: event.id,
created: event.created, created: event.created,
modified: event.modified, modified: event.modified,
message: (event.event_data && event.event_data.res) ? event.event_data.res.msg : '', message: msg,
item: (event.event_data && event.event_data.res) ? event.event_data.res.item : '' item: (event.event_data && event.event_data.res) ? event.event_data.res.item : ''
}); });
break; break;
@@ -140,6 +156,7 @@ function($rootScope, $log, UpdatePlayStatus, UpdateHostStatus, AddHostResult, Ge
break; break;
case 'runner_on_skipped': case 'runner_on_skipped':
msg = getMsg(event);
UpdateHostStatus({ UpdateHostStatus({
scope: scope, scope: scope,
name: event.event_data.host, name: event.event_data.host,
@@ -149,7 +166,7 @@ function($rootScope, $log, UpdatePlayStatus, UpdateHostStatus, AddHostResult, Ge
id: event.id, id: event.id,
created: event.created, created: event.created,
modified: event.modified, modified: event.modified,
message: (event.event_data && event.event_data.res) ? event.event_data.res.msg : '', message: msg,
item: (event.event_data && event.event_data.res) ? event.event_data.res.item : '' item: (event.event_data && event.event_data.res) ? event.event_data.res.item : ''
}); });
} }
@@ -462,14 +479,17 @@ function($rootScope, $log, UpdatePlayStatus, UpdateHostStatus, AddHostResult, Ge
modified = params.modified, modified = params.modified,
created = params.created, created = params.created,
msg = params.message, msg = params.message,
item = params.item; item = params.item,
h, host;
/*
scope.host_summary.ok += (status === 'successful') ? 1 : 0; scope.host_summary.ok += (status === 'successful') ? 1 : 0;
scope.host_summary.changed += (status === 'changed') ? 1 : 0; scope.host_summary.changed += (status === 'changed') ? 1 : 0;
scope.host_summary.unreachable += (status === 'unreachable') ? 1 : 0; scope.host_summary.unreachable += (status === 'unreachable') ? 1 : 0;
scope.host_summary.failed += (status === 'failed') ? 1 : 0; scope.host_summary.failed += (status === 'failed') ? 1 : 0;
scope.host_summary.total = scope.host_summary.ok + scope.host_summary.changed + scope.host_summary.unreachable + scope.host_summary.total = scope.host_summary.ok + scope.host_summary.changed + scope.host_summary.unreachable +
scope.host_summary.failed; scope.host_summary.failed;
*/
if (scope.jobData.hostSummaries[host_id] !== undefined) { if (scope.jobData.hostSummaries[host_id] !== undefined) {
scope.jobData.hostSummaries[host_id].ok += (status === 'successful') ? 1 : 0; scope.jobData.hostSummaries[host_id].ok += (status === 'successful') ? 1 : 0;
@@ -492,6 +512,28 @@ function($rootScope, $log, UpdatePlayStatus, UpdateHostStatus, AddHostResult, Ge
}; };
} }
scope.host_summary.ok = 0;
scope.host_summary.changed = 0;
scope.host_summary.unreachable = 0;
scope.host_summary.failed = 0;
for (h in scope.jobData.hostSummaries) {
host = scope.jobData.hostSummaries[h];
if (host.ok > 0 && host.failed === 0 && host.unreachable === 0 && host.changed === 0) {
scope.host_summary.ok++;
}
if (host.changed > 0 && host.failed === 0 && host.unreachable === 0) {
scope.host_summary.changed++;
}
if (host.failed > 0) {
scope.host_summary.failed++;
}
if (host.unreachable > 0) {
scope.host_summary.unreachable++;
}
}
scope.host_summary.total = scope.host_summary.ok + scope.host_summary.changed + scope.host_summary.unreachable +
scope.host_summary.failed;
UpdateTaskStatus({ UpdateTaskStatus({
scope: scope, scope: scope,
task_id: task_id, task_id: task_id,
@@ -920,7 +962,7 @@ function($rootScope, $log, UpdatePlayStatus, UpdateHostStatus, AddHostResult, Ge
.success(function(data) { .success(function(data) {
scope.next_host_results = data.next; scope.next_host_results = data.next;
data.results.forEach(function(event) { data.results.forEach(function(event) {
var status, status_text, item; var status, status_text, item, msg;
if (event.event === "runner_on_skipped") { if (event.event === "runner_on_skipped") {
status = 'skipped'; status = 'skipped';
} }
@@ -955,6 +997,15 @@ function($rootScope, $log, UpdatePlayStatus, UpdateHostStatus, AddHostResult, Ge
} }
} }
msg = '';
if (event.event_data && event.event_data.res) {
if (typeof event.event_data.res === 'object') {
msg = event.event_data.res.msg;
} else {
msg = event.event_data.res;
}
}
if (event.event !== "runner_on_no_hosts") { if (event.event !== "runner_on_no_hosts") {
scope.hostResults.push({ scope.hostResults.push({
id: event.id, id: event.id,
@@ -964,7 +1015,7 @@ function($rootScope, $log, UpdatePlayStatus, UpdateHostStatus, AddHostResult, Ge
task_id: event.parent, task_id: event.parent,
name: event.event_data.host, name: event.event_data.host,
created: event.created, created: event.created,
msg: (event.event_data && event.event_data.res) ? event.event_data.res.msg : '', msg: msg,
item: item item: item
}); });
} }
@@ -1048,19 +1099,23 @@ function($rootScope, $log, UpdatePlayStatus, UpdateHostStatus, AddHostResult, Ge
host; host;
scope.host_summary.ok = 0; scope.host_summary.ok = 0;
for (host in data.ok) { for (host in data.ok) {
scope.host_summary.ok += data.ok[host]; if (!data.changed[host] && !data.dark[host] && !data.failures[host]) {
scope.host_summary.ok += 1;
}
} }
scope.host_summary.changed = 0; scope.host_summary.changed = 0;
for (host in data.changed) { for (host in data.changed) {
scope.host_summary.changed += data.changed[host]; if (!data.dark[host] && !data.failures[host]) {
scope.host_summary.changed += 1;
}
} }
scope.host_summary.unreachable = 0; scope.host_summary.unreachable = 0;
for (host in data.dark) { for (host in data.dark) {
scope.host_summary.unreachable += data.dark[host]; scope.host_summary.unreachable += 1;
} }
scope.host_summary.failed = 0; scope.host_summary.failed = 0;
for (host in data.failures) { for (host in data.failures) {
scope.host_summary.failed += data.failures[host]; scope.host_summary.failed += 1;
} }
scope.host_summary.total = scope.host_summary.ok + scope.host_summary.changed + scope.host_summary.total = scope.host_summary.ok + scope.host_summary.changed +
scope.host_summary.unreachable + scope.host_summary.failed; scope.host_summary.unreachable + scope.host_summary.failed;
@@ -1073,6 +1128,9 @@ function($rootScope, $log, UpdatePlayStatus, UpdateHostStatus, AddHostResult, Ge
resize = params.resize, resize = params.resize,
width, height, svg_height, svg_width, svg_radius, svg, graph_data = []; width, height, svg_height, svg_width, svg_radius, svg, graph_data = [];
console.log('drawing graph');
console.log(scope.host_summary);
// Ready the data // Ready the data
if (scope.host_summary.ok) { if (scope.host_summary.ok) {
graph_data.push({ graph_data.push({
@@ -1092,7 +1150,7 @@ function($rootScope, $log, UpdatePlayStatus, UpdateHostStatus, AddHostResult, Ge
graph_data.push({ graph_data.push({
label: 'Unreachable', label: 'Unreachable',
value: (scope.host_summary.unreachable === scope.host_summary.total) ? 1 : scope.host_summary.unreachable, value: (scope.host_summary.unreachable === scope.host_summary.total) ? 1 : scope.host_summary.unreachable,
color: '#FF3366' color: '#FF0000'
}); });
} }
if (scope.host_summary.failed) { if (scope.host_summary.failed) {