2020-05-04 19:24:59 +00:00
|
|
|
import { computed } from '@ember/object';
|
2020-03-25 12:51:26 +00:00
|
|
|
import attr from 'ember-data/attr';
|
|
|
|
import { belongsTo } from 'ember-data/relationships';
|
|
|
|
import Fragment from 'ember-data-model-fragments/fragment';
|
|
|
|
import { fragmentOwner } from 'ember-data-model-fragments/attributes';
|
2020-05-04 19:24:59 +00:00
|
|
|
import PromiseObject from 'nomad-ui/utils/classes/promise-object';
|
2020-03-25 12:51:26 +00:00
|
|
|
|
|
|
|
export default Fragment.extend({
|
|
|
|
plugin: fragmentOwner(),
|
|
|
|
|
|
|
|
node: belongsTo('node'),
|
2020-05-04 19:24:59 +00:00
|
|
|
allocID: attr('string'),
|
|
|
|
|
|
|
|
// Model fragments don't support relationships, but with an allocation ID
|
|
|
|
// a "belongsTo" can be sufficiently mocked.
|
|
|
|
allocation: computed('allocID', function() {
|
|
|
|
if (!this.allocID) return null;
|
|
|
|
return PromiseObject.create({
|
|
|
|
promise: this.store.findRecord('allocation', this.allocID),
|
|
|
|
reload: () => this.store.findRecord('allocation', this.allocID),
|
|
|
|
});
|
|
|
|
}),
|
2020-03-25 12:51:26 +00:00
|
|
|
|
|
|
|
provider: attr('string'),
|
|
|
|
version: attr('string'),
|
|
|
|
healthy: attr('boolean'),
|
|
|
|
healthDescription: attr('string'),
|
|
|
|
updateTime: attr('date'),
|
|
|
|
requiresControllerPlugin: attr('boolean'),
|
|
|
|
requiresTopologies: attr('boolean'),
|
|
|
|
|
|
|
|
nodeInfo: attr(),
|
|
|
|
});
|