diff options
author | Håkon Hallingstad <hakon@yahoo-inc.com> | 2017-02-20 17:13:18 +0100 |
---|---|---|
committer | Håkon Hallingstad <hakon@yahoo-inc.com> | 2017-02-20 17:13:18 +0100 |
commit | d27e86bcd396d64a92d4742083235ee6768dc6b9 (patch) | |
tree | f2daf9230f2575792e58f8abe76aeeeb8f8a0d86 /clustercontroller-core | |
parent | 24eab4fe4b661526f327fcb32a045dfbc7f3c998 (diff) |
Makes clustercontroller-core work on WiFi
Diffstat (limited to 'clustercontroller-core')
5 files changed, 79 insertions, 45 deletions
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/rpc/RpcServer.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/rpc/RpcServer.java index 9619a15de3c..d846bba1ad1 100644 --- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/rpc/RpcServer.java +++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/rpc/RpcServer.java @@ -1,25 +1,41 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.clustercontroller.core.rpc; -import com.yahoo.jrt.*; +import com.yahoo.jrt.Acceptor; +import com.yahoo.jrt.ErrorCode; +import com.yahoo.jrt.Int32Value; +import com.yahoo.jrt.ListenFailedException; +import com.yahoo.jrt.Method; +import com.yahoo.jrt.Request; +import com.yahoo.jrt.Spec; +import com.yahoo.jrt.StringArray; +import com.yahoo.jrt.StringValue; +import com.yahoo.jrt.Supervisor; +import com.yahoo.jrt.Transport; +import com.yahoo.jrt.slobrok.api.BackOffPolicy; import com.yahoo.jrt.slobrok.api.Register; import com.yahoo.jrt.slobrok.api.SlobrokList; -import com.yahoo.jrt.slobrok.api.BackOffPolicy; import com.yahoo.log.LogLevel; -import com.yahoo.vdslib.state.*; +import com.yahoo.vdslib.state.ClusterState; +import com.yahoo.vdslib.state.Node; +import com.yahoo.vdslib.state.NodeState; +import com.yahoo.vdslib.state.NodeType; +import com.yahoo.vdslib.state.State; +import com.yahoo.vespa.clustercontroller.core.ContentCluster; import com.yahoo.vespa.clustercontroller.core.MasterElectionHandler; import com.yahoo.vespa.clustercontroller.core.NodeInfo; -import com.yahoo.vespa.clustercontroller.core.ContentCluster; +import com.yahoo.vespa.clustercontroller.core.Timer; import com.yahoo.vespa.clustercontroller.core.listeners.NodeAddedOrRemovedListener; import com.yahoo.vespa.clustercontroller.core.listeners.NodeStateOrHostInfoChangeHandler; -import com.yahoo.vespa.clustercontroller.core.Timer; -import java.util.logging.Logger; -import java.util.*; -import java.net.UnknownHostException; -import java.net.InetAddress; -import java.io.StringWriter; import java.io.PrintWriter; +import java.io.StringWriter; +import java.net.UnknownHostException; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.logging.Logger; public class RpcServer { @@ -94,13 +110,12 @@ public class RpcServer { slobroks.append(" )"); SlobrokList slist = new SlobrokList(); slist.setup(slobrokConnectionSpecs); - log.log(LogLevel.DEBUG, "Trying to connect to slobrok using local address " + InetAddress.getLocalHost().getHostName() - + ", port " + acceptor.port() + " using slobrok connection spec " + slobroks); + Spec spec = Spec.fromLocalHostName(acceptor.port()); + log.log(LogLevel.INFO, "Connecting to slobrok at " + spec + " using connection spec " + slobroks); if (slobrokBackOffPolicy != null) { - register = new Register(supervisor, slist, - new Spec(InetAddress.getLocalHost().getHostName(), acceptor.port()), slobrokBackOffPolicy); + register = new Register(supervisor, slist, spec, slobrokBackOffPolicy); } else { - register = new Register(supervisor, slist, InetAddress.getLocalHost().getHostName(), acceptor.port()); + register = new Register(supervisor, slist, spec); } register.registerName(getSlobrokName()); } diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/MasterElectionTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/MasterElectionTest.java index 80435ee7c7d..03eddd86615 100644 --- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/MasterElectionTest.java +++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/MasterElectionTest.java @@ -1,26 +1,28 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.clustercontroller.core; -import com.yahoo.jrt.*; +import com.yahoo.jrt.Request; +import com.yahoo.jrt.Spec; +import com.yahoo.jrt.Supervisor; +import com.yahoo.jrt.Target; +import com.yahoo.jrt.Transport; import com.yahoo.jrt.slobrok.server.Slobrok; import com.yahoo.log.LogLevel; +import com.yahoo.vdslib.state.ClusterState; +import org.junit.Ignore; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.TestRule; -import java.net.InetAddress; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.concurrent.TimeoutException; import java.util.logging.Logger; -import com.yahoo.vdslib.state.ClusterState; -import org.junit.Ignore; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TestRule; - import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; public class MasterElectionTest extends FleetControllerTest { @@ -42,7 +44,7 @@ public class MasterElectionTest extends FleetControllerTest { this.options.zooKeeperSessionTimeout = 10 * timeoutMS; this.options.zooKeeperServerAddress = zooKeeperServer.getAddress(); this.options.slobrokConnectionSpecs = new String[1]; - this.options.slobrokConnectionSpecs[0] = "tcp/"+ InetAddress.getLocalHost().getHostName()+":" + slobrok.port(); + this.options.slobrokConnectionSpecs[0] = Spec.fromLocalHostName(slobrok.port()).toString(); this.options.fleetControllerCount = count; for (int i=0; i<count; ++i) { FleetControllerOptions nodeOptions = options.clone(); @@ -58,7 +60,7 @@ public class MasterElectionTest extends FleetControllerTest { options.zooKeeperSessionTimeout = 10 * timeoutMS; options.zooKeeperServerAddress = zooKeeperServer.getAddress(); options.slobrokConnectionSpecs = new String[1]; - options.slobrokConnectionSpecs[0] = "tcp/"+ InetAddress.getLocalHost().getHostName()+":" + slobrok.port(); + options.slobrokConnectionSpecs[0] = Spec.fromLocalHostName(slobrok.port()).toString(); options.fleetControllerIndex = fleetControllerIndex; options.fleetControllerCount = fleetControllerCount; return options; diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/RpcServerTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/RpcServerTest.java index f7f86907205..33145644d23 100644 --- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/RpcServerTest.java +++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/RpcServerTest.java @@ -1,26 +1,41 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.clustercontroller.core; +import com.yahoo.jrt.ErrorCode; +import com.yahoo.jrt.Int32Value; +import com.yahoo.jrt.Request; +import com.yahoo.jrt.Spec; +import com.yahoo.jrt.StringValue; +import com.yahoo.jrt.Supervisor; +import com.yahoo.jrt.Target; +import com.yahoo.jrt.Transport; +import com.yahoo.jrt.slobrok.server.Slobrok; +import com.yahoo.log.LogLevel; import com.yahoo.vdslib.distribution.ConfiguredNode; +import com.yahoo.vdslib.distribution.Distribution; +import com.yahoo.vdslib.state.ClusterState; +import com.yahoo.vdslib.state.Node; +import com.yahoo.vdslib.state.NodeState; +import com.yahoo.vdslib.state.NodeType; +import com.yahoo.vdslib.state.State; import com.yahoo.vespa.clustercontroller.core.rpc.RpcServer; import com.yahoo.vespa.clustercontroller.core.testutils.LogFormatter; import com.yahoo.vespa.clustercontroller.core.testutils.WaitCondition; import com.yahoo.vespa.config.content.StorDistributionConfig; -import com.yahoo.jrt.*; -import com.yahoo.jrt.StringValue; -import com.yahoo.jrt.slobrok.server.Slobrok; -import com.yahoo.log.LogLevel; -import com.yahoo.vdslib.distribution.Distribution; -import com.yahoo.vdslib.state.*; import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.assertFalse; -import java.net.InetAddress; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.LinkedList; +import java.util.List; +import java.util.Set; +import java.util.TreeSet; import java.util.logging.Logger; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + /** * @author humbe */ @@ -42,7 +57,7 @@ public class RpcServerTest extends FleetControllerTest { startingTest("RpcServerTest::testRebinding"); Slobrok slobrok = new Slobrok(); String slobrokConnectionSpecs[] = new String[1]; - slobrokConnectionSpecs[0] = "tcp/"+ InetAddress.getLocalHost().getHostName()+":" + slobrok.port(); + slobrokConnectionSpecs[0] = Spec.fromLocalHostName(slobrok.port()).toString(); RpcServer server = new RpcServer(timer, new Object(), "mycluster", 0, new BackOff()); server.setSlobrokConnectionSpecs(slobrokConnectionSpecs, 0); int portUsed = server.getPort(); @@ -112,7 +127,7 @@ public class RpcServerTest extends FleetControllerTest { int rpcPort = fleetController.getRpcPort(); supervisor = new Supervisor(new Transport()); - Target connection = supervisor.connect(new Spec(rpcPort)); + Target connection = supervisor.connect(Spec.fromLocalHostName(rpcPort)); assertTrue(connection.isValid()); Request req = new Request("getSystemState"); @@ -130,7 +145,7 @@ public class RpcServerTest extends FleetControllerTest { if (supervisor == null) { supervisor = new Supervisor(new Transport()); } - Target connection = supervisor.connect(new Spec(rpcPort)); + Target connection = supervisor.connect(Spec.fromLocalHostName(rpcPort)); assertTrue(connection.isValid()); Node node = new Node(nodeType, nodeIndex); diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/StateGatherTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/StateGatherTest.java index cf3a47b1add..194b51aa440 100644 --- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/StateGatherTest.java +++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/StateGatherTest.java @@ -1,14 +1,15 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.clustercontroller.core; +import com.yahoo.jrt.Spec; import com.yahoo.log.LogLevel; import org.junit.Test; -import static org.junit.Assert.assertEquals; -import java.net.InetAddress; import java.util.concurrent.TimeoutException; import java.util.logging.Logger; +import static org.junit.Assert.assertEquals; + public class StateGatherTest extends FleetControllerTest { public static Logger log = Logger.getLogger(StateGatherTest.class.getName()); @@ -34,7 +35,7 @@ public class StateGatherTest extends FleetControllerTest { options.nodeStateRequestTimeoutLatestPercentage = 80; setUpFleetController(true, options); String connectionSpecs[] = new String[1]; - connectionSpecs[0] = "tcp/" + InetAddress.getLocalHost().getHostName() + ":" + slobrok.port(); + connectionSpecs[0] = Spec.fromLocalHostName(slobrok.port()).toString(); DummyVdsNodeOptions dummyOptions = new DummyVdsNodeOptions(); DummyVdsNode dnode = new DummyVdsNode(timer, dummyOptions, connectionSpecs, this.options.clusterName, true, 0); DummyVdsNode snode = new DummyVdsNode(timer, dummyOptions, connectionSpecs, this.options.clusterName, false, 0); diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ZooKeeperTestServer.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ZooKeeperTestServer.java index a5191df5f73..c5f3d2caafe 100644 --- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ZooKeeperTestServer.java +++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ZooKeeperTestServer.java @@ -1,8 +1,9 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.clustercontroller.core; -import org.apache.zookeeper.server.ZooKeeperServer; +import com.yahoo.net.HostName; import org.apache.zookeeper.server.NIOServerCnxnFactory; +import org.apache.zookeeper.server.ZooKeeperServer; import java.io.File; import java.io.IOException; @@ -50,7 +51,7 @@ public class ZooKeeperTestServer { } public String getAddress() { - return factory.getLocalAddress().getHostName() + ":" + getPort(); + return HostName.getLocalhost() + ":" + getPort(); } public void shutdown(boolean cleanupZooKeeperDir) { |