github.com/anth0d/nomad@v0.0.0-20221214183521-ae3a0a2cad06/ui/app/models/job-summary.js (about) 1 import { collect, sum } from '@ember/object/computed'; 2 import Model from '@ember-data/model'; 3 import { attr, belongsTo } from '@ember-data/model'; 4 import { fragmentArray } from 'ember-data-model-fragments/attributes'; 5 import sumAggregation from '../utils/properties/sum-aggregation'; 6 import classic from 'ember-classic-decorator'; 7 8 @classic 9 export default class JobSummary extends Model { 10 @belongsTo('job') job; 11 12 @fragmentArray('task-group-summary') taskGroupSummaries; 13 14 // Aggregate allocation counts across all summaries 15 @sumAggregation('taskGroupSummaries', 'queuedAllocs') queuedAllocs; 16 @sumAggregation('taskGroupSummaries', 'startingAllocs') startingAllocs; 17 @sumAggregation('taskGroupSummaries', 'runningAllocs') runningAllocs; 18 @sumAggregation('taskGroupSummaries', 'completeAllocs') completeAllocs; 19 @sumAggregation('taskGroupSummaries', 'failedAllocs') failedAllocs; 20 @sumAggregation('taskGroupSummaries', 'unknownAllocs') unknownAllocs; 21 @sumAggregation('taskGroupSummaries', 'lostAllocs') lostAllocs; 22 23 @collect( 24 'queuedAllocs', 25 'startingAllocs', 26 'runningAllocs', 27 'completeAllocs', 28 'failedAllocs', 29 'lostAllocs', 30 'unknownAllocs' 31 ) 32 allocsList; 33 34 @sum('allocsList') totalAllocs; 35 36 @attr('number') pendingChildren; 37 @attr('number') runningChildren; 38 @attr('number') deadChildren; 39 40 @collect('pendingChildren', 'runningChildren', 'deadChildren') childrenList; 41 42 @sum('childrenList') totalChildren; 43 }