diff options
Diffstat (limited to 'controller-api')
4 files changed, 32 insertions, 11 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 a381bcd5bed..3355f765f42 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 @@ -41,6 +41,7 @@ public class Node { private final Version wantedVersion; private final Version currentOsVersion; private final Version wantedOsVersion; + private final boolean deferOsUpgrade; private final DockerImage currentDockerImage; private final DockerImage wantedDockerImage; private final ServiceState serviceState; @@ -76,7 +77,7 @@ public class Node { private Node(String id, HostName hostname, Optional<HostName> parentHostname, State state, NodeType type, NodeResources resources, Optional<ApplicationId> owner, Version currentVersion, Version wantedVersion, - Version currentOsVersion, Version wantedOsVersion, Optional<Instant> currentFirmwareCheck, + Version currentOsVersion, Version wantedOsVersion, boolean deferOsUpgrade, Optional<Instant> currentFirmwareCheck, Optional<Instant> wantedFirmwareCheck, ServiceState serviceState, Optional<Instant> suspendedSince, long restartGeneration, long wantedRestartGeneration, long rebootGeneration, long wantedRebootGeneration, int cost, int failCount, Optional<String> flavor, String clusterId, @@ -97,6 +98,7 @@ public class Node { this.wantedVersion = Objects.requireNonNull(wantedVersion, "wantedVersion must be non-null"); this.currentOsVersion = Objects.requireNonNull(currentOsVersion, "currentOsVersion must be non-null"); this.wantedOsVersion = Objects.requireNonNull(wantedOsVersion, "wantedOsVersion must be non-null"); + this.deferOsUpgrade = deferOsUpgrade; this.currentFirmwareCheck = Objects.requireNonNull(currentFirmwareCheck, "currentFirmwareCheck must be non-null"); this.wantedFirmwareCheck = Objects.requireNonNull(wantedFirmwareCheck, "wantedFirmwareCheck must be non-null"); this.serviceState = Objects.requireNonNull(serviceState, "serviceState must be non-null"); @@ -184,6 +186,11 @@ public class Node { return wantedOsVersion; } + /** Returns whether the node is currently deferring any OS upgrade */ + public boolean deferOsUpgrade() { + return deferOsUpgrade; + } + /** The container image of this is currently running */ public DockerImage currentDockerImage() { return currentDockerImage; @@ -455,6 +462,7 @@ public class Node { private Version wantedVersion = Version.emptyVersion; private Version currentOsVersion = Version.emptyVersion; private Version wantedOsVersion = Version.emptyVersion; + private boolean deferOsUpgrade = false; private DockerImage currentDockerImage = DockerImage.EMPTY; private DockerImage wantedDockerImage = DockerImage.EMPTY; private Optional<Instant> currentFirmwareCheck = Optional.empty(); @@ -502,6 +510,7 @@ public class Node { this.wantedVersion = node.wantedVersion; this.currentOsVersion = node.currentOsVersion; this.wantedOsVersion = node.wantedOsVersion; + this.deferOsUpgrade = node.deferOsUpgrade; this.currentDockerImage = node.currentDockerImage; this.wantedDockerImage = node.wantedDockerImage; this.serviceState = node.serviceState; @@ -599,6 +608,11 @@ public class Node { return this; } + public Builder deferOsUpgrade(boolean deferOsUpgrade) { + this.deferOsUpgrade = deferOsUpgrade; + return this; + } + public Builder currentDockerImage(DockerImage currentDockerImage) { this.currentDockerImage = currentDockerImage; return this; @@ -761,7 +775,7 @@ public class Node { public Node build() { return new Node(id, hostname, parentHostname, state, type, resources, owner, currentVersion, wantedVersion, - currentOsVersion, wantedOsVersion, currentFirmwareCheck, wantedFirmwareCheck, serviceState, + currentOsVersion, wantedOsVersion, deferOsUpgrade, currentFirmwareCheck, wantedFirmwareCheck, serviceState, suspendedSince, restartGeneration, wantedRestartGeneration, rebootGeneration, wantedRebootGeneration, cost, failCount, flavor, clusterId, clusterType, group, index, retired, wantToRetire, wantToDeprovision, wantToRebuild, down, reservedTo, exclusiveTo, wantedDockerImage, diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/deployment/JobType.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/deployment/JobType.java index 09ddcf4fa5e..b6905a97b5f 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/deployment/JobType.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/deployment/JobType.java @@ -161,7 +161,7 @@ public final class JobType implements Comparable<JobType> { /** A serialized form of this: {@code <environment>.<region>[.test]}; the inverse of {@link #ofSerialized(String)} */ public String serialized() { - return zone.environment().value() + "." + zone.region().value() + (isProductionTest ? ".test" : ""); + return zone().value() + (isProductionTest ? ".test" : ""); } public String jobName() { diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/deployment/TestReport.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/deployment/TestReport.java index 789a909b780..60cb4248035 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/deployment/TestReport.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/deployment/TestReport.java @@ -1,10 +1,6 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.hosted.controller.api.integration.deployment; -import com.yahoo.slime.SlimeUtils; - -import java.nio.charset.StandardCharsets; - /** * @author mortent */ @@ -21,7 +17,6 @@ public class TestReport { } public static TestReport fromJson(String report) { - SlimeUtils.jsonToSlimeOrThrow(report.getBytes(StandardCharsets.UTF_8)); // Verify structure. return new TestReport(report); } diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/noderepository/NodeRepositoryNode.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/noderepository/NodeRepositoryNode.java index 8964e1b5127..d8a804ecd2c 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/noderepository/NodeRepositoryNode.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/noderepository/NodeRepositoryNode.java @@ -63,6 +63,8 @@ public class NodeRepositoryNode { private String currentOsVersion; @JsonProperty("wantedOsVersion") private String wantedOsVersion; + @JsonProperty("deferOsUpgrade") + private Boolean deferOsUpgrade; @JsonProperty("currentFirmwareCheck") private Long currentFirmwareCheck; @JsonProperty("wantedFirmwareCheck") @@ -250,6 +252,14 @@ public class NodeRepositoryNode { this.wantedVespaVersion = wantedVespaVersion; } + public Boolean getDeferOsUpgrade() { + return deferOsUpgrade; + } + + public void setDeferOsUpgrade(Boolean deferOsUpgrade) { + this.deferOsUpgrade = deferOsUpgrade; + } + public Integer getFailCount() { return failCount; } @@ -441,12 +451,13 @@ public class NodeRepositoryNode { // --- end + @Override public String toString() { return "NodeRepositoryNode{" + "url='" + url + '\'' + ", id='" + id + '\'' + - ", state=" + state + + ", state='" + state + '\'' + ", hostname='" + hostname + '\'' + ", ipAddresses=" + ipAddresses + ", additionalIpAddresses=" + additionalIpAddresses + @@ -464,11 +475,12 @@ public class NodeRepositoryNode { ", wantedVespaVersion='" + wantedVespaVersion + '\'' + ", currentOsVersion='" + currentOsVersion + '\'' + ", wantedOsVersion='" + wantedOsVersion + '\'' + + ", deferOsUpgrade=" + deferOsUpgrade + ", currentFirmwareCheck=" + currentFirmwareCheck + ", wantedFirmwareCheck=" + wantedFirmwareCheck + ", failCount=" + failCount + - ", environment=" + environment + - ", type=" + type + + ", environment='" + environment + '\'' + + ", type='" + type + '\'' + ", wantedDockerImage='" + wantedDockerImage + '\'' + ", currentDockerImage='" + currentDockerImage + '\'' + ", parentHostname='" + parentHostname + '\'' + |