From 5df99e7f7769de01f9c696a63258371767ca7de8 Mon Sep 17 00:00:00 2001 From: Spencer Gibb Date: Fri, 28 Aug 2015 11:42:00 -0600 Subject: [PATCH] If management.port use that for service and management check fixes gh-69 --- .../consul/discovery/ConsulLifecycle.java | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/spring-cloud-consul-discovery/src/main/java/org/springframework/cloud/consul/discovery/ConsulLifecycle.java b/spring-cloud-consul-discovery/src/main/java/org/springframework/cloud/consul/discovery/ConsulLifecycle.java index ee419d40..45343584 100644 --- a/spring-cloud-consul-discovery/src/main/java/org/springframework/cloud/consul/discovery/ConsulLifecycle.java +++ b/spring-cloud-consul-discovery/src/main/java/org/springframework/cloud/consul/discovery/ConsulLifecycle.java @@ -79,22 +79,34 @@ public class ConsulLifecycle extends AbstractDiscoveryLifecycle { service.setName(normalizeForDns(appName)); service.setTags(createTags()); + Integer port; + if (shouldRegisterManagement()) { + port = getManagementPort(); + } else { + port = service.getPort(); + } + service.setCheck(createCheck(port)); + + register(service); + } + + private NewService.Check createCheck(Integer port) { NewService.Check check = new NewService.Check(); if (ttlConfig.isEnabled()) { check.setTtl(ttlConfig.getTtl()); + return check; } + if (properties.getHealthCheckUrl() != null) { check.setHttp(properties.getHealthCheckUrl()); } else { check.setHttp(String.format("%s://%s:%s%s", properties.getScheme(), - properties.getHostname(), service.getPort(), + properties.getHostname(), port, properties.getHealthCheckPath())); } check.setInterval(properties.getHealthCheckInterval()); //TODO support http check timeout - service.setCheck(check); - - register(service); + return check; } public String getServiceId() { @@ -108,6 +120,7 @@ public class ConsulLifecycle extends AbstractDiscoveryLifecycle { management.setName(getManagementServiceName()); management.setPort(getManagementPort()); management.setTags(properties.getManagementTags()); + management.setCheck(createCheck(getManagementPort())); register(management); }