diff options
author | Jon Bratseth <bratseth@verizonmedia.com> | 2019-11-13 16:08:38 +0100 |
---|---|---|
committer | Jon Bratseth <bratseth@verizonmedia.com> | 2019-11-13 16:08:38 +0100 |
commit | 4684848c05c42d51bd5aa45d9b9f5d340b21a3c5 (patch) | |
tree | e371fe2246458ccff580bfacd44e8e729ca08efa /node-admin/src | |
parent | 2b0bb42408c14ab99a83938196d9a68e459c6ac4 (diff) |
Pass and receive remoteStorage
Diffstat (limited to 'node-admin/src')
4 files changed, 31 insertions, 10 deletions
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()); } + } |