github.com/blixtra/nomad@v0.7.2-0.20171221000451-da9a1d7bb050/ui/app/models/task-event.js (about) 1 import Ember from 'ember'; 2 import Fragment from 'ember-data-model-fragments/fragment'; 3 import attr from 'ember-data/attr'; 4 import { fragmentOwner } from 'ember-data-model-fragments/attributes'; 5 import moment from 'moment'; 6 7 const { computed } = Ember; 8 const displayProps = [ 9 'message', 10 'validationError', 11 'setupError', 12 'driverError', 13 'downloadError', 14 'killReason', 15 'killTimeout', 16 'killError', 17 'exitCode', 18 'signal', 19 'startDelay', 20 'restartReason', 21 'failedSibling', 22 'taskSignal', 23 'taskSignalReason', 24 'driverMessage', 25 ]; 26 27 export default Fragment.extend({ 28 state: fragmentOwner(), 29 30 type: attr('string'), 31 signal: attr('number'), 32 exitCode: attr('number'), 33 34 time: attr('date'), 35 timeNanos: attr('number'), 36 37 downloadError: attr('string'), 38 driverError: attr('string'), 39 driverMessage: attr('string'), 40 killError: attr('string'), 41 killReason: attr('string'), 42 killTimeout: attr('number'), 43 restartReason: attr('string'), 44 setupError: attr('string'), 45 startDelay: attr('number'), 46 taskSignal: attr('string'), 47 taskSignalReason: attr('string'), 48 validationError: attr('string'), 49 vaultError: attr('string'), 50 message: attr('string'), 51 failedSibling: attr('string'), 52 53 displayMessage: computed(...displayProps, function() { 54 let desc = ''; 55 switch (this.get('type')) { 56 case 'Task Setup': 57 desc = this.get('message'); 58 break; 59 case 'Started': 60 desc = 'Task started by client'; 61 break; 62 case 'Received': 63 desc = 'Task received by client'; 64 break; 65 case 'Failed Validation': 66 desc = this.get('validationError') || 'Validation of task failed'; 67 break; 68 case 'Setup Failure': 69 desc = this.get('setupError') || 'Task setup failed'; 70 break; 71 case 'Driver Failure': 72 desc = this.get('driverError') || 'Failed to start task'; 73 break; 74 case 'Downloading Artifacts': 75 desc = 'Client is downloading artifacts'; 76 break; 77 case 'Failed Artifact Download': 78 desc = this.get('downloadError') || 'Failed to download artifacts'; 79 break; 80 case 'Killing': 81 desc = 82 this.get('killReason') || 83 (this.get('killTimeout') && 84 `Sent interrupt. Waiting ${this.get('killTimeout')} before force killing`); 85 break; 86 case 'Killed': 87 desc = this.get('killError') || 'Task successfully killed'; 88 break; 89 case 'Terminated': 90 var parts = [`Exit Code: ${this.get('exitCode')}`]; 91 if (this.get('signal')) { 92 parts.push(`Signal: ${this.get('signal')}`); 93 } 94 if (this.get('message')) { 95 parts.push(`Exit Message: ${this.get('message')}`); 96 } 97 desc = parts.join(', '); 98 break; 99 case 'Restarting': 100 var timerMessage = `Task restarting in ${moment 101 .duration(this.get('startDelay') / 1000000, 'ms') 102 .humanize()}`; 103 if (this.get('restartReason') && this.get('restartReason') !== 'Restart within policy') { 104 desc = `${this.get('restartReason')} - ${timerMessage}`; 105 } else { 106 desc = timerMessage; 107 } 108 break; 109 case 'Not Restarting': 110 desc = this.get('restartReason') || 'Task exceeded restart policy'; 111 break; 112 case 'Sibling Task Failed': 113 desc = this.get('failedSibling') 114 ? `Task's sibling ${this.get('failedSibling')} failed` 115 : "Task's sibling failed"; 116 break; 117 case 'Signaling': 118 var signal = this.get('taskSignal'); 119 var reason = this.get('taskSignalReason'); 120 121 if (!signal && !reason) { 122 desc = 'Task being sent a signal'; 123 } else if (!signal) { 124 desc = reason; 125 } else if (!reason) { 126 desc = `Task being sent signal ${signal}`; 127 } else { 128 desc = `Task being sent signal ${signal}: ${reason}`; 129 } 130 131 break; 132 case 'Restart Signaled': 133 desc = this.get('restartReason') || 'Task signaled to restart'; 134 break; 135 case 'Driver': 136 desc = this.get('driverMessage'); 137 break; 138 case 'Leader Task Dead': 139 desc = 'Leader Task in Group dead'; 140 break; 141 case 'Generic': 142 desc = this.get('message'); 143 break; 144 } 145 146 return desc; 147 }), 148 });