aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Musum <musum@yahooinc.com>2023-05-09 08:42:12 +0200
committerHarald Musum <musum@yahooinc.com>2023-05-12 08:07:50 +0200
commitd3cc22215333b616d4d0187430df2bc7d7095db8 (patch)
treeb610d1e9aae3c37775fbf110206b1652e7118d1e
parent5a80d77bc5d6df103e9beb7ca9b21fd8b8670234 (diff)
Move pattern definition to handlers
-rw-r--r--clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetController.java18
-rw-r--r--clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/ClusterStateRequestHandler.java3
-rw-r--r--clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/LegacyIndexPageRequestHandler.java3
-rw-r--r--clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/LegacyNodePageRequestHandler.java3
-rw-r--r--clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/NodeHealthRequestHandler.java3
-rw-r--r--clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/StatusHandler.java1
-rw-r--r--clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/statuspage/StatusPageServer.java40
7 files changed, 21 insertions, 50 deletions
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 7a4934fe175..05d8c06c76a 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
@@ -113,7 +113,7 @@ public class FleetController implements NodeListener, SlobrokListener, SystemSta
MasterElectionHandler masterElectionHandler,
MetricUpdater metricUpdater,
FleetControllerOptions options) {
- context.log(logger, Level.INFO, "Created");
+ context.log(logger, Level.FINE, "Created");
this.context = context;
this.timer = timer;
this.monitor = timer;
@@ -131,19 +131,11 @@ public class FleetController implements NodeListener, SlobrokListener, SystemSta
this.statusPageServer = new StatusHandler.ContainerStatusPageServer();
this.rpcServer = server;
this.masterElectionHandler = masterElectionHandler;
- this.statusRequestRouter.addHandler(
- "^/node=([a-z]+)\\.(\\d+)$",
- new LegacyNodePageRequestHandler(timer, eventLog, cluster));
- this.statusRequestRouter.addHandler(
- "^/state.*",
- new NodeHealthRequestHandler());
- this.statusRequestRouter.addHandler(
- "^/clusterstate",
- new ClusterStateRequestHandler(stateVersionTracker));
+ this.statusRequestRouter.addHandler(new LegacyNodePageRequestHandler(timer, eventLog, cluster));
+ this.statusRequestRouter.addHandler(new NodeHealthRequestHandler());
+ this.statusRequestRouter.addHandler(new ClusterStateRequestHandler(stateVersionTracker));
this.indexPageRequestHandler = new LegacyIndexPageRequestHandler(timer, cluster, masterElectionHandler, stateVersionTracker, eventLog, options);
- this.statusRequestRouter.addHandler(
- "^/$",
- indexPageRequestHandler);
+ this.statusRequestRouter.addHandler(indexPageRequestHandler);
propagateOptions();
}
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/ClusterStateRequestHandler.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/ClusterStateRequestHandler.java
index 0d5cd9d68cf..340e6726c6b 100644
--- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/ClusterStateRequestHandler.java
+++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/ClusterStateRequestHandler.java
@@ -23,4 +23,7 @@ public class ClusterStateRequestHandler implements StatusPageServer.RequestHandl
return response;
}
+ @Override
+ public String pattern() { return "^/clusterstate"; }
+
}
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/LegacyIndexPageRequestHandler.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/LegacyIndexPageRequestHandler.java
index 61aa7a79e24..3297d511469 100644
--- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/LegacyIndexPageRequestHandler.java
+++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/LegacyIndexPageRequestHandler.java
@@ -102,6 +102,9 @@ public class LegacyIndexPageRequestHandler implements StatusPageServer.RequestHa
return response;
}
+ @Override
+ public String pattern() { return "^/$"; }
+
public void writeHtmlState(StateVersionTracker stateVersionTracker, StringBuilder sb) {
sb.append("<h2 id=\"clusterstates\">Cluster states</h2>\n");
writeClusterStates(sb, stateVersionTracker.getVersionedClusterStateBundle());
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/LegacyNodePageRequestHandler.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/LegacyNodePageRequestHandler.java
index 2e401feb8a8..ae29f50e097 100644
--- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/LegacyNodePageRequestHandler.java
+++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/LegacyNodePageRequestHandler.java
@@ -59,4 +59,7 @@ public class LegacyNodePageRequestHandler implements StatusPageServer.RequestHan
return response;
}
+ @Override
+ public String pattern() { return "^/node=([a-z]+)\\.(\\d+)$"; }
+
}
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/NodeHealthRequestHandler.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/NodeHealthRequestHandler.java
index 6a683ce6c04..aad67e87914 100644
--- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/NodeHealthRequestHandler.java
+++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/NodeHealthRequestHandler.java
@@ -23,4 +23,7 @@ public class NodeHealthRequestHandler implements StatusPageServer.RequestHandler
return response;
}
+ @Override
+ public String pattern() { return "^/state.*"; }
+
}
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 a8a858b5d31..65b06afb0c5 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
@@ -98,7 +98,6 @@ public class StatusHandler implements HttpRequestHandler {
fleetControllerPath = "/";
}
StatusPageServer.HttpRequest req = new StatusPageServer.HttpRequest(fleetControllerPath);
- req.setPathPrefix("/clustercontroller-status/v1");
StatusPageResponse response = statusServer.getStatus(req);
HttpResult result = new HttpResult();
if (response.getResponseCode() != null) {
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/statuspage/StatusPageServer.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/statuspage/StatusPageServer.java
index ec5760181e5..7070d754248 100644
--- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/statuspage/StatusPageServer.java
+++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/statuspage/StatusPageServer.java
@@ -2,9 +2,7 @@
package com.yahoo.vespa.clustercontroller.core.status.statuspage;
import java.util.ArrayList;
-import java.util.HashMap;
import java.util.List;
-import java.util.Map;
import java.util.logging.Logger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -22,8 +20,6 @@ public class StatusPageServer {
*/
public static class HttpRequest {
private final String request;
- private String pathPrefix = "";
- private final Map<String, String> params = new HashMap<String, String>();
private final String path;
static Pattern pathPattern;
@@ -32,7 +28,7 @@ public class StatusPageServer {
// status pages.
// If you stare at it for long enough, this sorta looks like one of those
// magic eye pictures.
- pathPattern = Pattern.compile("^(/([\\w=\\./]+)?)(?:\\?((?:&?\\w+(?:=[\\w\\.]*)?)*))?$");
+ pathPattern = Pattern.compile("^(/([\\w=./]+)?)(?:\\?((?:&?\\w+(?:=[\\w.]*)?)*))?$");
}
public HttpRequest(String request) {
@@ -42,18 +38,8 @@ public class StatusPageServer {
throw new IllegalArgumentException("Illegal HTTP request path: " + request);
}
path = m.group(1);
- if (m.group(3) != null) {
- String[] rawParams = m.group(3).split("&");
- for (String param : rawParams) {
- // Parameter values are optional.
- String[] queryParts = param.split("=");
- params.put(queryParts[0], queryParts.length > 1 ? queryParts[1] : null);
- }
- }
}
- public String getPathPrefix() { return pathPrefix; }
-
public String toString() {
return "HttpRequest(" + request + ")";
}
@@ -66,25 +52,11 @@ public class StatusPageServer {
return path;
}
- public boolean hasQueryParameters() {
- return !params.isEmpty();
- }
-
- public String getQueryParameter(String name) {
- return params.get(name);
- }
-
- public boolean hasQueryParameter(String name) {
- return params.containsKey(name);
- }
-
- public void setPathPrefix(String pathPrefix) {
- this.pathPrefix = pathPrefix;
- }
}
public interface RequestHandler {
StatusPageResponse handle(HttpRequest request);
+ String pattern();
}
public interface RequestRouter {
@@ -114,12 +86,8 @@ public class StatusPageServer {
private final List<PatternRouting> patterns = new ArrayList<>();
- public void addHandler(Pattern pattern, RequestHandler handler) {
- patterns.add(new PatternRouting(pattern, handler));
- }
-
- public void addHandler(String pattern, RequestHandler handler) {
- addHandler(Pattern.compile(pattern), handler);
+ public void addHandler(RequestHandler handler) {
+ patterns.add(new PatternRouting(Pattern.compile(handler.pattern()), handler));
}
@Override