summaryrefslogtreecommitdiffstats
path: root/node-repository
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2020-04-24 10:27:28 +0200
committerJon Bratseth <bratseth@gmail.com>2020-04-24 10:27:28 +0200
commit74368e954fb257799d38f2b7d4982ae07c58948c (patch)
treecf5fc27219e7cf364f18dd3a05b607f44dfc54a9 /node-repository
parent6094d7c082d642530f1878f568be3e18e52b56a5 (diff)
Add nodes/v2/application paths
Diffstat (limited to 'node-repository')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodeResourcesSerializer.java4
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesApiHandler.java13
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesResponse.java12
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodeSerializerTest.java6
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)));
}
}