summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorValerij Fredriksen <valerijf@oath.com>2018-01-17 15:28:28 +0100
committerValerij Fredriksen <valerijf@oath.com>2018-01-18 15:19:55 +0100
commit64f6740bafb46a69eb16c00b5a6672e43dd786b8 (patch)
treedeeac401e2ce3753d05b66d2c46864bb4220c497
parent5b92c182703c4796e053eaa5a8dc353d29fd2065 (diff)
Add fastDisk, ipAddreses, hardwareDivergence fields to node-admin client
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/ContainerNodeSpec.java69
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/noderepository/NodeRepositoryImpl.java5
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/noderepository/bindings/GetNodesResponse.java12
3 files changed, 76 insertions, 10 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/ContainerNodeSpec.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/ContainerNodeSpec.java
index b52604e8ca1..f31dc8882af 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/ContainerNodeSpec.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/ContainerNodeSpec.java
@@ -4,8 +4,10 @@ package com.yahoo.vespa.hosted.node.admin;
import com.yahoo.vespa.hosted.dockerapi.DockerImage;
import com.yahoo.vespa.hosted.provision.Node;
+import java.util.Collections;
import java.util.Objects;
import java.util.Optional;
+import java.util.Set;
/**
* @author stiankri
@@ -13,24 +15,35 @@ import java.util.Optional;
// TODO: Rename to Node or NodeRepositoryNode
public class ContainerNodeSpec {
public final String hostname;
- public final Optional<DockerImage> wantedDockerImage;
- public final Optional<DockerImage> currentDockerImage;
public final Node.State nodeState;
public final String nodeType;
public final String nodeFlavor;
public final String nodeCanonicalFlavor;
+
+ public final Optional<DockerImage> wantedDockerImage;
+ public final Optional<DockerImage> currentDockerImage;
+
public final Optional<String> wantedVespaVersion;
public final Optional<String> vespaVersion;
- public final Optional<Owner> owner;
- public final Optional<Membership> membership;
+
public final Optional<Long> wantedRestartGeneration;
public final Optional<Long> currentRestartGeneration;
+
public final Optional<Long> wantedRebootGeneration;
public final Optional<Long> currentRebootGeneration;
+
+ public final Optional<Owner> owner;
+ public final Optional<Membership> membership;
+
public final Double minCpuCores;
public final Double minMainMemoryAvailableGb;
public final Double minDiskAvailableGb;
+ public final Boolean fastDisk;
+ public final Set<String> ipAddresses;
+
+ public final Optional<String> hardwareDivergence;
+
public ContainerNodeSpec(
final String hostname,
final Optional<DockerImage> wantedDockerImage,
@@ -49,7 +62,10 @@ public class ContainerNodeSpec {
final Optional<Long> currentRebootGeneration,
final Double minCpuCores,
final Double minMainMemoryAvailableGb,
- final Double minDiskAvailableGb) {
+ final Double minDiskAvailableGb,
+ final Boolean fastDisk,
+ final Set<String> ipAddresses,
+ final Optional<String> hardwareDivergence) {
Objects.requireNonNull(hostname);
Objects.requireNonNull(nodeState);
Objects.requireNonNull(nodeType);
@@ -57,6 +73,8 @@ public class ContainerNodeSpec {
Objects.requireNonNull(minCpuCores);
Objects.requireNonNull(minMainMemoryAvailableGb);
Objects.requireNonNull(minDiskAvailableGb);
+ Objects.requireNonNull(fastDisk);
+ Objects.requireNonNull(ipAddresses);
this.hostname = hostname;
this.wantedDockerImage = wantedDockerImage;
@@ -76,6 +94,9 @@ public class ContainerNodeSpec {
this.minCpuCores = minCpuCores;
this.minMainMemoryAvailableGb = minMainMemoryAvailableGb;
this.minDiskAvailableGb = minDiskAvailableGb;
+ this.fastDisk = fastDisk;
+ this.ipAddresses = ipAddresses;
+ this.hardwareDivergence = hardwareDivergence;
}
@Override
@@ -102,7 +123,10 @@ public class ContainerNodeSpec {
Objects.equals(currentRebootGeneration, that.currentRebootGeneration) &&
Objects.equals(minCpuCores, that.minCpuCores) &&
Objects.equals(minMainMemoryAvailableGb, that.minMainMemoryAvailableGb) &&
- Objects.equals(minDiskAvailableGb, that.minDiskAvailableGb);
+ Objects.equals(minDiskAvailableGb, that.minDiskAvailableGb) &&
+ Objects.equals(fastDisk, that.fastDisk) &&
+ Objects.equals(ipAddresses, that.ipAddresses) &&
+ Objects.equals(hardwareDivergence, that.hardwareDivergence);
}
@Override
@@ -125,7 +149,10 @@ public class ContainerNodeSpec {
currentRebootGeneration,
minCpuCores,
minMainMemoryAvailableGb,
- minDiskAvailableGb);
+ minDiskAvailableGb,
+ fastDisk,
+ ipAddresses,
+ hardwareDivergence);
}
@Override
@@ -149,6 +176,9 @@ public class ContainerNodeSpec {
+ " currentRebootGeneration=" + currentRebootGeneration
+ " minMainMemoryAvailableGb=" + minMainMemoryAvailableGb
+ " minDiskAvailableGb=" + minDiskAvailableGb
+ + " fastDisk=" + fastDisk
+ + " ipAddresses=" + ipAddresses
+ + " hardwareDivergence=" + hardwareDivergence
+ " }";
}
@@ -245,6 +275,7 @@ public class ContainerNodeSpec {
}
}
+ // For testing only
public static class Builder {
private String hostname;
private Optional<DockerImage> wantedDockerImage = Optional.empty();
@@ -264,6 +295,9 @@ public class ContainerNodeSpec {
private Double minCpuCores;
private Double minMainMemoryAvailableGb;
private Double minDiskAvailableGb;
+ private Boolean fastDisk = false;
+ private Set<String> ipAddresses = Collections.emptySet();
+ private Optional<String> hardwareDivergence = Optional.empty();
public Builder() {}
@@ -276,6 +310,8 @@ public class ContainerNodeSpec {
minCpuCores(nodeSpec.minCpuCores);
minMainMemoryAvailableGb(nodeSpec.minMainMemoryAvailableGb);
minDiskAvailableGb(nodeSpec.minDiskAvailableGb);
+ fastDisk(nodeSpec.fastDisk);
+ ipAddresses(nodeSpec.ipAddresses);
nodeSpec.wantedDockerImage.ifPresent(this::wantedDockerImage);
nodeSpec.currentDockerImage.ifPresent(this::currentDockerImage);
@@ -287,6 +323,7 @@ public class ContainerNodeSpec {
nodeSpec.currentRestartGeneration.ifPresent(this::currentRestartGeneration);
nodeSpec.wantedRebootGeneration.ifPresent(this::wantedRebootGeneration);
nodeSpec.currentRebootGeneration.ifPresent(this::currentRebootGeneration);
+ nodeSpec.hardwareDivergence.ifPresent(this::hardwareDivergence);
}
public Builder hostname(String hostname) {
@@ -378,13 +415,29 @@ public class ContainerNodeSpec {
return this;
}
+ public Builder fastDisk(boolean fastDisk) {
+ this.fastDisk = fastDisk;
+ return this;
+ }
+
+ public Builder ipAddresses(Set<String> ipAddresses) {
+ this.ipAddresses = ipAddresses;
+ return this;
+ }
+
+ public Builder hardwareDivergence(String hardwareDivergence) {
+ this.hardwareDivergence = Optional.of(hardwareDivergence);
+ return this;
+ }
+
public ContainerNodeSpec build() {
return new ContainerNodeSpec(hostname, wantedDockerImage, currentDockerImage, nodeState, nodeType,
nodeFlavor, nodeCanonicalFlavor,
wantedVespaVersion, vespaVersion, owner, membership,
wantedRestartGeneration, currentRestartGeneration,
wantedRebootGeneration, currentRebootGeneration,
- minCpuCores, minMainMemoryAvailableGb, minDiskAvailableGb);
+ minCpuCores, minMainMemoryAvailableGb, minDiskAvailableGb,
+ fastDisk, ipAddresses, hardwareDivergence);
}
}
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/noderepository/NodeRepositoryImpl.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/noderepository/NodeRepositoryImpl.java
index b5c439e209a..ab7332ca556 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/noderepository/NodeRepositoryImpl.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/noderepository/NodeRepositoryImpl.java
@@ -134,7 +134,10 @@ public class NodeRepositoryImpl implements NodeRepository {
Optional.ofNullable(node.currentRestartGeneration),
node.minCpuCores,
node.minMainMemoryAvailableGb,
- node.minDiskAvailableGb);
+ node.minDiskAvailableGb,
+ node.fastDisk,
+ node.ipAddresses,
+ Optional.ofNullable(node.hardwareDivergence));
}
@Override
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/noderepository/bindings/GetNodesResponse.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/noderepository/bindings/GetNodesResponse.java
index 0dd0f410c07..ce31c3c1b4c 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/noderepository/bindings/GetNodesResponse.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/noderepository/bindings/GetNodesResponse.java
@@ -7,6 +7,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.Collections;
import java.util.List;
+import java.util.Set;
/**
* This class represents a response from the /nodes/v2/node/ API. It is designed to be
@@ -43,6 +44,9 @@ public class GetNodesResponse {
public final Double minCpuCores;
public final Double minMainMemoryAvailableGb;
public final Double minDiskAvailableGb;
+ public final Boolean fastDisk;
+ public final Set<String> ipAddresses;
+ public final String hardwareDivergence;
@JsonCreator
public Node(@JsonProperty("id") String hostname,
@@ -62,7 +66,10 @@ public class GetNodesResponse {
@JsonProperty("currentRebootGeneration") Long currentRebootGeneration,
@JsonProperty("minCpuCores") Double minCpuCores,
@JsonProperty("minMainMemoryAvailableGb") Double minMainMemoryAvailableGb,
- @JsonProperty("minDiskAvailableGb") Double minDiskAvailableGb) {
+ @JsonProperty("minDiskAvailableGb") Double minDiskAvailableGb,
+ @JsonProperty("fastDisk") Boolean fastDisk,
+ @JsonProperty("ipAddresses") Set<String> ipAddresses,
+ @JsonProperty("hardwareDivergence") String hardwareDivergence) {
this.hostname = hostname;
this.wantedDockerImage = wantedDockerImage;
this.currentDockerImage = currentDockerImage;
@@ -81,6 +88,9 @@ public class GetNodesResponse {
this.minCpuCores = minCpuCores;
this.minMainMemoryAvailableGb = minMainMemoryAvailableGb;
this.minDiskAvailableGb = minDiskAvailableGb;
+ this.fastDisk = fastDisk;
+ this.ipAddresses = ipAddresses;
+ this.hardwareDivergence = hardwareDivergence;
}
public String toString() {