diff --git a/.changelog/9749.txt b/.changelog/9749.txt new file mode 100644 index 000000000000..50b1d8922aba --- /dev/null +++ b/.changelog/9749.txt @@ -0,0 +1,3 @@ +```release-note:bug +ui: Exclude proxies when showing the total number of instances on a node. +``` diff --git a/ui/packages/consul-ui/app/components/consul/instance-checks/index.hbs b/ui/packages/consul-ui/app/components/consul/instance-checks/index.hbs index d6b06eb21d6f..2effe31c1b9c 100644 --- a/ui/packages/consul-ui/app/components/consul/instance-checks/index.hbs +++ b/ui/packages/consul-ui/app/components/consul/instance-checks/index.hbs @@ -1,4 +1,3 @@ -{{#if (gt @items.length 0)}} {{#if (eq this.healthCheck.check 'empty') }}
@@ -28,5 +27,4 @@
{{this.healthCheck.count}}/{{@items.length}} {{@type}} checks {{this.healthCheck.status}}
{{/if}} - {{/if}} -{{/if}} \ No newline at end of file + {{/if}} \ No newline at end of file diff --git a/ui/packages/consul-ui/app/components/consul/node/list/index.hbs b/ui/packages/consul-ui/app/components/consul/node/list/index.hbs index c568346d8ee0..b4ff074252a7 100644 --- a/ui/packages/consul-ui/app/components/consul/node/list/index.hbs +++ b/ui/packages/consul-ui/app/components/consul/node/list/index.hbs @@ -30,7 +30,7 @@ as |item index|> Leader {{/if}} - {{format-number item.Services.length}} {{pluralize item.Services.length 'Service' without-count=true}} + {{format-number item.MeshServiceInstances.length}} {{pluralize item.MeshServiceInstances.length 'Service' without-count=true}}
diff --git a/ui/packages/consul-ui/app/models/node.js b/ui/packages/consul-ui/app/models/node.js index 2c77cd9798c3..58801c24fac0 100644 --- a/ui/packages/consul-ui/app/models/node.js +++ b/ui/packages/consul-ui/app/models/node.js @@ -1,5 +1,6 @@ import Model, { attr, hasMany } from '@ember-data/model'; import { computed } from '@ember/object'; +import { filter } from '@ember/object/computed'; import { fragmentArray } from 'ember-data-model-fragments/attributes'; export const PRIMARY_KEY = 'uid'; @@ -18,8 +19,13 @@ export default class Node extends Model { @attr() meta; // {} @attr() Meta; // {} @attr() TaggedAddresses; // {lan, wan} + // Services are reshaped to a different shape to what you sometimes get from + // the response, see models/node.js @hasMany('service-instance') Services; // TODO: Rename to ServiceInstances @fragmentArray('health-check') Checks; + // MeshServiceInstances are all instances that aren't connect-proxies this + // currently includes gateways as these need to show up in listings + @filter('Services', item => item.Service.Kind !== 'connect-proxy') MeshServiceInstances; @computed('Checks.[]', 'ChecksCritical', 'ChecksPassing', 'ChecksWarning') get Status() { diff --git a/ui/packages/consul-ui/app/templates/dc/nodes/show/services.hbs b/ui/packages/consul-ui/app/templates/dc/nodes/show/services.hbs index 1d1000fa68c8..68b0ff9eccc0 100644 --- a/ui/packages/consul-ui/app/templates/dc/nodes/show/services.hbs +++ b/ui/packages/consul-ui/app/templates/dc/nodes/show/services.hbs @@ -24,7 +24,7 @@ ) ) - (reject-by 'Service.Kind' 'connect-proxy' item.Services) + item.MeshServiceInstances as |sort filters items|}}