diff options
author | Martin Polden <mpolden@mpolden.no> | 2019-09-30 14:01:27 +0200 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2019-09-30 14:01:27 +0200 |
commit | 57934fd0d48fcc24e08d17177f68c19db7fcf0f2 (patch) | |
tree | 0c74a9bdc42977a9cad86122bac31cd381318d99 | |
parent | e2735128a9e93a7649a917422a149649ec0efc0a (diff) |
Use ResourceResponse
3 files changed, 12 insertions, 59 deletions
diff --git a/container-core/src/main/java/com/yahoo/restapi/ResourceResponse.java b/container-core/src/main/java/com/yahoo/restapi/ResourceResponse.java index 4852bfafa60..ff301d44798 100644 --- a/container-core/src/main/java/com/yahoo/restapi/ResourceResponse.java +++ b/container-core/src/main/java/com/yahoo/restapi/ResourceResponse.java @@ -9,6 +9,7 @@ import com.yahoo.slime.Slime; import java.io.IOException; import java.io.OutputStream; +import java.net.URI; /** * Returns a response containing an array of links to sub-resources @@ -19,18 +20,21 @@ public class ResourceResponse extends HttpResponse { private final Slime slime = new Slime(); - public ResourceResponse(HttpRequest request, String ... subResources) { + public ResourceResponse(URI parentUrl, String ... subResources) { super(200); Cursor resourceArray = slime.setObject().setArray("resources"); for (String subResource : subResources) { Cursor resourceEntry = resourceArray.addObject(); - resourceEntry.setString("url", new Uri(request.getUri()) - .append(subResource) - .withTrailingSlash() - .toString()); + resourceEntry.setString("url", new Uri(parentUrl).append(subResource) + .withTrailingSlash() + .toString()); } } + public ResourceResponse(HttpRequest request, String ... subResources) { + this(request.getUri(), subResources); + } + @Override public void render(OutputStream stream) throws IOException { new JsonFormat(true).encode(stream, slime); diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesApiHandler.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesApiHandler.java index 95893730af9..d12150408c4 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesApiHandler.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesApiHandler.java @@ -15,6 +15,7 @@ import com.yahoo.io.IOUtils; import com.yahoo.restapi.ErrorResponse; import com.yahoo.restapi.MessageResponse; import com.yahoo.restapi.Path; +import com.yahoo.restapi.ResourceResponse; import com.yahoo.slime.ArrayTraverser; import com.yahoo.slime.Inspector; import com.yahoo.slime.Slime; @@ -100,13 +101,13 @@ public class NodesApiHandler extends LoggingRequestHandler { private HttpResponse handleGET(HttpRequest request) { String path = request.getUri().getPath(); - if (path.equals( "/nodes/v2/")) return ResourcesResponse.fromStrings(request.getUri(), "state", "node", "command", "maintenance", "upgrade"); + if (path.equals( "/nodes/v2/")) return new ResourceResponse(request.getUri(), "state", "node", "command", "maintenance", "upgrade"); if (path.equals( "/nodes/v2/node/")) return new NodesResponse(ResponseType.nodeList, request, orchestrator, nodeRepository); if (path.startsWith("/nodes/v2/node/")) return new NodesResponse(ResponseType.singleNode, request, orchestrator, nodeRepository); if (path.equals( "/nodes/v2/state/")) return new NodesResponse(ResponseType.stateList, request, orchestrator, nodeRepository); if (path.startsWith("/nodes/v2/state/")) return new NodesResponse(ResponseType.nodesInStateList, request, orchestrator, nodeRepository); if (path.startsWith("/nodes/v2/acl/")) return new NodeAclResponse(request, nodeRepository); - if (path.equals( "/nodes/v2/command/")) return ResourcesResponse.fromStrings(request.getUri(), "restart", "reboot"); + if (path.equals( "/nodes/v2/command/")) return new ResourceResponse(request.getUri(), "restart", "reboot"); if (path.equals( "/nodes/v2/maintenance/")) return new JobsResponse(nodeRepository.jobControl()); if (path.equals( "/nodes/v2/upgrade/")) return new UpgradeResponse(nodeRepository.infrastructureVersions(), nodeRepository.osVersions(), nodeRepository.dockerImages()); if (path.startsWith("/nodes/v2/capacity")) return new HostCapacityResponse(nodeRepository, request); diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/ResourcesResponse.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/ResourcesResponse.java deleted file mode 100644 index ceb95ce53e0..00000000000 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/ResourcesResponse.java +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.hosted.provision.restapi.v2; - -import com.yahoo.container.jdisc.HttpResponse; -import com.yahoo.slime.Cursor; -import com.yahoo.slime.JsonFormat; -import com.yahoo.slime.Slime; - -import java.io.IOException; -import java.io.OutputStream; -import java.net.URI; - -/** - * A response which lists a set of subresources as full urls - * - * @author bratseth - */ -public class ResourcesResponse extends HttpResponse { - - private final URI parentUrl; - - private final String[] subResources; - - public ResourcesResponse(URI parentUrl, String[] subResources) { - super(200); - this.parentUrl = parentUrl; - this.subResources = subResources; - } - - @Override - public void render(OutputStream stream) throws IOException { - String parentUrlString = parentUrl.toString(); - if ( ! parentUrlString.endsWith("/")) - parentUrlString = parentUrlString + "/"; - - Slime slime = new Slime(); - Cursor root = slime.setObject(); - Cursor array = root.setArray("resources"); - for (String subResource : subResources) { - array.addObject().setString("url", parentUrlString + subResource + "/"); - } - new JsonFormat(true).encode(stream, slime); - } - - @Override - public String getContentType() { return "application/json"; } - - public static ResourcesResponse fromStrings(URI parentUrl, String ... subResources) { - return new ResourcesResponse(parentUrl, subResources); - } - -} |