2021-05-13 10:36:51 +00:00
|
|
|
@setupApplicationTest
|
|
|
|
Feature: dc / services / instances / health-checks
|
|
|
|
Background:
|
|
|
|
Given 1 datacenter model with the value "dc1"
|
|
|
|
And 1 proxy model from yaml
|
|
|
|
---
|
|
|
|
- ServiceProxy:
|
|
|
|
DestinationServiceName: service-1
|
|
|
|
DestinationServiceID: ~
|
|
|
|
---
|
|
|
|
Scenario: A failing serf check
|
|
|
|
Given 2 instance models from yaml
|
|
|
|
---
|
|
|
|
- Service:
|
|
|
|
ID: service-0-with-id
|
|
|
|
Node:
|
|
|
|
Node: node-0
|
|
|
|
- Service:
|
|
|
|
ID: service-1-with-id
|
|
|
|
Node:
|
|
|
|
Node: another-node
|
|
|
|
Checks:
|
|
|
|
- Type: ''
|
|
|
|
Name: Serf Health Status
|
|
|
|
CheckID: serfHealth
|
|
|
|
Status: critical
|
|
|
|
Output: ouch
|
|
|
|
---
|
|
|
|
When I visit the instance page for yaml
|
|
|
|
---
|
|
|
|
dc: dc1
|
|
|
|
service: service-0
|
|
|
|
node: another-node
|
|
|
|
id: service-1-with-id
|
|
|
|
---
|
|
|
|
Then the url should be /dc1/services/service-0/instances/another-node/service-1-with-id/health-checks
|
|
|
|
And I see healthChecksIsSelected on the tabs
|
|
|
|
And I see criticalSerfNotice on the tabs.healthChecksTab
|
|
|
|
Scenario: A passing serf check
|
|
|
|
Given 2 instance models from yaml
|
|
|
|
---
|
|
|
|
- Service:
|
|
|
|
ID: service-0-with-id
|
|
|
|
Node:
|
|
|
|
Node: node-0
|
|
|
|
- Service:
|
|
|
|
ID: service-1-with-id
|
|
|
|
Node:
|
|
|
|
Node: another-node
|
|
|
|
Checks:
|
|
|
|
- Type: ''
|
|
|
|
Name: Serf Health Status
|
|
|
|
CheckID: serfHealth
|
|
|
|
Status: passing
|
|
|
|
Output: Agent alive and reachable
|
|
|
|
---
|
|
|
|
When I visit the instance page for yaml
|
|
|
|
---
|
|
|
|
dc: dc1
|
|
|
|
service: service-0
|
|
|
|
node: another-node
|
|
|
|
id: service-1-with-id
|
|
|
|
---
|
|
|
|
Then the url should be /dc1/services/service-0/instances/another-node/service-1-with-id/health-checks
|
|
|
|
And I see healthChecksIsSelected on the tabs
|
|
|
|
And I don't see criticalSerfNotice on the tabs.healthChecksTab
|
2022-10-14 00:45:15 +00:00
|
|
|
Scenario: Node health check should be hidden on agentless service instances
|
|
|
|
Given 1 instance model from yaml
|
|
|
|
---
|
|
|
|
- Service:
|
|
|
|
ID: service-0-with-id
|
|
|
|
Node:
|
|
|
|
Node: another-node
|
|
|
|
Meta:
|
|
|
|
synthetic-node: true
|
|
|
|
Checks:
|
|
|
|
- Type: ''
|
|
|
|
Name: Node Health Check
|
|
|
|
CheckID: serfHealth
|
|
|
|
ServiceID: ''
|
|
|
|
Status: passing
|
|
|
|
Output: Agent alive and reachable
|
|
|
|
- Type: ''
|
|
|
|
Name: Serf Health Status
|
|
|
|
CheckID: serfHealth
|
|
|
|
Status: critical
|
|
|
|
Output: ouch
|
|
|
|
---
|
|
|
|
When I visit the instance page for yaml
|
|
|
|
---
|
|
|
|
dc: dc1
|
|
|
|
service: service-0
|
|
|
|
node: another-node
|
|
|
|
id: service-0-with-id
|
|
|
|
---
|
|
|
|
Then the url should be /dc1/services/service-0/instances/another-node/service-0-with-id/health-checks
|
|
|
|
And I see healthChecksIsSelected on the tabs
|
|
|
|
And I see 1 healthCheck model on the tabs.healthChecksTab component
|
|
|
|
And I see 1 healthCheck model with the name "Serf Health Status"
|
|
|
|
Scenario: Node health checks should be visible on non-agentless service instances
|
|
|
|
Given 1 instance model from yaml
|
|
|
|
---
|
|
|
|
- Service:
|
|
|
|
ID: service-0-with-id
|
|
|
|
Node:
|
|
|
|
Node: another-node
|
|
|
|
Checks:
|
|
|
|
- Type: ''
|
|
|
|
Name: Node Health Check
|
|
|
|
CheckID: serfHealth
|
|
|
|
ServiceID: ''
|
|
|
|
Status: passing
|
|
|
|
Output: Agent alive and reachable
|
|
|
|
- Type: ''
|
|
|
|
Name: Serf Health Status
|
|
|
|
CheckID: serfHealth
|
|
|
|
Status: critical
|
|
|
|
Output: ouch
|
|
|
|
---
|
|
|
|
When I visit the instance page for yaml
|
|
|
|
---
|
|
|
|
dc: dc1
|
|
|
|
service: service-0
|
|
|
|
node: another-node
|
|
|
|
id: service-0-with-id
|
|
|
|
---
|
|
|
|
Then the url should be /dc1/services/service-0/instances/another-node/service-0-with-id/health-checks
|
|
|
|
And I see healthChecksIsSelected on the tabs
|
|
|
|
And I see 2 healthCheck models on the tabs.healthChecksTab component
|
|
|
|
And I see 1 healthCheck model with the name "Serf Health Status"
|
|
|
|
And I see 1 healthCheck model with the name "Node Health Check"
|