Make task-events use the message from the API rather than hardcoded

The api has changed to send through a message for task-events. Use that
instead of rendering a message from within js dependent on the task
event type
This commit is contained in:
John Cowen
2018-01-19 15:38:57 +00:00
parent 7fe2993421
commit 61d7f93a29
3 changed files with 4 additions and 121 deletions

View File

@@ -1,27 +1,6 @@
import { computed } from '@ember/object';
import Fragment from 'ember-data-model-fragments/fragment';
import attr from 'ember-data/attr';
import { fragmentOwner } from 'ember-data-model-fragments/attributes';
import moment from 'moment';
const displayProps = [
'message',
'validationError',
'setupError',
'driverError',
'downloadError',
'killReason',
'killTimeout',
'killError',
'exitCode',
'signal',
'startDelay',
'restartReason',
'failedSibling',
'taskSignal',
'taskSignalReason',
'driverMessage',
];
export default Fragment.extend({
state: fragmentOwner(),
@@ -48,100 +27,4 @@ export default Fragment.extend({
vaultError: attr('string'),
message: attr('string'),
failedSibling: attr('string'),
displayMessage: computed(...displayProps, function() {
let desc = '';
switch (this.get('type')) {
case 'Task Setup':
desc = this.get('message');
break;
case 'Started':
desc = 'Task started by client';
break;
case 'Received':
desc = 'Task received by client';
break;
case 'Failed Validation':
desc = this.get('validationError') || 'Validation of task failed';
break;
case 'Setup Failure':
desc = this.get('setupError') || 'Task setup failed';
break;
case 'Driver Failure':
desc = this.get('driverError') || 'Failed to start task';
break;
case 'Downloading Artifacts':
desc = 'Client is downloading artifacts';
break;
case 'Failed Artifact Download':
desc = this.get('downloadError') || 'Failed to download artifacts';
break;
case 'Killing':
desc =
this.get('killReason') ||
(this.get('killTimeout') &&
`Sent interrupt. Waiting ${this.get('killTimeout')} before force killing`);
break;
case 'Killed':
desc = this.get('killError') || 'Task successfully killed';
break;
case 'Terminated':
var parts = [`Exit Code: ${this.get('exitCode')}`];
if (this.get('signal')) {
parts.push(`Signal: ${this.get('signal')}`);
}
if (this.get('message')) {
parts.push(`Exit Message: ${this.get('message')}`);
}
desc = parts.join(', ');
break;
case 'Restarting':
var timerMessage = `Task restarting in ${moment
.duration(this.get('startDelay') / 1000000, 'ms')
.humanize()}`;
if (this.get('restartReason') && this.get('restartReason') !== 'Restart within policy') {
desc = `${this.get('restartReason')} - ${timerMessage}`;
} else {
desc = timerMessage;
}
break;
case 'Not Restarting':
desc = this.get('restartReason') || 'Task exceeded restart policy';
break;
case 'Sibling Task Failed':
desc = this.get('failedSibling')
? `Task's sibling ${this.get('failedSibling')} failed`
: "Task's sibling failed";
break;
case 'Signaling':
var signal = this.get('taskSignal');
var reason = this.get('taskSignalReason');
if (!signal && !reason) {
desc = 'Task being sent a signal';
} else if (!signal) {
desc = reason;
} else if (!reason) {
desc = `Task being sent signal ${signal}`;
} else {
desc = `Task being sent signal ${signal}: ${reason}`;
}
break;
case 'Restart Signaled':
desc = this.get('restartReason') || 'Task signaled to restart';
break;
case 'Driver':
desc = this.get('driverMessage');
break;
case 'Leader Task Dead':
desc = 'Leader Task in Group dead';
break;
case 'Generic':
desc = this.get('message');
break;
}
return desc;
}),
});

View File

@@ -50,8 +50,8 @@
</td>
<td data-test-state>{{row.model.state}}</td>
<td data-test-message>
{{#if row.model.events.lastObject.displayMessage}}
{{row.model.events.lastObject.displayMessage}}
{{#if row.model.events.lastObject.message}}
{{row.model.events.lastObject.message}}
{{else}}
<em>No message</em>
{{/if}}

View File

@@ -83,8 +83,8 @@
<td data-test-task-event-time>{{moment-format row.model.time "MM/DD/YY HH:mm:ss"}}</td>
<td data-test-task-event-type>{{row.model.type}}</td>
<td data-test-task-event-message>
{{#if row.model.displayMessage}}
{{row.model.displayMessage}}
{{#if row.model.message}}
{{row.model.message}}
{{else}}
<em>No message</em>
{{/if}}