36 lines
1 KiB
JavaScript
36 lines
1 KiB
JavaScript
/**
|
|
* Copyright (c) HashiCorp, Inc.
|
|
* SPDX-License-Identifier: MPL-2.0
|
|
*/
|
|
|
|
import classic from 'ember-classic-decorator';
|
|
import Fragment from 'ember-data-model-fragments/fragment';
|
|
import { get, computed } from '@ember/object';
|
|
import { attr } from '@ember-data/model';
|
|
import { fragmentOwner } from 'ember-data-model-fragments/attributes';
|
|
import { fragment } from 'ember-data-model-fragments/attributes';
|
|
|
|
@classic
|
|
export default class NodeDriver extends Fragment {
|
|
@fragmentOwner() node;
|
|
|
|
@fragment('structured-attributes') attributes;
|
|
|
|
@computed('name', 'attributes.structured')
|
|
get attributesShort() {
|
|
const attributes = this.get('attributes.structured');
|
|
return get(attributes, `driver.${this.name}`);
|
|
}
|
|
|
|
@attr('string') name;
|
|
@attr('boolean', { defaultValue: false }) detected;
|
|
@attr('boolean', { defaultValue: false }) healthy;
|
|
@attr('string') healthDescription;
|
|
@attr('date') updateTime;
|
|
|
|
@computed('healthy')
|
|
get healthClass() {
|
|
return this.healthy ? 'running' : 'failed';
|
|
}
|
|
}
|