56 lines
1.4 KiB
JavaScript
56 lines
1.4 KiB
JavaScript
/**
|
|
* Copyright (c) HashiCorp, Inc.
|
|
* SPDX-License-Identifier: MPL-2.0
|
|
*/
|
|
|
|
import { bool, equal } from '@ember/object/computed';
|
|
import Model from '@ember-data/model';
|
|
import { attr, belongsTo, hasMany } from '@ember-data/model';
|
|
import { fragmentArray } from 'ember-data-model-fragments/attributes';
|
|
import shortUUIDProperty from '../utils/properties/short-uuid';
|
|
|
|
export default class Evaluation extends Model {
|
|
@shortUUIDProperty('id') shortId;
|
|
@shortUUIDProperty('nodeId') shortNodeId;
|
|
@attr('number') priority;
|
|
@attr('string') type;
|
|
@attr('string') triggeredBy;
|
|
@attr('string') status;
|
|
@attr('string') statusDescription;
|
|
@fragmentArray('placement-failure', { defaultValue: () => [] })
|
|
failedTGAllocs;
|
|
|
|
@attr('string') previousEval;
|
|
@attr('string') nextEval;
|
|
@attr('string') blockedEval;
|
|
@hasMany('evaluation-stub', { async: false }) relatedEvals;
|
|
|
|
@bool('failedTGAllocs.length') hasPlacementFailures;
|
|
@equal('status', 'blocked') isBlocked;
|
|
|
|
@belongsTo('job') job;
|
|
@belongsTo('node') node;
|
|
|
|
@attr('number') modifyIndex;
|
|
@attr('date') modifyTime;
|
|
|
|
@attr('number') createIndex;
|
|
@attr('date') createTime;
|
|
|
|
@attr('date') waitUntil;
|
|
@attr('string') namespace;
|
|
@attr('string') plainJobId;
|
|
|
|
get hasJob() {
|
|
return !!this.plainJobId;
|
|
}
|
|
|
|
get hasNode() {
|
|
return !!this.belongsTo('node').id();
|
|
}
|
|
|
|
get nodeId() {
|
|
return this.belongsTo('node').id();
|
|
}
|
|
}
|