mirror of
https://github.com/kemko/nomad.git
synced 2026-01-02 00:15:43 +03:00
* Regexy time simplification in task events * Oops, dont assume these are all task restart messages * Update mirage to provide displayMessage instead of message * Have a few acceptance tests look for .displayMessage instead of .message for equality now
43 lines
1003 B
JavaScript
43 lines
1003 B
JavaScript
/**
|
|
* Copyright (c) HashiCorp, Inc.
|
|
* SPDX-License-Identifier: BUSL-1.1
|
|
*/
|
|
|
|
import Fragment from 'ember-data-model-fragments/fragment';
|
|
import { attr } from '@ember-data/model';
|
|
import { fragmentOwner } from 'ember-data-model-fragments/attributes';
|
|
|
|
export default class TaskEvent extends Fragment {
|
|
@fragmentOwner() state;
|
|
|
|
@attr('string') type;
|
|
@attr('number') signal;
|
|
@attr('number') exitCode;
|
|
|
|
@attr('date') time;
|
|
@attr('number') timeNanos;
|
|
@attr('string') displayMessage;
|
|
|
|
get message() {
|
|
let message = simplifyTimeMessage(this.displayMessage);
|
|
return message;
|
|
}
|
|
}
|
|
|
|
function simplifyTimeMessage(message) {
|
|
return (
|
|
message?.replace(/(\d+h)?(\d+m)?(\d+\.\d+)s/g, (_, h, m, s) => {
|
|
h = h ? parseInt(h) : 0;
|
|
m = m ? parseInt(m) : 0;
|
|
s = Math.round(parseFloat(s));
|
|
|
|
m += Math.floor(s / 60);
|
|
s %= 60;
|
|
h += Math.floor(m / 60);
|
|
m %= 60;
|
|
|
|
return `${h ? h + 'h' : ''}${h || m ? m + 'm' : ''}${s}s`;
|
|
}) || message
|
|
);
|
|
}
|