23adad684b
* Adds model layer changes around HealthChecks 1. Makes a HealthCheck model fragment and uses it in ServiceInstances and Nodes 2. Manually adds a relationship between a ServiceInstance and its potential ServiceInstanceProxy 3. Misc changes related to the above such as an Exposed property on MeshChecks, MeshChecks itself * Add a potential temporary endpoint to distinguish ProxyServiceInstance * Fix up Node search bar class * Add search/sort/filter logic * Fixup Service default sort key * Add Healthcheck search/sort/filtering * Tweak CSS add a default Type of 'Serf' when type is blank * Fix up tests and new test support * Add ability to search on Service/Node name depending on where you are * Fixup CheckID search predicate * Use computed for DataCollection to use caching * Alpha sort the Type menu * Temporary fix for new non-changing style Ember Proxys * Only special case EventSource proxies
42 lines
1.1 KiB
JavaScript
42 lines
1.1 KiB
JavaScript
import Fragment from 'ember-data-model-fragments/fragment';
|
|
import { array } from 'ember-data-model-fragments/attributes';
|
|
import { attr } from '@ember-data/model';
|
|
import { computed } from '@ember/object';
|
|
|
|
export const schema = {
|
|
Status: {
|
|
allowedValues: ['passing', 'warning', 'critical'],
|
|
},
|
|
Type: {
|
|
allowedValues: ['', 'script', 'http', 'tcp', 'ttl', 'docker', 'grpc', 'alias'],
|
|
},
|
|
};
|
|
|
|
export default class HealthCheck extends Fragment {
|
|
@attr('string') Name;
|
|
@attr('string') CheckID;
|
|
@attr('string') Type;
|
|
@attr('string') Status;
|
|
@attr('string') Notes;
|
|
@attr('string') Output;
|
|
@attr('string') ServiceName;
|
|
@attr('string') ServiceID;
|
|
@attr('string') Node;
|
|
@array('string') ServiceTags;
|
|
@attr() Definition; // {}
|
|
|
|
// Exposed is only set correct if this Check is accessed via instance.MeshChecks
|
|
// essentially this is a lazy MeshHealthCheckModel
|
|
@attr('boolean') Exposed;
|
|
|
|
@computed('ServiceID')
|
|
get Kind() {
|
|
return this.ServiceID === '' ? 'node' : 'service';
|
|
}
|
|
|
|
@computed('Type')
|
|
get Exposable() {
|
|
return ['http', 'grpc'].includes(this.Type);
|
|
}
|
|
}
|