diff options
author | Jon Marius Venstad <jonmv@gmail.com> | 2022-04-07 16:29:59 +0200 |
---|---|---|
committer | Jon Marius Venstad <jonmv@gmail.com> | 2022-04-07 16:29:59 +0200 |
commit | 75114c6c4b96f507071a2caf145b24a22ef0c5ff (patch) | |
tree | e4cca74c128bfdad380bc74a9f501d981b9c78ef /configserver/src/main/java | |
parent | 190dde5de267462b02c43a18ad605da469715949 (diff) |
Use HttpURL for base url and query in StateRequestHandler
Diffstat (limited to 'configserver/src/main/java')
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/serviceview/StateRequestHandler.java | 42 |
1 files changed, 21 insertions, 21 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/serviceview/StateRequestHandler.java b/configserver/src/main/java/com/yahoo/vespa/serviceview/StateRequestHandler.java index 1eea88e9caf..59b91a52791 100644 --- a/configserver/src/main/java/com/yahoo/vespa/serviceview/StateRequestHandler.java +++ b/configserver/src/main/java/com/yahoo/vespa/serviceview/StateRequestHandler.java @@ -12,7 +12,6 @@ import ai.vespa.http.HttpURL.Query; import ai.vespa.http.HttpURL.Scheme; import com.yahoo.restapi.RestApi; import com.yahoo.restapi.RestApiRequestHandler; -import com.yahoo.restapi.UriBuilder; import com.yahoo.vespa.serviceview.bindings.ApplicationView; import com.yahoo.vespa.serviceview.bindings.ConfigClient; import com.yahoo.vespa.serviceview.bindings.HealthClient; @@ -92,7 +91,7 @@ public class StateRequestHandler extends RestApiRequestHandler<StateRequestHandl } private ApplicationView getDefaultUserInfo(RestApi.RequestContext context) { - return getUserInfo(context.uriBuilder(), "default", "default", "default", "default", "default"); + return getUserInfo(context.baseRequestURL(), "default", "default", "default", "default", "default"); } private ApplicationView getUserInfo(RestApi.RequestContext context) { @@ -101,7 +100,7 @@ public class StateRequestHandler extends RestApiRequestHandler<StateRequestHandl String environmentName = context.pathParameters().getStringOrThrow("environmentName"); String regionName = context.pathParameters().getStringOrThrow("regionName"); String instanceName = context.pathParameters().getStringOrThrow("instanceName"); - return getUserInfo(context.uriBuilder(), tenantName, applicationName, environmentName, regionName, instanceName); + return getUserInfo(context.baseRequestURL(), tenantName, applicationName, environmentName, regionName, instanceName); } public HashMap<?, ?> singleService(RestApi.RequestContext context) { @@ -112,14 +111,15 @@ public class StateRequestHandler extends RestApiRequestHandler<StateRequestHandl String instanceName = context.pathParameters().getStringOrThrow("instanceName"); String identifier = context.pathParameters().getStringOrThrow("serviceIdentifier"); Path apiParams = context.pathParameters().getRest().orElse(Path.empty()); - return singleService(context.uriBuilder(), context.request().getUri(), tenantName, applicationName, environmentName, regionName, instanceName, identifier, apiParams); + Query apiQuery = context.queryParameters().getFullQuery(); + return singleService(context.baseRequestURL(), tenantName, applicationName, environmentName, regionName, instanceName, identifier, apiParams, apiQuery); } - protected ApplicationView getUserInfo(UriBuilder uriBuilder, String tenantName, String applicationName, String environmentName, String regionName, String instanceName) { + protected ApplicationView getUserInfo(HttpURL url, String tenantName, String applicationName, String environmentName, String regionName, String instanceName) { ServiceModel model = new ServiceModel( getModelConfig(tenantName, applicationName, environmentName, regionName, instanceName)); return model.showAllClusters( - baseUri(uriBuilder).toString(), + baseUri(url).toString(), applicationIdentifier(tenantName, applicationName, environmentName, regionName, instanceName)); } @@ -130,18 +130,18 @@ public class StateRequestHandler extends RestApiRequestHandler<StateRequestHandl } protected HashMap<?, ?> singleService( - UriBuilder uriBuilder, URI requestUri, String tenantName, String applicationName, String environmentName, String regionName, String instanceName, String identifier, Path apiParams) { + HttpURL url, String tenantName, String applicationName, String environmentName, String regionName, String instanceName, String identifier, Path path, Query query) { ServiceModel model = new ServiceModel(getModelConfig(tenantName, applicationName, environmentName, regionName, instanceName)); Service s = model.getService(identifier); int requestedPort = s.matchIdentifierWithPort(identifier); - HealthClient resource = getHealthClient(apiParams, s, requestedPort, requestUri.getRawQuery(), client); + HealthClient resource = getHealthClient(path, s, requestedPort, query, client); HashMap<?, ?> apiResult = resource.getHealthInfo(); - rewriteResourceLinks(uriBuilder, apiResult, model, s, applicationIdentifier(tenantName, applicationName, environmentName, regionName, instanceName), identifier); + rewriteResourceLinks(url, apiResult, model, s, applicationIdentifier(tenantName, applicationName, environmentName, regionName, instanceName), identifier); return apiResult; } - protected HealthClient getHealthClient(Path apiParams, Service s, int requestedPort, String uriQuery, Client client) { - URI uri = HttpURL.create(Scheme.http, DomainName.of(s.host), requestedPort, apiParams, Query.parse(uriQuery)).asURI(); + protected HealthClient getHealthClient(Path apiParams, Service s, int requestedPort, Query query, Client client) { + URI uri = HttpURL.create(Scheme.http, DomainName.of(s.host), requestedPort, apiParams, query).asURI(); WebTarget target = client.target(uri); return WebResourceFactory.newResource(HealthClient.class, target); } @@ -154,7 +154,7 @@ public class StateRequestHandler extends RestApiRequestHandler<StateRequestHandl + "/instance/" + instance; } - private void rewriteResourceLinks(UriBuilder uriBuilder, + private void rewriteResourceLinks(HttpURL url, Object apiResult, ServiceModel model, Service self, @@ -165,7 +165,7 @@ public class StateRequestHandler extends RestApiRequestHandler<StateRequestHandl Object resource = i.next(); if (resource instanceof String) { try { - StringBuilder buffer = linkBuffer(uriBuilder, applicationIdentifier); + StringBuilder buffer = linkBuffer(url, applicationIdentifier); // if it points to a port and host not part of the application, rewriting will not occur, so this is kind of safe retarget(model, self, buffer, (String) resource); i.set(buffer.toString()); @@ -173,7 +173,7 @@ public class StateRequestHandler extends RestApiRequestHandler<StateRequestHandl break; // assume relatively homogenous lists when doing rewrites to avoid freezing up on scanning long lists } } else { - rewriteResourceLinks(uriBuilder, resource, model, self, applicationIdentifier, incomingIdentifier); + rewriteResourceLinks(url, resource, model, self, applicationIdentifier, incomingIdentifier); } } } else if (apiResult instanceof Map) { @@ -182,14 +182,14 @@ public class StateRequestHandler extends RestApiRequestHandler<StateRequestHandl for (Map.Entry<Object, Object> entry : api.entrySet()) { if (SINGLE_API_LINK.equals(entry.getKey()) && entry.getValue() instanceof String) { try { - rewriteSingleLink(entry, model, self, linkBuffer(uriBuilder, applicationIdentifier)); + rewriteSingleLink(entry, model, self, linkBuffer(url, applicationIdentifier)); } catch (GiveUpLinkRetargetingException e) { // NOP } } else if ("link".equals(entry.getKey()) && entry.getValue() instanceof String) { - buildSingleLink(entry, linkBuffer(uriBuilder, applicationIdentifier), incomingIdentifier); + buildSingleLink(entry, linkBuffer(url, applicationIdentifier), incomingIdentifier); } else { - rewriteResourceLinks(uriBuilder, entry.getValue(), model, self, applicationIdentifier, incomingIdentifier); + rewriteResourceLinks(url, entry.getValue(), model, self, applicationIdentifier, incomingIdentifier); } } } @@ -210,8 +210,8 @@ public class StateRequestHandler extends RestApiRequestHandler<StateRequestHandl } } - private StringBuilder linkBuffer(UriBuilder uriBuilder, String applicationIdentifier) { - return baseUri(uriBuilder).append(applicationIdentifier); + private StringBuilder linkBuffer(HttpURL url, String applicationIdentifier) { + return new StringBuilder(baseUri(url).appendPath(Path.parse(applicationIdentifier)).toString()); } private void rewriteSingleLink(Map.Entry<Object, Object> entry, @@ -247,7 +247,7 @@ public class StateRequestHandler extends RestApiRequestHandler<StateRequestHandl newUri.append(link.getRawPath()); } - private static StringBuilder baseUri(UriBuilder uriBuilder) { - return new StringBuilder(uriBuilder.withPath("/serviceview/v1/").toString()); + private static HttpURL baseUri(HttpURL url) { + return url.withPath(Path.parse("/serviceview/v1/")); } } |