diff options
author | Valerij Fredriksen <freva@users.noreply.github.com> | 2019-12-05 17:45:39 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-12-05 17:45:39 +0100 |
commit | e4b328f4ee05b55131420df7f6b5a3685d5dffa5 (patch) | |
tree | 3d7e01346fec1d9441a7413f6da076d8b8cbee23 | |
parent | a20c602ab5a9ca89c80c0c7da71d623270aef8fc (diff) | |
parent | b5dfd903915595b6144c7666854c09f86b11a65c (diff) |
Merge pull request #11515 from vespa-engine/freva/cpuCores
Add cpuCores to node response
19 files changed, 40 insertions, 3 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeSpec.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeSpec.java index a9bb42e4dde..d51717d2c5c 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeSpec.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeSpec.java @@ -25,6 +25,7 @@ public class NodeSpec { private final NodeState state; private final NodeType type; private final String flavor; + private final Optional<Double> cpuCores; private final Optional<DockerImage> wantedDockerImage; private final Optional<DockerImage> currentDockerImage; @@ -66,6 +67,7 @@ public class NodeSpec { NodeState state, NodeType type, String flavor, + Optional<Double> cpuCores, Optional<Version> wantedVespaVersion, Optional<Version> currentVespaVersion, Optional<Version> wantedOsVersion, @@ -99,7 +101,8 @@ public class NodeSpec { this.state = Objects.requireNonNull(state); this.type = Objects.requireNonNull(type); this.flavor = Objects.requireNonNull(flavor); - this.modelName = modelName; + this.cpuCores = Objects.requireNonNull(cpuCores); + this.modelName = Objects.requireNonNull(modelName); this.wantedVespaVersion = Objects.requireNonNull(wantedVespaVersion); this.currentVespaVersion = Objects.requireNonNull(currentVespaVersion); this.wantedOsVersion = Objects.requireNonNull(wantedOsVersion); @@ -137,6 +140,10 @@ public class NodeSpec { return flavor; } + public Optional<Double> cpuCores() { + return cpuCores; + } + public Optional<DockerImage> wantedDockerImage() { return wantedDockerImage; } @@ -256,6 +263,7 @@ public class NodeSpec { Objects.equals(state, that.state) && Objects.equals(type, that.type) && Objects.equals(flavor, that.flavor) && + Objects.equals(cpuCores, that.cpuCores) && Objects.equals(wantedVespaVersion, that.wantedVespaVersion) && Objects.equals(currentVespaVersion, that.currentVespaVersion) && Objects.equals(wantedOsVersion, that.wantedOsVersion) && @@ -286,6 +294,7 @@ public class NodeSpec { state, type, flavor, + cpuCores, wantedVespaVersion, currentVespaVersion, wantedOsVersion, @@ -316,6 +325,7 @@ public class NodeSpec { + " state=" + state + " type=" + type + " flavor=" + flavor + + " cpuCores=" + cpuCores + " wantedVespaVersion=" + wantedVespaVersion + " currentVespaVersion=" + currentVespaVersion + " wantedOsVersion=" + wantedOsVersion @@ -343,6 +353,7 @@ public class NodeSpec { private NodeState state; private NodeType type; private String flavor; + private Optional<Double> cpuCores = Optional.empty(); private Optional<DockerImage> wantedDockerImage = Optional.empty(); private Optional<DockerImage> currentDockerImage = Optional.empty(); private Optional<Version> wantedVespaVersion = Optional.empty(); @@ -379,7 +390,7 @@ public class NodeSpec { wantedRebootGeneration(node.wantedRebootGeneration); currentRebootGeneration(node.currentRebootGeneration); reports(new NodeReports(node.reports)); - + node.cpuCores.ifPresent(this::cpuCores); node.wantedDockerImage.ifPresent(this::wantedDockerImage); node.currentDockerImage.ifPresent(this::currentDockerImage); node.wantedVespaVersion.ifPresent(this::wantedVespaVersion); @@ -427,6 +438,11 @@ public class NodeSpec { return this; } + public Builder cpuCores(double cpuCores) { + this.cpuCores = Optional.of(cpuCores); + return this; + } + public Builder wantedVespaVersion(Version wantedVespaVersion) { this.wantedVespaVersion = Optional.of(wantedVespaVersion); return this; @@ -656,7 +672,7 @@ public class NodeSpec { } public NodeSpec build() { - return new NodeSpec(hostname, wantedDockerImage, currentDockerImage, state, type, flavor, + return new NodeSpec(hostname, wantedDockerImage, currentDockerImage, state, type, flavor, cpuCores, wantedVespaVersion, currentVespaVersion, wantedOsVersion, currentOsVersion, allowedToBeDown, wantToDeprovision, owner, membership, wantedRestartGeneration, currentRestartGeneration, 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 7ea39aaa709..38459979e7c 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 @@ -157,6 +157,7 @@ public class RealNodeRepository implements NodeRepository { nodeState, nodeType, node.flavor, + Optional.ofNullable(node.cpuCores), Optional.ofNullable(node.wantedVespaVersion).map(Version::fromString), Optional.ofNullable(node.vespaVersion).map(Version::fromString), Optional.ofNullable(node.wantedOsVersion).map(Version::fromString), 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 1cf2c4decf5..3fdb8b420ce 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 @@ -28,6 +28,8 @@ public class NodeRepositoryNode { public String openStackId; @JsonProperty("flavor") public String flavor; + @JsonProperty("cpuCores") + public Double cpuCores; @JsonProperty("resources") public NodeResources resources; @JsonProperty("membership") @@ -88,6 +90,7 @@ public class NodeRepositoryNode { ", openStackId='" + openStackId + '\'' + ", modelName='" + modelName + '\'' + ", flavor='" + flavor + '\'' + + ", cpuCores=" + cpuCores + ", resources=" + resources + ", membership=" + membership + ", owner=" + owner + 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 0bd4db7b806..c22edf2677f 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 @@ -147,6 +147,8 @@ class NodesResponse extends HttpResponse { } object.setString("openStackId", node.id()); object.setString("flavor", node.flavor().name()); + if (node.flavor().isConfigured()) + object.setDouble("cpuCores", node.flavor().getMinCpuCores()); toSlime(node.flavor().resources(), object.setObject("resources")); if (node.flavor().cost() > 0) object.setLong("cost", node.flavor().cost()); diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/cfg1.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/cfg1.json index fde83767b2e..d2d39b06161 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/cfg1.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/cfg1.json @@ -6,6 +6,7 @@ "hostname": "cfg1.yahoo.com", "openStackId": "cfg1", "flavor": "default", + "cpuCores": 2.0, "resources":{"vcpu":2.0,"memoryGb":16.0,"diskGb":400.0,"bandwidthGbps":10.0,"diskSpeed":"fast","storageType":"remote"}, "environment": "BARE_METAL", "rebootGeneration": 1, diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/cfg2.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/cfg2.json index aca67f3fb8a..969c9a1b9c2 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/cfg2.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/cfg2.json @@ -6,6 +6,7 @@ "hostname": "cfg2.yahoo.com", "openStackId": "cfg2", "flavor": "default", + "cpuCores": 2.0, "resources":{"vcpu":2.0,"memoryGb":16.0,"diskGb":400.0,"bandwidthGbps":10.0,"diskSpeed":"fast","storageType":"remote"}, "environment": "BARE_METAL", "rebootGeneration": 1, diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/controller1.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/controller1.json index 1e3b1476bef..035e15ead49 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/controller1.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/controller1.json @@ -6,6 +6,7 @@ "hostname": "controller1.yahoo.com", "openStackId": "fake-controller1.yahoo.com", "flavor": "default", + "cpuCores": 2.0, "resources":{"vcpu":2.0,"memoryGb":16.0,"diskGb":400.0,"bandwidthGbps":10.0,"diskSpeed":"fast","storageType":"remote"}, "environment": "BARE_METAL", "rebootGeneration": 0, diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node1-os-upgrade-complete.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node1-os-upgrade-complete.json index d8aead47884..77622933866 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node1-os-upgrade-complete.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node1-os-upgrade-complete.json @@ -6,6 +6,7 @@ "hostname": "dockerhost1.yahoo.com", "openStackId": "dockerhost1", "flavor": "large", + "cpuCores": 4.0, "resources":{"vcpu":4.0,"memoryGb":32.0,"diskGb":1600.0,"bandwidthGbps":20.0,"diskSpeed":"fast","storageType":"remote"}, "environment": "BARE_METAL", "owner": { diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node1-os-upgrade.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node1-os-upgrade.json index fc94f9d3ce6..a1775dc794e 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node1-os-upgrade.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node1-os-upgrade.json @@ -6,6 +6,7 @@ "hostname": "dockerhost1.yahoo.com", "openStackId": "dockerhost1", "flavor": "large", + "cpuCores": 4.0, "resources":{"vcpu":4.0,"memoryGb":32.0,"diskGb":1600.0,"bandwidthGbps":20.0,"diskSpeed":"fast"}, "environment": "BARE_METAL", "owner": { diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node1.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node1.json index aa51c9c8330..b6b93c8d108 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node1.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node1.json @@ -6,6 +6,7 @@ "hostname": "dockerhost1.yahoo.com", "openStackId": "dockerhost1", "flavor": "large", + "cpuCores": 4.0, "resources":{"vcpu":4.0,"memoryGb":32.0,"diskGb":1600.0,"bandwidthGbps":20.0,"diskSpeed":"fast","storageType":"remote"}, "environment": "BARE_METAL", "owner": { diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node2.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node2.json index ca0b16345ba..88e4d132ed5 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node2.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node2.json @@ -6,6 +6,7 @@ "hostname": "dockerhost2.yahoo.com", "openStackId": "dockerhost2", "flavor": "large", + "cpuCores": 4.0, "resources":{"vcpu":4.0,"memoryGb":32.0,"diskGb":1600.0,"bandwidthGbps":20.0,"diskSpeed":"fast","storageType":"remote"}, "environment": "BARE_METAL", "owner": { diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node3.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node3.json index 85a6feda866..c890f1e72be 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node3.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node3.json @@ -6,6 +6,7 @@ "hostname": "dockerhost3.yahoo.com", "openStackId": "dockerhost3", "flavor": "large", + "cpuCores": 4.0, "resources":{"vcpu":4.0,"memoryGb":32.0,"diskGb":1600.0,"bandwidthGbps":20.0,"diskSpeed":"fast","storageType":"remote"}, "environment": "BARE_METAL", "owner": { diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node4.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node4.json index 908504df65b..197a8c248e9 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node4.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node4.json @@ -6,6 +6,7 @@ "hostname": "dockerhost4.yahoo.com", "openStackId": "dockerhost4", "flavor": "large", + "cpuCores": 4.0, "resources":{"vcpu":4.0,"memoryGb":32.0,"diskGb":1600.0,"bandwidthGbps":20.0,"diskSpeed":"fast","storageType":"remote"}, "environment": "BARE_METAL", "owner": { diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node5.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node5.json index 8a79b201424..2638b6b74f5 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node5.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/docker-node5.json @@ -6,6 +6,7 @@ "hostname": "dockerhost5.yahoo.com", "openStackId": "dockerhost5", "flavor": "large", + "cpuCores": 4.0, "resources":{"vcpu":4.0,"memoryGb":32.0,"diskGb":1600.0,"bandwidthGbps":20.0,"diskSpeed":"fast","storageType":"remote"}, "environment": "BARE_METAL", "owner": { diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/dockerhost1-with-firmware-data.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/dockerhost1-with-firmware-data.json index 939e572798e..ea5c3623303 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/dockerhost1-with-firmware-data.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/dockerhost1-with-firmware-data.json @@ -6,6 +6,7 @@ "hostname": "dockerhost1.yahoo.com", "openStackId": "dockerhost1", "flavor": "large", + "cpuCores": 4.0, "resources":{"vcpu":4.0,"memoryGb":32.0,"diskGb":1600.0,"bandwidthGbps":20.0,"diskSpeed":"fast","storageType":"remote"}, "environment": "BARE_METAL", "owner": { diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node4-after-changes.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node4-after-changes.json index 4c1070f08f8..f663f4adb8d 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node4-after-changes.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node4-after-changes.json @@ -7,6 +7,7 @@ "parentHostname": "parent.yahoo.com", "openStackId": "patched-openstackid", "flavor": "d-2-8-100", + "cpuCores": 2.0, "resources":{"vcpu":2.0,"memoryGb":8.0,"diskGb":100.0,"bandwidthGbps":1.0,"diskSpeed":"fast","storageType":"remote"}, "environment": "DOCKER_CONTAINER", "owner": { diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node8.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node8.json index e52178e8104..aa2b2acdb9f 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node8.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node8.json @@ -6,6 +6,7 @@ "hostname": "host8.yahoo.com", "openStackId": "host8.yahoo.com", "flavor": "default", + "cpuCores": 2.0, "resources":{"vcpu":2.0,"memoryGb":16.0,"diskGb":400.0,"bandwidthGbps":10.0,"diskSpeed":"fast","storageType": "remote"}, "environment": "BARE_METAL", "rebootGeneration": 0, diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node9.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node9.json index 11d16780aff..5f388c13f28 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node9.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/node9.json @@ -6,6 +6,7 @@ "hostname": "host9.yahoo.com", "openStackId": "host9.yahoo.com", "flavor": "large-variant", + "cpuCores": 64.0, "resources":{"vcpu":64.0,"memoryGb":128.0,"diskGb":2000.0,"bandwidthGbps":15.0,"diskSpeed":"fast","storageType":"remote"}, "environment": "BARE_METAL", "rebootGeneration": 0, diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/parent2.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/parent2.json index cc747a67352..8be034cb036 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/parent2.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/parent2.json @@ -6,6 +6,7 @@ "hostname": "parent2.yahoo.com", "openStackId": "parent2.yahoo.com", "flavor": "large-variant", + "cpuCores": 64.0, "resources": {"vcpu":64.0,"memoryGb":128.0,"diskGb":2000.0,"bandwidthGbps":15.0,"diskSpeed":"fast","storageType":"remote"}, "environment": "BARE_METAL", "rebootGeneration": 0, |