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  }