aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Musum <musum@yahooinc.com>2022-12-28 17:22:17 +0100
committerHarald Musum <musum@yahooinc.com>2022-12-28 17:22:17 +0100
commit92bddcb26f6f16e9c0589d81eccab56e1e417953 (patch)
treed9582125b60a48cff7a2ea3648f4b296c0cd209f
parentd4167723f7963ad97819f616fbf5f5fbf123cc35 (diff)
StatusPageServerInterface has just one implementation, simplify
-rw-r--r--clustercontroller-apps/src/main/java/com/yahoo/vespa/clustercontroller/apps/clustercontroller/ClusterController.java5
-rw-r--r--clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetController.java16
-rw-r--r--clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/StatusHandler.java9
-rw-r--r--clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/statuspage/StatusPageServerInterface.java12
-rw-r--r--clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ClusterFeedBlockTest.java4
-rw-r--r--clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/FleetControllerTest.java4
-rw-r--r--clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/StateChangeTest.java4
7 files changed, 13 insertions, 41 deletions
diff --git a/clustercontroller-apps/src/main/java/com/yahoo/vespa/clustercontroller/apps/clustercontroller/ClusterController.java b/clustercontroller-apps/src/main/java/com/yahoo/vespa/clustercontroller/apps/clustercontroller/ClusterController.java
index 4395240acd3..1ac870c45de 100644
--- a/clustercontroller-apps/src/main/java/com/yahoo/vespa/clustercontroller/apps/clustercontroller/ClusterController.java
+++ b/clustercontroller-apps/src/main/java/com/yahoo/vespa/clustercontroller/apps/clustercontroller/ClusterController.java
@@ -53,10 +53,9 @@ public class ClusterController extends AbstractComponent
synchronized (controllers) {
FleetController controller = controllers.get(options.clusterName());
if (controller == null) {
- StatusHandler.ContainerStatusPageServer statusPageServer = new StatusHandler.ContainerStatusPageServer();
- controller = FleetController.create(options, statusPageServer, metricWrapper);
+ controller = FleetController.create(options, metricWrapper);
controllers.put(options.clusterName(), controller);
- status.put(options.clusterName(), statusPageServer);
+ status.put(options.clusterName(), controller.statusPageServer());
} else {
controller.updateOptions(options);
}
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetController.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetController.java
index 3a9ebde9da1..2952d3bf9ee 100644
--- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetController.java
+++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetController.java
@@ -21,9 +21,9 @@ import com.yahoo.vespa.clustercontroller.core.status.ClusterStateRequestHandler;
import com.yahoo.vespa.clustercontroller.core.status.LegacyIndexPageRequestHandler;
import com.yahoo.vespa.clustercontroller.core.status.LegacyNodePageRequestHandler;
import com.yahoo.vespa.clustercontroller.core.status.NodeHealthRequestHandler;
+import com.yahoo.vespa.clustercontroller.core.status.StatusHandler;
import com.yahoo.vespa.clustercontroller.core.status.statuspage.StatusPageResponse;
import com.yahoo.vespa.clustercontroller.core.status.statuspage.StatusPageServer;
-import com.yahoo.vespa.clustercontroller.core.status.statuspage.StatusPageServerInterface;
import com.yahoo.vespa.clustercontroller.utils.util.MetricReporter;
import java.io.FileNotFoundException;
import java.time.Duration;
@@ -35,7 +35,6 @@ import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
-import java.util.Objects;
import java.util.Queue;
import java.util.Set;
import java.util.TimeZone;
@@ -61,7 +60,7 @@ public class FleetController implements NodeListener, SlobrokListener, SystemSta
private final StateChangeHandler stateChangeHandler;
private final SystemStateBroadcaster systemStateBroadcaster;
private final StateVersionTracker stateVersionTracker;
- private final StatusPageServerInterface statusPageServer;
+ private final StatusHandler.ContainerStatusPageServer statusPageServer;
private final RpcServer rpcServer;
private final DatabaseHandler database;
private final MasterElectionHandler masterElectionHandler;
@@ -106,7 +105,6 @@ public class FleetController implements NodeListener, SlobrokListener, SystemSta
ContentCluster cluster,
NodeStateGatherer nodeStateGatherer,
Communicator communicator,
- StatusPageServerInterface statusPage,
RpcServer server,
NodeLookup nodeLookup,
DatabaseHandler database,
@@ -130,7 +128,7 @@ public class FleetController implements NodeListener, SlobrokListener, SystemSta
this.systemStateBroadcaster = systemStateBroadcaster;
this.stateVersionTracker = new StateVersionTracker(options.minMergeCompletionRatio());
this.metricUpdater = metricUpdater;
- this.statusPageServer = Objects.requireNonNull(statusPage, "statusPage cannot be null");
+ this.statusPageServer = new StatusHandler.ContainerStatusPageServer();
this.rpcServer = server;
this.masterElectionHandler = masterElectionHandler;
this.statusRequestRouter.addHandler(
@@ -150,9 +148,7 @@ public class FleetController implements NodeListener, SlobrokListener, SystemSta
propagateOptions();
}
- public static FleetController create(FleetControllerOptions options,
- StatusPageServerInterface statusPageServer,
- MetricReporter metricReporter) throws Exception {
+ public static FleetController create(FleetControllerOptions options, MetricReporter metricReporter) throws Exception {
var context = new FleetControllerContextImpl(options);
var timer = new RealTimer();
var metricUpdater = new MetricUpdater(metricReporter, options.fleetControllerIndex(), options.clusterName());
@@ -173,7 +169,7 @@ public class FleetController implements NodeListener, SlobrokListener, SystemSta
var stateBroadcaster = new SystemStateBroadcaster(context, timer, timer);
var masterElectionHandler = new MasterElectionHandler(context, options.fleetControllerIndex(), options.fleetControllerCount(), timer, timer);
var controller = new FleetController(context, timer, log, cluster, stateGatherer, communicator,
- statusPageServer, null, lookUp, database, stateGenerator,
+ null, lookUp, database, stateGenerator,
stateBroadcaster, masterElectionHandler, metricUpdater, options);
controller.start();
return controller;
@@ -1215,4 +1211,6 @@ public class FleetController implements NodeListener, SlobrokListener, SystemSta
return eventLog;
}
+ public StatusHandler.ContainerStatusPageServer statusPageServer() { return statusPageServer; }
+
}
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/StatusHandler.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/StatusHandler.java
index 79e6a91f561..302832e4542 100644
--- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/StatusHandler.java
+++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/StatusHandler.java
@@ -3,11 +3,9 @@ package com.yahoo.vespa.clustercontroller.core.status;
import com.yahoo.vespa.clustercontroller.core.status.statuspage.StatusPageResponse;
import com.yahoo.vespa.clustercontroller.core.status.statuspage.StatusPageServer;
-import com.yahoo.vespa.clustercontroller.core.status.statuspage.StatusPageServerInterface;
import com.yahoo.vespa.clustercontroller.utils.communication.http.HttpRequest;
import com.yahoo.vespa.clustercontroller.utils.communication.http.HttpRequestHandler;
import com.yahoo.vespa.clustercontroller.utils.communication.http.HttpResult;
-
import java.io.IOException;
import java.io.StringWriter;
import java.nio.charset.StandardCharsets;
@@ -27,7 +25,7 @@ public class StatusHandler implements HttpRequestHandler {
}
- public static class ContainerStatusPageServer implements StatusPageServerInterface {
+ public static class ContainerStatusPageServer {
StatusPageServer.HttpRequest request;
StatusPageResponse response;
@@ -36,13 +34,9 @@ public class StatusHandler implements HttpRequestHandler {
// Lock safety with fleetcontroller. Wait until completion
private final Object answerMonitor = new Object();
- @Override
public int getPort() { return 0; }
- @Override
public void shutdown() throws InterruptedException, IOException {}
- @Override
public void setPort(int port) {}
- @Override
public StatusPageServer.HttpRequest getCurrentHttpRequest() {
synchronized (answerMonitor) {
StatusPageServer.HttpRequest r = request;
@@ -50,7 +44,6 @@ public class StatusHandler implements HttpRequestHandler {
return r;
}
}
- @Override
public void answerCurrentStatusRequest(StatusPageResponse r) {
synchronized (answerMonitor) {
response = r;
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/statuspage/StatusPageServerInterface.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/statuspage/StatusPageServerInterface.java
deleted file mode 100644
index a06d069c59d..00000000000
--- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/statuspage/StatusPageServerInterface.java
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.vespa.clustercontroller.core.status.statuspage;
-
-public interface StatusPageServerInterface {
-
- int getPort();
- void shutdown() throws InterruptedException, java.io.IOException;
- void setPort(int port) throws java.io.IOException, InterruptedException;
- StatusPageServer.HttpRequest getCurrentHttpRequest();
- void answerCurrentStatusRequest(StatusPageResponse r);
-
-}
diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ClusterFeedBlockTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ClusterFeedBlockTest.java
index 0485bd80aa0..413c8e7414c 100644
--- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ClusterFeedBlockTest.java
+++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ClusterFeedBlockTest.java
@@ -7,7 +7,6 @@ import com.yahoo.vdslib.state.NodeType;
import com.yahoo.vdslib.state.State;
import com.yahoo.vespa.clustercontroller.core.database.DatabaseHandler;
import com.yahoo.vespa.clustercontroller.core.database.ZooKeeperDatabaseFactory;
-import com.yahoo.vespa.clustercontroller.core.status.StatusHandler;
import com.yahoo.vespa.clustercontroller.utils.util.NoMetricReporter;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
@@ -51,8 +50,7 @@ public class ClusterFeedBlockTest extends FleetControllerTest {
var stateGenerator = new StateChangeHandler(context, timer, eventLog);
var stateBroadcaster = new SystemStateBroadcaster(context, timer, timer);
var masterElectionHandler = new MasterElectionHandler(context, options.fleetControllerIndex(), options.fleetControllerCount(), timer, timer);
- var status = new StatusHandler.ContainerStatusPageServer();
- ctrl = new FleetController(context, timer, eventLog, cluster, stateGatherer, communicator, status, null, communicator, database,
+ ctrl = new FleetController(context, timer, eventLog, cluster, stateGatherer, communicator, null, communicator, database,
stateGenerator, stateBroadcaster, masterElectionHandler, metricUpdater, options);
ctrl.tick();
diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/FleetControllerTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/FleetControllerTest.java
index 242d936357d..07401534a7b 100644
--- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/FleetControllerTest.java
+++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/FleetControllerTest.java
@@ -19,7 +19,6 @@ import com.yahoo.vespa.clustercontroller.core.database.ZooKeeperDatabaseFactory;
import com.yahoo.vespa.clustercontroller.core.rpc.RPCCommunicator;
import com.yahoo.vespa.clustercontroller.core.rpc.RpcServer;
import com.yahoo.vespa.clustercontroller.core.rpc.SlobrokClient;
-import com.yahoo.vespa.clustercontroller.core.status.StatusHandler;
import com.yahoo.vespa.clustercontroller.core.testutils.WaitCondition;
import com.yahoo.vespa.clustercontroller.core.testutils.WaitTask;
import com.yahoo.vespa.clustercontroller.core.testutils.Waiter;
@@ -138,8 +137,7 @@ public abstract class FleetControllerTest implements Waiter {
var stateBroadcaster = new SystemStateBroadcaster(context, timer, timer);
var masterElectionHandler = new MasterElectionHandler(context, options.fleetControllerIndex(), options.fleetControllerCount(), timer, timer);
- var status = new StatusHandler.ContainerStatusPageServer();
- var controller = new FleetController(context, timer, log, cluster, stateGatherer, communicator, status, rpcServer, lookUp,
+ var controller = new FleetController(context, timer, log, cluster, stateGatherer, communicator, rpcServer, lookUp,
database, stateGenerator, stateBroadcaster, masterElectionHandler, metricUpdater, options);
controller.start();
return controller;
diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/StateChangeTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/StateChangeTest.java
index 5868ad723a4..7d2cc9b8df2 100644
--- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/StateChangeTest.java
+++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/StateChangeTest.java
@@ -9,7 +9,6 @@ import com.yahoo.vdslib.state.NodeType;
import com.yahoo.vdslib.state.State;
import com.yahoo.vespa.clustercontroller.core.database.DatabaseHandler;
import com.yahoo.vespa.clustercontroller.core.database.ZooKeeperDatabaseFactory;
-import com.yahoo.vespa.clustercontroller.core.status.StatusHandler;
import com.yahoo.vespa.clustercontroller.core.testutils.StateWaiter;
import com.yahoo.vespa.clustercontroller.utils.util.NoMetricReporter;
import org.junit.jupiter.api.Test;
@@ -52,8 +51,7 @@ public class StateChangeTest extends FleetControllerTest {
var stateGenerator = new StateChangeHandler(context, timer, eventLog);
var stateBroadcaster = new SystemStateBroadcaster(context, timer, timer);
var masterElectionHandler = new MasterElectionHandler(context, options.fleetControllerIndex(), options.fleetControllerCount(), timer, timer);
- var status = new StatusHandler.ContainerStatusPageServer();
- ctrl = new FleetController(context, timer, eventLog, cluster, stateGatherer, communicator, status, null, communicator, database,
+ ctrl = new FleetController(context, timer, eventLog, cluster, stateGatherer, communicator, null, communicator, database,
stateGenerator, stateBroadcaster, masterElectionHandler, metricUpdater, options);
ctrl.tick();