Files
nomad/ui/app/models/task-event.js
Phil Renaud 859087640a [ui] Simplify times in task events (#18595)
* 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
2023-09-27 17:01:34 -04:00

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
);
}