import Model from 'ember-data/model'; import attr from 'ember-data/attr'; import { computed, get } from '@ember/object'; import sumOfUnhealthy from 'consul-ui/utils/sumOfUnhealthy'; import hasStatus from 'consul-ui/utils/hasStatus'; export const PRIMARY_KEY = 'uid'; export const SLUG_KEY = 'ID'; export default Model.extend({ [PRIMARY_KEY]: attr('string'), [SLUG_KEY]: attr('string'), Address: attr('string'), Node: attr('string'), Meta: attr(), Services: attr(), Checks: attr(), CreateIndex: attr('number'), ModifyIndex: attr('number'), TaggedAddresses: attr(), Datacenter: attr('string'), Segment: attr(), Coord: attr(), SyncTime: attr('number'), meta: attr(), hasStatus: function(status) { return hasStatus(get(this, 'Checks'), status); }, isHealthy: computed('Checks', function() { return sumOfUnhealthy(get(this, 'Checks')) === 0; }), isUnhealthy: computed('Checks', function() { return sumOfUnhealthy(get(this, 'Checks')) > 0; }), });