summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2020-03-23 19:34:40 +0100
committerGitHub <noreply@github.com>2020-03-23 19:34:40 +0100
commit25bcd7dabe09cf9c32be4856bbf4a415755bd037 (patch)
tree12a0a2baa60318c1a3183963f182116f690dd516
parent07aa2f3c8fe1b76da5d719b1b0972bdafdfcabaa (diff)
parentfa74d6b6424dcd6f9d6ffeedd116126e9a1f19c6 (diff)
Merge pull request #12670 from vespa-engine/hmusum/add-wanted-and-current-docker-image-to-Node
Add wanted and current docker image to Node
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/Node.java32
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/NodeRepository.java9
2 files changed, 38 insertions, 3 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 d8103c864df..07e411cd5cd 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
@@ -3,6 +3,7 @@ package com.yahoo.vespa.hosted.controller.api.integration.configserver;
import com.yahoo.component.Version;
import com.yahoo.config.provision.ApplicationId;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.HostName;
import com.yahoo.config.provision.NodeResources;
import com.yahoo.config.provision.NodeType;
@@ -30,6 +31,8 @@ public class Node {
private final Version wantedVersion;
private final Version currentOsVersion;
private final Version wantedOsVersion;
+ private final DockerImage currentDockerImage;
+ private final DockerImage wantedDockerImage;
private final ServiceState serviceState;
private final Optional<Instant> suspendedSince;
private final Optional<Instant> currentFirmwareCheck;
@@ -51,7 +54,7 @@ public class Node {
Optional<Instant> currentFirmwareCheck, Optional<Instant> wantedFirmwareCheck, ServiceState serviceState,
Optional<Instant> suspendedSince, long restartGeneration, long wantedRestartGeneration, long rebootGeneration, long wantedRebootGeneration,
int cost, String flavor, String clusterId, ClusterType clusterType, boolean wantToRetire, boolean wantToDeprovision,
- Optional<TenantName> reservedTo) {
+ Optional<TenantName> reservedTo, DockerImage wantedDockerImage, DockerImage currentDockerImage) {
this.hostname = hostname;
this.parentHostname = parentHostname;
this.state = state;
@@ -77,6 +80,8 @@ public class Node {
this.wantToRetire = wantToRetire;
this.wantToDeprovision = wantToDeprovision;
this.reservedTo = reservedTo;
+ this.wantedDockerImage = wantedDockerImage;
+ this.currentDockerImage = currentDockerImage;
}
public HostName hostname() {
@@ -117,6 +122,14 @@ public class Node {
return wantedOsVersion;
}
+ public DockerImage currentDockerImage() {
+ return currentDockerImage;
+ }
+
+ public DockerImage wantedDockerImage() {
+ return wantedDockerImage;
+ }
+
public Optional<Instant> currentFirmwareCheck() {
return currentFirmwareCheck;
}
@@ -228,6 +241,8 @@ public class Node {
private Version wantedVersion;
private Version currentOsVersion;
private Version wantedOsVersion;
+ private DockerImage currentDockerImage;
+ private DockerImage wantedDockerImage;
private Optional<Instant> currentFirmwareCheck = Optional.empty();
private Optional<Instant> wantedFirmwareCheck = Optional.empty();
private ServiceState serviceState;
@@ -257,6 +272,8 @@ public class Node {
this.wantedVersion = node.wantedVersion;
this.currentOsVersion = node.currentOsVersion;
this.wantedOsVersion = node.wantedOsVersion;
+ this.currentDockerImage = node.currentDockerImage;
+ this.wantedDockerImage = node.wantedDockerImage;
this.currentFirmwareCheck = node.currentFirmwareCheck;
this.wantedFirmwareCheck = node.wantedFirmwareCheck;
this.serviceState = node.serviceState;
@@ -324,6 +341,16 @@ public class Node {
return this;
}
+ public Builder currentDockerImage(DockerImage currentDockerImage) {
+ this.currentDockerImage = currentDockerImage;
+ return this;
+ }
+
+ public Builder wantedDockerImage(DockerImage wantedDockerImage) {
+ this.wantedDockerImage = wantedDockerImage;
+ return this;
+ }
+
public Builder currentFirmwareCheck(Instant currentFirmwareCheck) {
this.currentFirmwareCheck = Optional.ofNullable(currentFirmwareCheck);
return this;
@@ -403,7 +430,8 @@ public class Node {
return new Node(hostname, parentHostname, state, type, resources, owner, currentVersion, wantedVersion,
currentOsVersion, wantedOsVersion, currentFirmwareCheck, wantedFirmwareCheck, serviceState,
suspendedSince, restartGeneration, wantedRestartGeneration, rebootGeneration, wantedRebootGeneration,
- cost, flavor, clusterId, clusterType, wantToRetire, wantToDeprovision, reservedTo);
+ cost, flavor, clusterId, clusterType, wantToRetire, wantToDeprovision, reservedTo,
+ wantedDockerImage, currentDockerImage);
}
}
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 5dba40f249c..05e9707473c 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
@@ -3,6 +3,7 @@ package com.yahoo.vespa.hosted.controller.api.integration.configserver;
import com.yahoo.component.Version;
import com.yahoo.config.provision.ApplicationId;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.HostName;
import com.yahoo.config.provision.NodeResources;
import com.yahoo.config.provision.NodeType;
@@ -122,7 +123,9 @@ public interface NodeRepository {
clusterTypeOf(node.getMembership()),
node.getWantToRetire(),
node.getWantToDeprovision(),
- Optional.ofNullable(node.getReservedTo()).map(TenantName::from));
+ Optional.ofNullable(node.getReservedTo()).map(TenantName::from),
+ dockerImageFrom(node.getWantedDockerImage()),
+ dockerImageFrom(node.getCurrentDockerImage()));
}
private static String clusterIdOf(NodeMembership nodeMembership) {
@@ -205,4 +208,8 @@ public interface NodeRepository {
return s == null ? Version.emptyVersion : Version.fromString(s);
}
+ private static DockerImage dockerImageFrom(String s) {
+ return s == null ? DockerImage.EMPTY : DockerImage.fromString(s);
+ }
+
}