summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--config-provisioning/abi-spec.json2
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/ConfigServerApiImpl.java2
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepository.java26
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/bindings/NodeRepositoryNode.java3
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepositoryTest.java10
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesApiHandler.java1
6 files changed, 32 insertions, 12 deletions
diff --git a/config-provisioning/abi-spec.json b/config-provisioning/abi-spec.json
index 5038cc8742a..17e16ceb4b2 100644
--- a/config-provisioning/abi-spec.json
+++ b/config-provisioning/abi-spec.json
@@ -641,7 +641,7 @@
"public com.yahoo.config.provision.NodeResources withDiskSpeed(com.yahoo.config.provision.NodeResources$DiskSpeed)",
"public com.yahoo.config.provision.NodeResources with(com.yahoo.config.provision.NodeResources$DiskSpeed)",
"public com.yahoo.config.provision.NodeResources with(com.yahoo.config.provision.NodeResources$StorageType)",
- "public com.yahoo.config.provision.NodeResources numbersOnly()",
+ "public com.yahoo.config.provision.NodeResources justNumbers()",
"public com.yahoo.config.provision.NodeResources subtract(com.yahoo.config.provision.NodeResources)",
"public com.yahoo.config.provision.NodeResources add(com.yahoo.config.provision.NodeResources)",
"public boolean equals(java.lang.Object)",
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/ConfigServerApiImpl.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/ConfigServerApiImpl.java
index 3f6909b8ea8..4dadcb359ea 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/ConfigServerApiImpl.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/ConfigServerApiImpl.java
@@ -47,6 +47,7 @@ import java.util.logging.Logger;
* @author bjorncs
*/
public class ConfigServerApiImpl implements ConfigServerApi {
+
private static final Logger logger = Logger.getLogger(ConfigServerApiImpl.class.getName());
private final ObjectMapper mapper = new ObjectMapper();
@@ -225,4 +226,5 @@ public class ConfigServerApiImpl implements ConfigServerApi {
Collections.shuffle(shuffledConfigServerHosts);
return shuffledConfigServerHosts;
}
+
}
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepository.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepository.java
index 49222222a18..df240e9cce3 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepository.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepository.java
@@ -28,11 +28,9 @@ import java.util.logging.Logger;
import java.util.stream.Collectors;
import java.util.stream.Stream;
-import static com.yahoo.config.provision.NodeResources.DiskSpeed.fast;
-import static com.yahoo.config.provision.NodeResources.DiskSpeed.slow;
-
/**
- * @author stiankri, dybis
+ * @author stiankri
+ * @author dybis
*/
public class RealNodeRepository implements NodeRepository {
private static final Logger logger = Logger.getLogger(RealNodeRepository.class.getName());
@@ -68,7 +66,7 @@ public class RealNodeRepository implements NodeRepository {
public Optional<NodeSpec> getOptionalNode(String hostName) {
try {
NodeRepositoryNode nodeResponse = configServerApi.get("/nodes/v2/node/" + hostName,
- NodeRepositoryNode.class);
+ NodeRepositoryNode.class);
return Optional.ofNullable(nodeResponse).map(RealNodeRepository::createNodeSpec);
} catch (HttpException.NotFoundException | HttpException.ForbiddenException e) {
@@ -152,7 +150,7 @@ public class RealNodeRepository implements NodeRepository {
Optional<NodeMembership> membership = Optional.ofNullable(node.membership)
.map(m -> new NodeMembership(m.clusterType, m.clusterId, m.group, m.index, m.retired));
NodeReports reports = NodeReports.fromMap(Optional.ofNullable(node.reports).orElseGet(Map::of));
-
+ System.out.println("Got node " + node);
return new NodeSpec(
node.hostname,
Optional.ofNullable(node.wantedDockerImage).map(DockerImage::fromString),
@@ -180,13 +178,26 @@ public class RealNodeRepository implements NodeRepository {
node.minMainMemoryAvailableGb,
node.minDiskAvailableGb,
node.bandwidthGbps,
- node.fastDisk ? fast : slow),
+ toDiskSpeed(node.fastDisk),
+ toStorageType(node.remoteStorage)),
node.ipAddresses,
node.additionalIpAddresses,
reports,
Optional.ofNullable(node.parentHostname));
}
+ private static NodeResources.DiskSpeed toDiskSpeed(Boolean fastDisk) {
+ if (fastDisk == null) return NodeResources.DiskSpeed.any;
+ if (fastDisk) return NodeResources.DiskSpeed.fast;
+ else return NodeResources.DiskSpeed.slow;
+ }
+
+ private static NodeResources.StorageType toStorageType(Boolean remoteStorage) {
+ if (remoteStorage == null) return NodeResources.StorageType.any;
+ if (remoteStorage) return NodeResources.StorageType.remote;
+ else return NodeResources.StorageType.local;
+ }
+
private static NodeRepositoryNode nodeRepositoryNodeFromAddNode(AddNode addNode) {
NodeRepositoryNode node = new NodeRepositoryNode();
node.openStackId = "fake-" + addNode.hostname;
@@ -200,6 +211,7 @@ public class RealNodeRepository implements NodeRepository {
node.minDiskAvailableGb = resources.diskGb();
node.bandwidthGbps = resources.bandwidthGbps();
node.fastDisk = resources.diskSpeed() == NodeResources.DiskSpeed.fast;
+ node.remoteStorage = resources.storageType() == NodeResources.StorageType.remote;
});
node.type = addNode.nodeType.name();
node.ipAddresses = addNode.ipAddresses;
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/bindings/NodeRepositoryNode.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/bindings/NodeRepositoryNode.java
index 9919c3affa6..bf124f4ad86 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/bindings/NodeRepositoryNode.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/bindings/NodeRepositoryNode.java
@@ -58,6 +58,8 @@ public class NodeRepositoryNode {
public Integer failCount;
@JsonProperty("fastDisk")
public Boolean fastDisk;
+ @JsonProperty("remoteStorage")
+ public Boolean remoteStorage;
@JsonProperty("bandwidthGbps")
public Double bandwidthGbps;
@JsonProperty("environment")
@@ -110,6 +112,7 @@ public class NodeRepositoryNode {
", wantedFirmwareCheck=" + wantedFirmwareCheck +
", failCount=" + failCount +
", fastDisk=" + fastDisk +
+ ", remoteStorage=" + remoteStorage +
", bandwidthGbps=" + bandwidthGbps +
", environment='" + environment + '\'' +
", type='" + type + '\'' +
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepositoryTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepositoryTest.java
index 108f29b11cd..9cdb815a8ec 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepositoryTest.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepositoryTest.java
@@ -162,10 +162,13 @@ public class RealNodeRepositoryTest {
@Test
public void testAddNodes() {
- AddNode host = AddNode.forHost("host123.domain.tld", "default", Optional.of(FlavorOverrides.ofDisk(123)), NodeType.confighost,
- Set.of("::1"), Set.of("::2", "::3"));
+ AddNode host = AddNode.forHost("host123.domain.tld",
+ "default",
+ Optional.of(FlavorOverrides.ofDisk(123)),
+ NodeType.confighost,
+ Set.of("::1"), Set.of("::2", "::3"));
- NodeResources nodeResources = new NodeResources(1, 2, 3, 4, NodeResources.DiskSpeed.slow);
+ NodeResources nodeResources = new NodeResources(1, 2, 3, 4, NodeResources.DiskSpeed.slow, NodeResources.StorageType.local);
AddNode node = AddNode.forNode("host123-1.domain.tld", "host123.domain.tld", nodeResources, NodeType.config, Set.of("::2", "::3"));
assertFalse(nodeRepositoryApi.getOptionalNode("host123.domain.tld").isPresent());
@@ -180,4 +183,5 @@ public class RealNodeRepositoryTest {
assertEquals(nodeResources, nodeSpec.resources());
assertEquals(NodeType.config, nodeSpec.type());
}
+
}
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 b7b987e0d3f..ee1e5c7fa45 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
@@ -53,7 +53,6 @@ import static com.yahoo.config.provision.NodeResources.DiskSpeed.fast;
import static com.yahoo.config.provision.NodeResources.DiskSpeed.slow;
import static com.yahoo.config.provision.NodeResources.StorageType.remote;
import static com.yahoo.config.provision.NodeResources.StorageType.local;
-import static com.yahoo.config.provision.NodeResources.StorageType.any;
import static com.yahoo.vespa.config.SlimeUtils.optionalString;
/**