/** * 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'; } }