diff options
author | Jon Marius Venstad <jonmv@users.noreply.github.com> | 2019-08-28 16:19:41 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-08-28 16:19:41 +0200 |
commit | 3956de568b255b3f9a408d7664c4295eb9a9961a (patch) | |
tree | f6a64d9610bce8e4a34bec207e4676c6242a5ae1 | |
parent | 5316c3c24c15cac4e8ab62671a23d2b1eea868e5 (diff) | |
parent | fa7f7dfe5abc10ffd42b48108dcd429a86720390 (diff) |
Merge pull request #10444 from vespa-engine/freva/extend-nodes-api
Add resources to application nodes API
7 files changed, 78 insertions, 6 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/Node.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/Node.java index d618464fc2a..e6639a33738 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/Node.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/Node.java @@ -31,6 +31,11 @@ public class Node { private final long wantedRestartGeneration; private final long rebootGeneration; private final long wantedRebootGeneration; + private final double vcpu; + private final double memoryGb; + private final double diskGb; + private final double bandwidthGbps; + private final boolean fastDisk; private final String canonicalFlavor; private final String clusterId; private final ClusterType clusterType; @@ -38,7 +43,7 @@ public class Node { public Node(HostName hostname, State state, NodeType type, Optional<ApplicationId> owner, Version currentVersion, Version wantedVersion, Version currentOsVersion, Version wantedOsVersion, ServiceState serviceState, long restartGeneration, long wantedRestartGeneration, long rebootGeneration, long wantedRebootGeneration, - String canonicalFlavor, String clusterId, ClusterType clusterType) { + double vcpu, double memoryGb, double diskGb, double bandwidthGbps, boolean fastDisk, String canonicalFlavor, String clusterId, ClusterType clusterType) { this.hostname = hostname; this.state = state; this.type = type; @@ -52,6 +57,11 @@ public class Node { this.wantedRestartGeneration = wantedRestartGeneration; this.rebootGeneration = rebootGeneration; this.wantedRebootGeneration = wantedRebootGeneration; + this.vcpu = vcpu; + this.memoryGb = memoryGb; + this.diskGb = diskGb; + this.bandwidthGbps = bandwidthGbps; + this.fastDisk = fastDisk; this.canonicalFlavor = canonicalFlavor; this.clusterId = clusterId; this.clusterType = clusterType; @@ -62,7 +72,7 @@ public class Node { Version currentVersion, Version wantedVersion) { this(hostname, state, type, owner, currentVersion, wantedVersion, Version.emptyVersion, Version.emptyVersion, ServiceState.unorchestrated, 0, 0, 0, 0, - "d-2-8-50", "cluster", ClusterType.container); + 2, 8, 50, 1, true, "d-2-8-50", "cluster", ClusterType.container); } public HostName hostname() { @@ -115,6 +125,26 @@ public class Node { return wantedRebootGeneration; } + public double vcpu() { + return vcpu; + } + + public double memoryGb() { + return memoryGb; + } + + public double diskGb() { + return diskGb; + } + + public double bandwidthGbps() { + return bandwidthGbps; + } + + public boolean fastDisk() { + return fastDisk; + } + public String canonicalFlavor() { return canonicalFlavor; } diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/NodeRepository.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/NodeRepository.java index 916a388692e..fd6b5b48d10 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/NodeRepository.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/NodeRepository.java @@ -49,6 +49,11 @@ public interface NodeRepository { n.getRestartGeneration(), n.getCurrentRebootGeneration(), n.getRebootGeneration(), + n.getMinCpuCores(), + n.getMinMainMemoryAvailableGb(), + n.getMinDiskAvailableGb(), + n.getBandwidth() / 1000, + n.getFastDisk(), n.getCanonicalFlavor(), n.getMembership().clusterid, clusterTypeOf(n.getMembership().clustertype))) diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java index 3392576643f..a04f9a99ec0 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java @@ -391,6 +391,11 @@ public class ApplicationApiHandler extends LoggingRequestHandler { nodeObject.setString("orchestration", valueOf(node.serviceState())); nodeObject.setString("version", node.currentVersion().toString()); nodeObject.setString("flavor", node.canonicalFlavor()); + nodeObject.setDouble("vcpu", node.vcpu()); + nodeObject.setDouble("memoryGb", node.memoryGb()); + nodeObject.setDouble("diskGb", node.diskGb()); + nodeObject.setDouble("bandwidthGbps", node.bandwidthGbps()); + nodeObject.setBool("fastDisk", node.fastDisk()); nodeObject.setString("clusterId", node.clusterId()); nodeObject.setString("clusterType", valueOf(node.clusterType())); } diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/NodeRepositoryMock.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/NodeRepositoryMock.java index 45c2df5cb77..61cb5c4a2ed 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/NodeRepositoryMock.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/NodeRepositoryMock.java @@ -124,6 +124,11 @@ public class NodeRepositoryMock implements NodeRepository { node.wantedRestartGeneration(), node.rebootGeneration(), node.wantedRebootGeneration(), + node.vcpu(), + node.memoryGb(), + node.diskGb(), + node.bandwidthGbps(), + node.fastDisk(), node.canonicalFlavor(), node.clusterId(), node.clusterType())) @@ -169,6 +174,11 @@ public class NodeRepositoryMock implements NodeRepository { node.wantedRestartGeneration() + 1, node.rebootGeneration(), node.wantedRebootGeneration(), + node.vcpu(), + node.memoryGb(), + node.diskGb(), + node.bandwidthGbps(), + node.fastDisk(), node.canonicalFlavor(), node.clusterId(), node.clusterType())); @@ -188,6 +198,11 @@ public class NodeRepositoryMock implements NodeRepository { node.wantedRestartGeneration(), node.rebootGeneration(), node.wantedRebootGeneration(), + node.vcpu(), + node.memoryGb(), + node.diskGb(), + node.bandwidthGbps(), + node.fastDisk(), node.canonicalFlavor(), node.clusterId(), node.clusterType())); @@ -207,6 +222,11 @@ public class NodeRepositoryMock implements NodeRepository { node.wantedRestartGeneration(), node.rebootGeneration(), node.wantedRebootGeneration() + 1, + node.vcpu(), + node.memoryGb(), + node.diskGb(), + node.bandwidthGbps(), + node.fastDisk(), node.canonicalFlavor(), node.clusterId(), node.clusterType())); @@ -226,6 +246,11 @@ public class NodeRepositoryMock implements NodeRepository { node.wantedRestartGeneration(), node.rebootGeneration() + 1, node.wantedRebootGeneration(), + node.vcpu(), + node.memoryGb(), + node.diskGb(), + node.bandwidthGbps(), + node.fastDisk(), node.canonicalFlavor(), node.clusterId(), node.clusterType())); diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgraderTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgraderTest.java index 38aa4af4756..4bee9fe2f75 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgraderTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgraderTest.java @@ -4,10 +4,10 @@ package com.yahoo.vespa.hosted.controller.maintenance; import com.yahoo.component.Version; import com.yahoo.config.provision.CloudName; import com.yahoo.config.provision.SystemName; -import com.yahoo.config.provision.zone.ZoneApi; -import com.yahoo.vespa.hosted.controller.api.integration.configserver.Node; import com.yahoo.config.provision.zone.UpgradePolicy; +import com.yahoo.config.provision.zone.ZoneApi; import com.yahoo.config.provision.zone.ZoneId; +import com.yahoo.vespa.hosted.controller.api.integration.configserver.Node; import com.yahoo.vespa.hosted.controller.application.SystemApplication; import com.yahoo.vespa.hosted.controller.deployment.DeploymentTester; import com.yahoo.vespa.hosted.controller.integration.NodeRepositoryMock; @@ -164,7 +164,8 @@ public class OsUpgraderTest { node.hostname(), node.state(), node.type(), node.owner(), node.currentVersion(), node.wantedVersion(), node.wantedOsVersion(), node.wantedOsVersion(), node.serviceState(), node.restartGeneration(), node.wantedRestartGeneration(), node.rebootGeneration(), - node.wantedRebootGeneration(), node.canonicalFlavor(), node.clusterId(), node.clusterType())); + node.wantedRebootGeneration(), node.vcpu(), node.memoryGb(), node.diskGb(), + node.bandwidthGbps(), node.fastDisk(), node.canonicalFlavor(), node.clusterId(), node.clusterType())); } assertCurrent(version, application, zone); } diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application-nodes.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application-nodes.json index e673a610f87..a83c13719d9 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application-nodes.json +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application-nodes.json @@ -6,6 +6,11 @@ "orchestration": "unorchestrated", "version": "6.1", "flavor": "d-2-8-50", + "vcpu": 2.0, + "memoryGb": 8.0, + "diskGb": 50.0, + "bandwidthGbps": 1.0, + "fastDisk": true, "clusterId": "cluster", "clusterType": "container" } diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/os/OsApiTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/os/OsApiTest.java index 745a7af203b..653ab38dc3a 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/os/OsApiTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/os/OsApiTest.java @@ -149,7 +149,8 @@ public class OsApiTest extends ControllerContainerTest { node.hostname(), node.state(), node.type(), node.owner(), node.currentVersion(), node.wantedVersion(), node.wantedOsVersion(), node.wantedOsVersion(), node.serviceState(), node.restartGeneration(), node.wantedRestartGeneration(), node.rebootGeneration(), - node.wantedRebootGeneration(), node.canonicalFlavor(), node.clusterId(), node.clusterType())); + node.wantedRebootGeneration(), node.vcpu(), node.memoryGb(), node.diskGb(), + node.bandwidthGbps(), node.fastDisk(), node.canonicalFlavor(), node.clusterId(), node.clusterType())); } } } |