From a5e038cf13ee02845dfd5d5a8cf1aaa238b8fae5 Mon Sep 17 00:00:00 2001 From: Olga Maciaszek-Sharma Date: Mon, 13 Jun 2022 18:57:46 +0200 Subject: [PATCH] Do not set status to down. (#4102) --- .../eureka/EurekaHealthCheckHandler.java | 2 +- .../healthcheck/EurekaHealthCheckTests.java | 17 +++++++++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/EurekaHealthCheckHandler.java b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/EurekaHealthCheckHandler.java index 0e5a8d00c..f0cc6db9d 100644 --- a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/EurekaHealthCheckHandler.java +++ b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/EurekaHealthCheckHandler.java @@ -70,7 +70,7 @@ public class EurekaHealthCheckHandler private static final Map STATUS_MAPPING = new HashMap() { { put(Status.UNKNOWN, InstanceStatus.UNKNOWN); - put(Status.OUT_OF_SERVICE, InstanceStatus.OUT_OF_SERVICE); + put(Status.OUT_OF_SERVICE, InstanceStatus.DOWN); put(Status.DOWN, InstanceStatus.DOWN); put(Status.UP, InstanceStatus.UP); } diff --git a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/healthcheck/EurekaHealthCheckTests.java b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/healthcheck/EurekaHealthCheckTests.java index 112efcf2e..34e81a556 100644 --- a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/healthcheck/EurekaHealthCheckTests.java +++ b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/healthcheck/EurekaHealthCheckTests.java @@ -36,6 +36,7 @@ import static org.assertj.core.api.Assertions.assertThat; * Tests the Eureka health check handler. * * @author Jakub Narloch + * @author Olga Maciaszek-Sharma */ @SpringBootTest(classes = EurekaHealthCheckTests.EurekaHealthCheckApplication.class, webEnvironment = WebEnvironment.RANDOM_PORT, value = { "eureka.client.healthcheck.enabled=true", "debug=true" }) @@ -47,12 +48,24 @@ class EurekaHealthCheckTests { @Test void shouldRegisterService() { + System.setProperty("status", "UP"); InstanceInfo.InstanceStatus status = this.discoveryClient.getHealthCheckHandler() .getStatus(InstanceInfo.InstanceStatus.UNKNOWN); assertThat(status).isNotNull(); - assertThat(status).isEqualTo(InstanceInfo.InstanceStatus.OUT_OF_SERVICE); + assertThat(status).isEqualTo(InstanceInfo.InstanceStatus.UP); + } + + @Test + void shouldMapOutOfServiceToDown() { + System.setProperty("status", "OUT_OF_SERVICE"); + + InstanceInfo.InstanceStatus status = this.discoveryClient.getHealthCheckHandler() + .getStatus(InstanceInfo.InstanceStatus.UNKNOWN); + + assertThat(status).isNotNull(); + assertThat(status).isEqualTo(InstanceInfo.InstanceStatus.DOWN); } @Configuration(proxyBeanMethods = false) @@ -61,7 +74,7 @@ class EurekaHealthCheckTests { @Bean public HealthIndicator healthIndicator() { - return () -> new Health.Builder().outOfService().build(); + return () -> new Health.Builder().status(System.getProperty("status")).build(); } }