diff options
author | Jon Bratseth <bratseth@gmail.com> | 2020-04-24 10:27:28 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@gmail.com> | 2020-04-24 10:27:28 +0200 |
commit | 74368e954fb257799d38f2b7d4982ae07c58948c (patch) | |
tree | cf5fc27219e7cf364f18dd3a05b607f44dfc54a9 /node-repository | |
parent | 6094d7c082d642530f1878f568be3e18e52b56a5 (diff) |
Add nodes/v2/application paths
Diffstat (limited to 'node-repository')
4 files changed, 15 insertions, 20 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodeResourcesSerializer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodeResourcesSerializer.java index 10b3d6a4db8..0d0c9305a92 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodeResourcesSerializer.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodeResourcesSerializer.java @@ -18,7 +18,7 @@ public class NodeResourcesSerializer { object.setString("storageType", toString(resources.storageType())); } - public NodeResources.DiskSpeed diskSpeedFrom(String diskSpeed) { + public static NodeResources.DiskSpeed diskSpeedFrom(String diskSpeed) { switch (diskSpeed) { case "fast": return NodeResources.DiskSpeed.fast; case "slow": return NodeResources.DiskSpeed.slow; @@ -36,7 +36,7 @@ public class NodeResourcesSerializer { } } - public NodeResources.StorageType storageTypeFrom(String storageType) { + public static NodeResources.StorageType storageTypeFrom(String storageType) { switch (storageType) { case "local" : return NodeResources.StorageType.local; case "remote": return NodeResources.StorageType.remote; 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 9c1b1e03b11..e275d978e4e 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 @@ -70,7 +70,6 @@ public class NodesApiHandler extends LoggingRequestHandler { private final Orchestrator orchestrator; private final NodeRepository nodeRepository; private final NodeFlavors nodeFlavors; - private final NodeSerializer serializer = new NodeSerializer(); @Inject public NodesApiHandler(LoggingRequestHandler.Context parentCtx, Orchestrator orchestrator, @@ -107,7 +106,7 @@ public class NodesApiHandler extends LoggingRequestHandler { private HttpResponse handleGET(HttpRequest request) { Path path = new Path(request.getUri()); - String pathS = request.getUri().toString(); + String pathS = request.getUri().getPath(); if (pathS.equals( "/nodes/v2/")) return new ResourceResponse(request.getUri(), "state", "node", "command", "maintenance", "upgrade"); if (pathS.equals( "/nodes/v2/node/")) return new NodesResponse(ResponseType.nodeList, request, orchestrator, nodeRepository); if (pathS.startsWith("/nodes/v2/node/")) return new NodesResponse(ResponseType.singleNode, request, orchestrator, nodeRepository); @@ -263,8 +262,8 @@ public class NodesApiHandler extends LoggingRequestHandler { requiredField(resourcesInspector, "memoryGb", Inspector::asDouble), requiredField(resourcesInspector, "diskGb", Inspector::asDouble), requiredField(resourcesInspector, "bandwidthGbps", Inspector::asDouble), - optionalString(resourcesInspector.field("diskSpeed")).map(serializer::diskSpeedFrom).orElse(NodeResources.DiskSpeed.getDefault()), - optionalString(resourcesInspector.field("storageType")).map(serializer::storageTypeFrom).orElse(NodeResources.StorageType.getDefault()))); + optionalString(resourcesInspector.field("diskSpeed")).map(NodeResourcesSerializer::diskSpeedFrom).orElse(NodeResources.DiskSpeed.getDefault()), + optionalString(resourcesInspector.field("storageType")).map(NodeResourcesSerializer::storageTypeFrom).orElse(NodeResources.StorageType.getDefault()))); } Flavor flavor = nodeFlavors.getFlavorOrThrow(flavorInspector.asString()); @@ -278,9 +277,9 @@ public class NodesApiHandler extends LoggingRequestHandler { if (resourcesInspector.field("bandwidthGbps").valid()) flavor = flavor.with(flavor.resources().withBandwidthGbps(resourcesInspector.field("bandwidthGbps").asDouble())); if (resourcesInspector.field("diskSpeed").valid()) - flavor = flavor.with(flavor.resources().with(serializer.diskSpeedFrom(resourcesInspector.field("diskSpeed").asString()))); + flavor = flavor.with(flavor.resources().with(NodeResourcesSerializer.diskSpeedFrom(resourcesInspector.field("diskSpeed").asString()))); if (resourcesInspector.field("storageType").valid()) - flavor = flavor.with(flavor.resources().with(serializer.storageTypeFrom(resourcesInspector.field("storageType").asString()))); + flavor = flavor.with(flavor.resources().with(NodeResourcesSerializer.storageTypeFrom(resourcesInspector.field("storageType").asString()))); } return flavor; } @@ -293,7 +292,7 @@ public class NodesApiHandler extends LoggingRequestHandler { private NodeType nodeTypeFromSlime(Inspector object) { if (! object.valid()) return NodeType.tenant; // default - return serializer.typeFrom(object.asString()); + return NodeSerializer.typeFrom(object.asString()); } private Optional<TenantName> reservedToFromSlime(Inspector object) { diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesResponse.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesResponse.java index fbb9b207c32..c6b92d0a7f5 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesResponse.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesResponse.java @@ -5,7 +5,6 @@ import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.ClusterMembership; import com.yahoo.config.provision.DockerImage; import com.yahoo.config.provision.Flavor; -import com.yahoo.config.provision.NodeResources; import com.yahoo.config.provision.NodeType; import com.yahoo.config.provision.serialization.NetworkPortsSerializer; import com.yahoo.container.jdisc.HttpRequest; @@ -48,7 +47,6 @@ class NodesResponse extends HttpResponse { private final Function<HostName, Optional<HostInfo>> orchestrator; private final NodeRepository nodeRepository; private final Slime slime; - private final NodeSerializer serializer = new NodeSerializer(); public NodesResponse(ResponseType responseType, HttpRequest request, Orchestrator orchestrator, NodeRepository nodeRepository) { @@ -65,7 +63,7 @@ class NodesResponse extends HttpResponse { switch (responseType) { case nodeList: nodesToSlime(root); break; case stateList : statesToSlime(root); break; - case nodesInStateList: nodesToSlime(serializer.stateFrom(lastElement(parentUrl)), root); break; + case nodesInStateList: nodesToSlime(NodeSerializer.stateFrom(lastElement(parentUrl)), root); break; case singleNode : nodeToSlime(lastElement(parentUrl), root); break; default: throw new IllegalArgumentException(); } @@ -97,11 +95,11 @@ class NodesResponse extends HttpResponse { private void statesToSlime(Cursor root) { Cursor states = root.setObject("states"); for (Node.State state : Node.State.values()) - toSlime(state, states.setObject(serializer.toString(state))); + toSlime(state, states.setObject(NodeSerializer.toString(state))); } private void toSlime(Node.State state, Cursor object) { - object.setString("url", parentUrl + serializer.toString(state)); + object.setString("url", parentUrl + NodeSerializer.toString(state)); if (recursive) nodesToSlime(state, object); } @@ -136,10 +134,10 @@ class NodesResponse extends HttpResponse { object.setString("url", nodeParentUrl + node.hostname()); if ( ! allFields) return; object.setString("id", node.hostname()); - object.setString("state", serializer.toString(node.state())); + object.setString("state", NodeSerializer.toString(node.state())); object.setString("type", node.type().name()); object.setString("hostname", node.hostname()); - object.setString("type", serializer.toString(node.type())); + object.setString("type", NodeSerializer.toString(node.type())); if (node.parentHostname().isPresent()) { object.setString("parentHostname", node.parentHostname().get()); } diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodeSerializerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodeSerializerTest.java index 05b23addddf..ed2aae64b5f 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodeSerializerTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodeSerializerTest.java @@ -13,19 +13,17 @@ import static org.junit.Assert.assertEquals; */ public class NodeSerializerTest { - private final NodeSerializer serializer = new NodeSerializer(); - @Test public void serialize_node_types() { for (NodeType t : NodeType.values()) { - assertEquals(t, serializer.typeFrom(serializer.toString(t))); + assertEquals(t, NodeSerializer.typeFrom(NodeSerializer.toString(t))); } } @Test public void serialize_node_states() { for (Node.State s : Node.State.values()) { - assertEquals(s, serializer.stateFrom(serializer.toString(s))); + assertEquals(s, NodeSerializer.stateFrom(NodeSerializer.toString(s))); } } |