import { computed } from '@ember/object'; import DistributionBar from './distribution-bar'; import { attributeBindings } from '@ember-decorators/component'; import classic from 'ember-classic-decorator'; @classic @attributeBindings('data-test-job-client-status-bar') export default class JobClientStatusBar extends DistributionBar { layoutName = 'components/distribution-bar'; 'data-test-job-client-status-bar' = true; job = null; jobClientStatus = null; @computed('job.namespace', 'jobClientStatus.byStatus') get data() { const { queued, starting, running, complete, degraded, failed, lost, notScheduled, } = this.jobClientStatus.byStatus; return [ { label: 'Queued', value: queued.length, className: 'queued', legendLink: { queryParams: { status: JSON.stringify(['queued']), namespace: this.job.namespace.get('id'), }, }, }, { label: 'Starting', value: starting.length, className: 'starting', legendLink: { queryParams: { status: JSON.stringify(['starting']), namespace: this.job.namespace.get('id'), }, }, layers: 2, }, { label: 'Running', value: running.length, className: 'running', legendLink: { queryParams: { status: JSON.stringify(['running']), namespace: this.job.namespace.get('id'), }, }, }, { label: 'Complete', value: complete.length, className: 'complete', legendLink: { queryParams: { status: JSON.stringify(['complete']), namespace: this.job.namespace.get('id'), }, }, }, { label: 'Degraded', value: degraded.length, className: 'degraded', legendLink: { queryParams: { status: JSON.stringify(['degraded']), namespace: this.job.namespace.get('id'), }, }, help: 'Some allocations for this job were not successfull or did not run.', }, { label: 'Failed', value: failed.length, className: 'failed', legendLink: { queryParams: { status: JSON.stringify(['failed']), namespace: this.job.namespace.get('id'), }, }, }, { label: 'Lost', value: lost.length, className: 'lost', legendLink: { queryParams: { status: JSON.stringify(['lost']), namespace: this.job.namespace.get('id'), }, }, }, { label: 'Not Scheduled', value: notScheduled.length, className: 'not-scheduled', legendLink: { queryParams: { status: JSON.stringify(['notScheduled']), namespace: this.job.namespace.get('id'), }, }, help: 'No allocations for this job were scheduled into these clients.', }, ]; } }