From 53d2b961c59adf99821041ed7cdc856b0057a1b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xavier=20L=C3=A9aut=C3=A9?= Date: Wed, 18 Feb 2015 16:44:48 -0800 Subject: [PATCH] default to canonical hostname instead of localhost --- .../indexing/worker/config/WorkerConfig.java | 3 ++- .../main/java/io/druid/server/DruidNode.java | 17 +++++++++++++---- .../java/io/druid/server/DruidNodeTest.java | 6 +++--- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/indexing-service/src/main/java/io/druid/indexing/worker/config/WorkerConfig.java b/indexing-service/src/main/java/io/druid/indexing/worker/config/WorkerConfig.java index 19956e2e468..d039e3e685b 100644 --- a/indexing-service/src/main/java/io/druid/indexing/worker/config/WorkerConfig.java +++ b/indexing-service/src/main/java/io/druid/indexing/worker/config/WorkerConfig.java @@ -18,6 +18,7 @@ package io.druid.indexing.worker.config; import com.fasterxml.jackson.annotation.JsonProperty; +import io.druid.server.DruidNode; import javax.validation.constraints.Min; import javax.validation.constraints.NotNull; @@ -28,7 +29,7 @@ public class WorkerConfig { @JsonProperty @NotNull - private String ip = "localhost"; + private String ip = DruidNode.getDefaultHost(); @JsonProperty @NotNull diff --git a/server/src/main/java/io/druid/server/DruidNode.java b/server/src/main/java/io/druid/server/DruidNode.java index cc05eaaf7ec..443c3366474 100644 --- a/server/src/main/java/io/druid/server/DruidNode.java +++ b/server/src/main/java/io/druid/server/DruidNode.java @@ -24,18 +24,19 @@ import com.google.common.base.Preconditions; import com.google.common.net.HostAndPort; import com.google.inject.name.Named; import com.metamx.common.IAE; +import com.metamx.common.ISE; import io.druid.common.utils.SocketUtil; import javax.validation.constraints.Max; import javax.validation.constraints.Min; import javax.validation.constraints.NotNull; +import java.net.InetAddress; +import java.net.UnknownHostException; /** */ public class DruidNode { - public static final String DEFAULT_HOST = "localhost"; - @JsonProperty("service") @NotNull private String serviceName; @@ -81,7 +82,7 @@ public class DruidNode this.serviceName = serviceName; if(host == null && port == null) { - host = DEFAULT_HOST; + host = getDefaultHost(); port = -1; } else { @@ -92,7 +93,7 @@ public class DruidNode throw new IAE("Conflicting host:port [%s] and port [%d] settings", host, port); } } else { - hostAndPort = HostAndPort.fromParts(DEFAULT_HOST, port); + hostAndPort = HostAndPort.fromParts(getDefaultHost(), port); } host = hostAndPort.getHostText(); @@ -136,6 +137,14 @@ public class DruidNode } } + public static String getDefaultHost() { + try { + return InetAddress.getLocalHost().getCanonicalHostName(); + } catch(UnknownHostException e) { + throw new ISE(e, "Unable to determine host name"); + } + } + @Override public String toString() { diff --git a/server/src/test/java/io/druid/server/DruidNodeTest.java b/server/src/test/java/io/druid/server/DruidNodeTest.java index 36f623688d0..110b855e7f9 100644 --- a/server/src/test/java/io/druid/server/DruidNodeTest.java +++ b/server/src/test/java/io/druid/server/DruidNodeTest.java @@ -30,9 +30,9 @@ public class DruidNodeTest DruidNode node; node = new DruidNode(service, null, null); - Assert.assertEquals(DruidNode.DEFAULT_HOST, node.getHost()); + Assert.assertEquals(DruidNode.getDefaultHost(), node.getHost()); Assert.assertEquals(-1, node.getPort()); - Assert.assertEquals("localhost", node.getHostAndPort()); + Assert.assertEquals(DruidNode.getDefaultHost(), node.getHostAndPort()); node = new DruidNode(service, "2001:db8:85a3::8a2e:370:7334", -1); Assert.assertEquals("2001:db8:85a3::8a2e:370:7334", node.getHost()); @@ -82,7 +82,7 @@ public class DruidNodeTest Assert.assertEquals("[2001:db8:85a3::8a2e:370:7334]:123", node.getHostAndPort()); node = new DruidNode(service, null, 123); - Assert.assertEquals(DruidNode.DEFAULT_HOST, node.getHost()); + Assert.assertEquals(DruidNode.getDefaultHost(), node.getHost()); Assert.assertEquals(123, node.getPort()); }