mirror of
https://github.com/kemko/nomad.git
synced 2026-01-01 16:05:42 +03:00
[ui] Don't show a service as healthy when its parent alloc is not running (#17465)
* Fix: dont show a service as healthy when its parent alloc is not running * Test for Health Unknown
This commit is contained in:
3
.changelog/17465.txt
Normal file
3
.changelog/17465.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
```release-note:bug
|
||||
ui: dont show a service as healthy when its parent allocation stops running
|
||||
```
|
||||
@@ -20,6 +20,11 @@
|
||||
{{#if (eq this.aggregateStatus 'Unhealthy')}}
|
||||
<FlightIcon @name="x-square-fill" @color="#c84034" />
|
||||
Unhealthy
|
||||
{{else if (eq this.aggregateStatus 'Unknown')}}
|
||||
<Tooltip @text="The parent allocation for this service is not running" @isFullText={{true}}>
|
||||
<FlightIcon @name="help" @color="#999999" />
|
||||
Health Unknown
|
||||
</Tooltip>
|
||||
{{else}}
|
||||
<FlightIcon @name="check-square-fill" @color="#25ba81" />
|
||||
Healthy
|
||||
|
||||
@@ -38,6 +38,7 @@ export default class AllocationServiceSidebarComponent extends Component {
|
||||
}
|
||||
|
||||
get aggregateStatus() {
|
||||
if (this.args.allocation?.clientStatus !== 'running') return 'Unknown';
|
||||
return this.checks.any((check) => check.Status === 'failure')
|
||||
? 'Unhealthy'
|
||||
: 'Healthy';
|
||||
|
||||
@@ -76,7 +76,7 @@ module(
|
||||
};
|
||||
|
||||
this.set('closeSidebar', () => this.set('service', null));
|
||||
this.set('allocation', { id: 'myAlloc' });
|
||||
this.set('allocation', { id: 'myAlloc', clientStatus: 'running' });
|
||||
this.set('service', healthyService);
|
||||
await render(
|
||||
hbs`<AllocationServiceSidebar @service={{this.service}} @allocation={{this.allocation}} @fns={{hash closeSidebar=this.closeSidebar}} />`
|
||||
@@ -91,6 +91,13 @@ module(
|
||||
hbs`<AllocationServiceSidebar @service={{this.service}} @allocation={{this.allocation}} @fns={{hash closeSidebar=this.closeSidebar}} />`
|
||||
);
|
||||
assert.dom('h1 .aggregate-status').includesText('Unhealthy');
|
||||
|
||||
this.set('service', healthyService);
|
||||
this.set('allocation', { id: 'myAlloc2', clientStatus: 'failed' });
|
||||
await render(
|
||||
hbs`<AllocationServiceSidebar @service={{this.service}} @allocation={{this.allocation}} @fns={{hash closeSidebar=this.closeSidebar}} />`
|
||||
);
|
||||
assert.dom('h1 .aggregate-status').includesText('Health Unknown');
|
||||
});
|
||||
|
||||
test('it handles Consul services with reduced functionality', async function (assert) {
|
||||
|
||||
Reference in New Issue
Block a user