summaryrefslogtreecommitdiffstats
path: root/controller-api
diff options
context:
space:
mode:
authorOla Aunrønning <olaa@verizonmedia.com>2020-11-06 19:25:00 +0100
committerGitHub <noreply@github.com>2020-11-06 19:25:00 +0100
commit8905185c86ea99afb2d05066d1b093a4a6081893 (patch)
tree627c5f8500bebe7ac11725915f1ac07bda4dbf9d /controller-api
parent846feef93e16dd971e15a4c98e391948d50b5d27 (diff)
parent6dc92b5b36bec70f143453a6e7a924a663b42cff (diff)
Merge pull request #15210 from vespa-engine/olaa/maintain-all-breakfixed-nodes
Maintain all nodes in breakfixed state
Diffstat (limited to 'controller-api')
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/Node.java20
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/NodeRepository.java3
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/noderepository/NodeRepositoryNode.java9
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/repair/HostRepairClient.java2
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/repair/MockRepairClient.java4
5 files changed, 28 insertions, 10 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 1130ee706b4..8fd294f64f8 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
@@ -9,9 +9,12 @@ import com.yahoo.config.provision.HostName;
import com.yahoo.config.provision.NodeResources;
import com.yahoo.config.provision.NodeType;
import com.yahoo.config.provision.TenantName;
+import com.yahoo.vespa.hosted.controller.api.integration.noderepository.NodeHistory;
import java.time.Instant;
+import java.util.ArrayList;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
@@ -53,6 +56,7 @@ public class Node {
private final Optional<TenantName> reservedTo;
private final Optional<ApplicationId> exclusiveTo;
private final Map<String, JsonNode> reports;
+ private final List<NodeHistory> history;
public Node(HostName hostname, Optional<HostName> parentHostname, State state, NodeType type, NodeResources resources, Optional<ApplicationId> owner,
Version currentVersion, Version wantedVersion, Version currentOsVersion, Version wantedOsVersion,
@@ -60,7 +64,7 @@ public class Node {
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<ApplicationId> exclusiveTo,
- DockerImage wantedDockerImage, DockerImage currentDockerImage, Map<String, JsonNode> reports) {
+ DockerImage wantedDockerImage, DockerImage currentDockerImage, Map<String, JsonNode> reports, List<NodeHistory> history) {
this.hostname = hostname;
this.parentHostname = parentHostname;
this.state = state;
@@ -90,6 +94,7 @@ public class Node {
this.wantedDockerImage = wantedDockerImage;
this.currentDockerImage = currentDockerImage;
this.reports = reports;
+ this.history = history;
}
public HostName hostname() {
@@ -202,6 +207,10 @@ public class Node {
return reports;
}
+ public List<NodeHistory> history() {
+ return history;
+ }
+
@Override
public boolean equals(Object o) {
if (this == o) return true;
@@ -275,6 +284,7 @@ public class Node {
private Optional<TenantName> reservedTo = Optional.empty();
private Optional<ApplicationId> exclusiveTo = Optional.empty();
private Map<String, JsonNode> reports = new HashMap<>();
+ private List<NodeHistory> history = new ArrayList<>();
public Builder() { }
@@ -308,6 +318,7 @@ public class Node {
this.reservedTo = node.reservedTo;
this.exclusiveTo = node.exclusiveTo;
this.reports = node.reports;
+ this.history = node.history;
}
public Builder hostname(HostName hostname) {
@@ -450,12 +461,17 @@ public class Node {
return this;
}
+ public Builder history(List<NodeHistory> history) {
+ this.history = history;
+ return this;
+ }
+
public Node build() {
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, exclusiveTo,
- wantedDockerImage, currentDockerImage, reports);
+ wantedDockerImage, currentDockerImage, reports, history);
}
}
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 df6a6d5070d..ca8af48e4fd 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
@@ -134,7 +134,8 @@ public interface NodeRepository {
Optional.ofNullable(node.getExclusiveTo()).map(ApplicationId::fromSerializedForm),
dockerImageFrom(node.getWantedDockerImage()),
dockerImageFrom(node.getCurrentDockerImage()),
- node.getReports());
+ node.getReports(),
+ node.getHistory());
}
private static String clusterIdOf(NodeMembership nodeMembership) {
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 a21e7a3b3fd..7bb47185751 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
@@ -9,6 +9,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.JsonNode;
import java.util.Arrays;
+import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -79,7 +80,7 @@ public class NodeRepositoryNode {
@JsonProperty("cost")
private Integer cost;
@JsonProperty("history")
- private NodeHistory[] history;
+ private List<NodeHistory> history;
@JsonProperty("allowedToBeDown")
private Boolean allowedToBeDown;
@JsonProperty("suspendedSinceMillis")
@@ -307,11 +308,11 @@ public class NodeRepositoryNode {
this.cost = cost;
}
- public NodeHistory[] getHistory() {
+ public List<NodeHistory> getHistory() {
return history;
}
- public void setHistory(NodeHistory[] history) {
+ public void setHistory(List<NodeHistory> history) {
this.history = history;
}
@@ -419,7 +420,7 @@ public class NodeRepositoryNode {
", wantToRetire=" + wantToRetire +
", wantToDeprovision=" + wantToDeprovision +
", cost=" + cost +
- ", history=" + Arrays.toString(history) +
+ ", history=" + history +
", allowedToBeDown=" + allowedToBeDown +
", reports=" + reports +
", modelName=" + modelName +
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/repair/HostRepairClient.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/repair/HostRepairClient.java
index a4a5a773cb9..c3fa0890cbb 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/repair/HostRepairClient.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/repair/HostRepairClient.java
@@ -15,7 +15,7 @@ import java.util.Map;
public interface HostRepairClient {
/* Checks current ticket status and takes appropriate action */
- void updateRepairStatus(ZoneApi zone, Map<Node, RepairTicketReport> nodes);
+ void updateRepairStatus(ZoneApi zone, List<Node> nodes);
/* Creates reparation ticket for given host. Returns ticket number */
String createTicket(HostName hostname, String colo, ZoneId zoneId, String description, String category);
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/repair/MockRepairClient.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/repair/MockRepairClient.java
index 6ceceda5712..7a4398d69bb 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/repair/MockRepairClient.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/repair/MockRepairClient.java
@@ -18,8 +18,8 @@ public class MockRepairClient implements HostRepairClient {
List<Node> updatedNodes = new ArrayList<>();
@Override
- public void updateRepairStatus(ZoneApi zone, Map<Node, RepairTicketReport> nodes) {
- updatedNodes.addAll(nodes.keySet());
+ public void updateRepairStatus(ZoneApi zone, List<Node> nodes) {
+ updatedNodes.addAll(nodes);
}
@Override