diff options
author | Valerij Fredriksen <valerijf@verizonmedia.com> | 2019-12-05 16:15:56 +0100 |
---|---|---|
committer | Valerij Fredriksen <valerijf@verizonmedia.com> | 2019-12-05 16:15:56 +0100 |
commit | b5dfd903915595b6144c7666854c09f86b11a65c (patch) | |
tree | 944dddea69c4a58ef3a068cdb6b9b4f211716c4d /node-admin | |
parent | 66db6f0126b5f99cee3fe80332ba36429cd4dc64 (diff) |
Add cpuCores to node-admin NodeSpec
Diffstat (limited to 'node-admin')
3 files changed, 23 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 + |