summaryrefslogtreecommitdiffstats
path: root/node-admin
diff options
context:
space:
mode:
authorolaaun <olaa@oath.com>2019-02-13 14:35:30 +0100
committerGitHub <noreply@github.com>2019-02-13 14:35:30 +0100
commitcd586570d4ee78be18f6f19d27d167993281882c (patch)
tree26a6bd9a3aa424a36da1384e319bb09dee8f57bd /node-admin
parentaf9e6a485a69ce0a39a1e94f0915189d360b1291 (diff)
Added patchable model Id field. (#8442)
* Added patchable modelId field. * Fixed some tests * Misc fixes
Diffstat (limited to 'node-admin')
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeAttributes.java6
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeSpec.java11
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepository.java1
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/bindings/NodeRepositoryNode.java3
4 files changed, 20 insertions, 1 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeAttributes.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeAttributes.java
index a5635507ab7..78938e9c5b2 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeAttributes.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeAttributes.java
@@ -30,6 +30,7 @@ public class NodeAttributes {
private Optional<String> hardwareDivergence = Optional.empty();
private Optional<String> hardwareFailureDescription = Optional.empty();
private Optional<Boolean> wantToDeprovision = Optional.empty();
+ private Optional<String> modelId = Optional.empty();
/** The list of reports to patch. A null value is used to remove the report. */
private Map<String, JsonNode> reports = new TreeMap<>();
@@ -84,6 +85,11 @@ public class NodeAttributes {
return this;
}
+ public NodeAttributes withModelId(String modelId) {
+ this.modelId = Optional.of(modelId);
+ return this;
+ }
+
public NodeAttributes withReports(Map<String, JsonNode> nodeReports) {
this.reports = new TreeMap<>(nodeReports);
return this;
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 edba4956e90..858088d23e2 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
@@ -41,6 +41,8 @@ public class NodeSpec {
private final Optional<Instant> wantedFirmwareCheck;
private final Optional<Instant> currentFirmwareCheck;
+ private final Optional<String> modelId;
+
private final Optional<Boolean> allowedToBeDown;
private final Optional<Boolean> wantToDeprovision;
private final Optional<Owner> owner;
@@ -82,6 +84,7 @@ public class NodeSpec {
long currentRebootGeneration,
Optional<Instant> wantedFirmwareCheck,
Optional<Instant> currentFirmwareCheck,
+ Optional<String> modelId,
double minCpuCores,
double minMainMemoryAvailableGb,
double minDiskAvailableGb,
@@ -99,6 +102,7 @@ public class NodeSpec {
this.nodeType = Objects.requireNonNull(nodeType);
this.flavor = Objects.requireNonNull(flavor);
this.canonicalFlavor = canonicalFlavor;
+ this.modelId = modelId;
this.wantedVespaVersion = Objects.requireNonNull(wantedVespaVersion);
this.vespaVersion = Objects.requireNonNull(vespaVersion);
this.wantedOsVersion = Objects.requireNonNull(wantedOsVersion);
@@ -193,6 +197,10 @@ public class NodeSpec {
return currentFirmwareCheck;
}
+ public Optional<String> getModelId() {
+ return modelId;
+ }
+
public Optional<Boolean> getAllowedToBeDown() {
return allowedToBeDown;
}
@@ -511,6 +519,7 @@ public class NodeSpec {
private long currentRebootGeneration;
private Optional<Instant> wantedFirmwareCheck = Optional.empty();
private Optional<Instant> currentFirmwareCheck = Optional.empty();
+ private Optional<String> modelId = Optional.empty();
private double minCpuCores;
private double minMainMemoryAvailableGb;
private double minDiskAvailableGb;
@@ -860,7 +869,7 @@ public class NodeSpec {
owner, membership,
wantedRestartGeneration, currentRestartGeneration,
wantedRebootGeneration, currentRebootGeneration,
- wantedFirmwareCheck, currentFirmwareCheck,
+ wantedFirmwareCheck, currentFirmwareCheck, modelId,
minCpuCores, minMainMemoryAvailableGb, minDiskAvailableGb,
fastDisk, bandwidth, ipAddresses, hardwareDivergence, hardwareFailureDescription,
reports, parentHostname);
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 45e57ae2e67..ccc1693546e 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
@@ -207,6 +207,7 @@ public class RealNodeRepository implements NodeRepository {
node.currentRebootGeneration,
Optional.ofNullable(node.wantedFirmwareCheck).map(Instant::ofEpochMilli),
Optional.ofNullable(node.currentFirmwareCheck).map(Instant::ofEpochMilli),
+ Optional.ofNullable(node.modelId),
node.minCpuCores,
node.minMainMemoryAvailableGb,
node.minDiskAvailableGb,
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 777d60de17d..a74a2809bab 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
@@ -54,6 +54,8 @@ public class NodeRepositoryNode {
public Long currentFirmwareCheck;
@JsonProperty("wantedFirmwareCheck")
public Long wantedFirmwareCheck;
+ @JsonProperty("modelId")
+ public String modelId;
@JsonProperty("failCount")
public Integer failCount;
@JsonProperty("fastDisk")
@@ -100,6 +102,7 @@ public class NodeRepositoryNode {
", ipAddresses=" + ipAddresses +
", additionalIpAddresses=" + additionalIpAddresses +
", openStackId='" + openStackId + '\'' +
+ ", modelId='" + modelId + '\'' +
", flavor='" + flavor + '\'' +
", canonicalFlavor='" + canonicalFlavor + '\'' +
", membership=" + membership +