diff options
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 |