diff --git a/data-node/src/main/java/org/graylog/datanode/periodicals/NodePingPeriodical.java b/data-node/src/main/java/org/graylog/datanode/periodicals/NodePingPeriodical.java index 75c8ab543e..1bc566291d 100644 --- a/data-node/src/main/java/org/graylog/datanode/periodicals/NodePingPeriodical.java +++ b/data-node/src/main/java/org/graylog/datanode/periodicals/NodePingPeriodical.java @@ -16,6 +16,7 @@ */ package org.graylog.datanode.periodicals; +import org.graylog.datanode.Configuration; import org.graylog.datanode.management.OpensearchProcess; import org.graylog2.cluster.NodeNotFoundException; import org.graylog2.cluster.NodeService; @@ -26,7 +27,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.annotation.Nonnull; +import javax.annotation.Nullable; import javax.inject.Inject; +import javax.inject.Named; import java.net.URI; import java.util.function.Supplier; @@ -38,16 +41,18 @@ public class NodePingPeriodical extends Periodical { private final Supplier opensearchBaseUri; private final Supplier opensearchClusterUri; private final Supplier isLeader; + private final Configuration configuration; @Inject - public NodePingPeriodical(NodeService nodeService, NodeId nodeId, OpensearchProcess managedOpenSearch) { - this(nodeService, nodeId, managedOpenSearch::getOpensearchBaseUrl, managedOpenSearch::getOpensearchClusterUrl, managedOpenSearch::isLeaderNode); + public NodePingPeriodical(NodeService nodeService, NodeId nodeId, Configuration configuration, OpensearchProcess managedOpenSearch) { + this(nodeService, nodeId, configuration, managedOpenSearch::getOpensearchBaseUrl, managedOpenSearch::getOpensearchClusterUrl, managedOpenSearch::isLeaderNode); } NodePingPeriodical( NodeService nodeService, NodeId nodeId, + Configuration configuration, Supplier opensearchBaseUri, Supplier opensearchClusterUri, Supplier isLeader @@ -57,6 +62,7 @@ public class NodePingPeriodical extends Periodical { this.opensearchBaseUri = opensearchBaseUri; this.opensearchClusterUri = opensearchClusterUri; this.isLeader = isLeader; + this.configuration = configuration; } @Override @@ -115,7 +121,7 @@ public class NodePingPeriodical extends Periodical { isLeader.get(), opensearchBaseUri.get(), opensearchClusterUri.get(), - Tools.getLocalCanonicalHostname()); + configuration.getHostname()); if (!registrationSucceeded) { LOG.error("Failed to register node {} for heartbeats.", nodeId.getNodeId()); diff --git a/data-node/src/test/java/org/graylog/datanode/periodicals/NodePingPeriodicalTest.java b/data-node/src/test/java/org/graylog/datanode/periodicals/NodePingPeriodicalTest.java index 8303494742..754b912605 100644 --- a/data-node/src/test/java/org/graylog/datanode/periodicals/NodePingPeriodicalTest.java +++ b/data-node/src/test/java/org/graylog/datanode/periodicals/NodePingPeriodicalTest.java @@ -16,6 +16,7 @@ */ package org.graylog.datanode.periodicals; +import org.graylog.datanode.Configuration; import org.graylog2.cluster.NodeNotFoundException; import org.graylog2.cluster.NodeService; import org.graylog2.plugin.system.SimpleNodeId; @@ -34,9 +35,13 @@ class NodePingPeriodicalTest { final String cluster = "localhost:9300"; final NodeService nodeService = Mockito.mock(NodeService.class); + Configuration configuration = Mockito.mock(Configuration.class); + Mockito.when(configuration.getHostname()).thenReturn("localhost"); + final NodePingPeriodical task = new NodePingPeriodical( nodeService, nodeID, + configuration, () -> uri, () -> cluster, () -> true @@ -63,9 +68,13 @@ class NodePingPeriodicalTest { Mockito.doThrow(new NodeNotFoundException("Node not found")).when(nodeService).markAsAlive(nodeID, true, uri, cluster); + Configuration configuration = Mockito.mock(Configuration.class); + Mockito.when(configuration.getHostname()).thenReturn("hostname.setting.from.config"); + final NodePingPeriodical task = new NodePingPeriodical( nodeService, nodeID, + configuration, () -> uri, () -> cluster, () -> true @@ -78,7 +87,7 @@ class NodePingPeriodicalTest { Mockito.eq(true), Mockito.eq(uri), Mockito.eq(cluster), - Mockito.any() + Mockito.eq("hostname.setting.from.config") ); } }