aboutsummaryrefslogtreecommitdiffstats
path: root/node-repository/src/main/java/com/yahoo
diff options
context:
space:
mode:
authorValerij Fredriksen <valerijf@yahooinc.com>2022-11-03 09:16:29 +0100
committerValerij Fredriksen <valerijf@yahooinc.com>2022-11-03 09:16:29 +0100
commit01b99953932ce2629ee3e71264789a3044d17b65 (patch)
tree5886a059ed453f2bb719e1ee43392fdb6b31715d /node-repository/src/main/java/com/yahoo
parentc4c2eb2c42bd7a134b6ea71a0d2db9005b5c5ee0 (diff)
Trigger quick redeployment for changes by HostResumeProvisioner agent
Diffstat (limited to 'node-repository/src/main/java/com/yahoo')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/ExpeditedChangeApplicationMaintainer.java10
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostResumeProvisioner.java3
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/Agent.java1
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializer.java220
4 files changed, 115 insertions, 119 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/ExpeditedChangeApplicationMaintainer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/ExpeditedChangeApplicationMaintainer.java
index fa6b201def4..c99c18262ec 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/ExpeditedChangeApplicationMaintainer.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/ExpeditedChangeApplicationMaintainer.java
@@ -107,12 +107,10 @@ public class ExpeditedChangeApplicationMaintainer extends ApplicationMaintainer
/** Returns whether to expedite changes performed by agent */
private boolean expediteChangeBy(Agent agent) {
- switch (agent) {
- case operator:
- case RebuildingOsUpgrader:
- case HostEncrypter: return true;
- }
- return false;
+ return switch (agent) {
+ case operator, HostEncrypter, HostResumeProvisioner, RebuildingOsUpgrader -> true;
+ default -> false;
+ };
}
}
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostResumeProvisioner.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostResumeProvisioner.java
index 9dfb752b66e..3fb07496714 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostResumeProvisioner.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostResumeProvisioner.java
@@ -65,9 +65,8 @@ public class HostResumeProvisioner extends NodeRepositoryMaintainer {
failures++;
log.log(Level.SEVERE, "Failed to provision " + host.hostname() + " with " + children.size() +
" children, failing out the host recursively", e);
- // Fail out as operator to force a quick redeployment
nodeRepository().nodes().failOrMarkRecursively(
- host.hostname(), Agent.operator, "Failed by HostProvisioner due to provisioning failure");
+ host.hostname(), Agent.HostResumeProvisioner, "Failed by HostResumeProvisioner due to provisioning failure");
} catch (RuntimeException e) {
if (e.getCause() instanceof NamingException)
log.log(Level.INFO, "Could not provision " + host.hostname() + ", will retry in " + interval() + ": " + Exceptions.toMessageString(e));
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/Agent.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/Agent.java
index 6b3c8b14ff7..0b2bdb4620a 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/Agent.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/Agent.java
@@ -23,6 +23,7 @@ public enum Agent {
ReservationExpirer,
ParkedExpirer,
HostCapacityMaintainer,
+ HostResumeProvisioner,
RetiringOsUpgrader,
RebuildingOsUpgrader,
SpareCapacityMaintainer,
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializer.java
index aa6ed52ebb7..7ff0bb644fc 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializer.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializer.java
@@ -410,131 +410,129 @@ public class NodeSerializer {
/** Returns the event type, or null if this event type should be ignored */
private History.Event.Type eventTypeFromString(String eventTypeString) {
- switch (eventTypeString) {
- case "provisioned" : return History.Event.Type.provisioned;
- case "deprovisioned" : return History.Event.Type.deprovisioned;
- case "readied" : return History.Event.Type.readied;
- case "reserved" : return History.Event.Type.reserved;
- case "activated" : return History.Event.Type.activated;
- case "wantToRetire": return History.Event.Type.wantToRetire;
- case "wantToFail": return History.Event.Type.wantToFail;
- case "retired" : return History.Event.Type.retired;
- case "deactivated" : return History.Event.Type.deactivated;
- case "parked" : return History.Event.Type.parked;
- case "failed" : return History.Event.Type.failed;
- case "deallocated" : return History.Event.Type.deallocated;
- case "down" : return History.Event.Type.down;
- case "up" : return History.Event.Type.up;
- case "resized" : return History.Event.Type.resized;
- case "rebooted" : return History.Event.Type.rebooted;
- case "osUpgraded" : return History.Event.Type.osUpgraded;
- case "firmwareVerified" : return History.Event.Type.firmwareVerified;
- case "breakfixed" : return History.Event.Type.breakfixed;
- case "preferToRetire" : return History.Event.Type.preferToRetire;
- }
- throw new IllegalArgumentException("Unknown node event type '" + eventTypeString + "'");
+ return switch (eventTypeString) {
+ case "provisioned" -> History.Event.Type.provisioned;
+ case "deprovisioned" -> History.Event.Type.deprovisioned;
+ case "readied" -> History.Event.Type.readied;
+ case "reserved" -> History.Event.Type.reserved;
+ case "activated" -> History.Event.Type.activated;
+ case "wantToRetire" -> History.Event.Type.wantToRetire;
+ case "wantToFail" -> History.Event.Type.wantToFail;
+ case "retired" -> History.Event.Type.retired;
+ case "deactivated" -> History.Event.Type.deactivated;
+ case "parked" -> History.Event.Type.parked;
+ case "failed" -> History.Event.Type.failed;
+ case "deallocated" -> History.Event.Type.deallocated;
+ case "down" -> History.Event.Type.down;
+ case "up" -> History.Event.Type.up;
+ case "resized" -> History.Event.Type.resized;
+ case "rebooted" -> History.Event.Type.rebooted;
+ case "osUpgraded" -> History.Event.Type.osUpgraded;
+ case "firmwareVerified" -> History.Event.Type.firmwareVerified;
+ case "breakfixed" -> History.Event.Type.breakfixed;
+ case "preferToRetire" -> History.Event.Type.preferToRetire;
+ default -> throw new IllegalArgumentException("Unknown node event type '" + eventTypeString + "'");
+ };
}
private String toString(History.Event.Type nodeEventType) {
- switch (nodeEventType) {
- case provisioned : return "provisioned";
- case deprovisioned : return "deprovisioned";
- case readied : return "readied";
- case reserved : return "reserved";
- case activated : return "activated";
- case wantToRetire: return "wantToRetire";
- case wantToFail: return "wantToFail";
- case retired : return "retired";
- case deactivated : return "deactivated";
- case parked : return "parked";
- case failed : return "failed";
- case deallocated : return "deallocated";
- case down : return "down";
- case up : return "up";
- case resized: return "resized";
- case rebooted: return "rebooted";
- case osUpgraded: return "osUpgraded";
- case firmwareVerified: return "firmwareVerified";
- case breakfixed: return "breakfixed";
- case preferToRetire: return "preferToRetire";
- }
- throw new IllegalArgumentException("Serialized form of '" + nodeEventType + "' not defined");
+ return switch (nodeEventType) {
+ case provisioned -> "provisioned";
+ case deprovisioned -> "deprovisioned";
+ case readied -> "readied";
+ case reserved -> "reserved";
+ case activated -> "activated";
+ case wantToRetire -> "wantToRetire";
+ case wantToFail -> "wantToFail";
+ case retired -> "retired";
+ case deactivated -> "deactivated";
+ case parked -> "parked";
+ case failed -> "failed";
+ case deallocated -> "deallocated";
+ case down -> "down";
+ case up -> "up";
+ case resized -> "resized";
+ case rebooted -> "rebooted";
+ case osUpgraded -> "osUpgraded";
+ case firmwareVerified -> "firmwareVerified";
+ case breakfixed -> "breakfixed";
+ case preferToRetire -> "preferToRetire";
+ };
}
private Agent eventAgentFromSlime(Inspector eventAgentField) {
- switch (eventAgentField.asString()) {
- case "operator" : return Agent.operator;
- case "application" : return Agent.application;
- case "system" : return Agent.system;
- case "DirtyExpirer" : return Agent.DirtyExpirer;
- case "DynamicProvisioningMaintainer":
- case "HostCapacityMaintainer": return Agent.HostCapacityMaintainer;
- case "FailedExpirer" : return Agent.FailedExpirer;
- case "InactiveExpirer" : return Agent.InactiveExpirer;
- case "NodeFailer" : return Agent.NodeFailer;
- case "NodeHealthTracker" : return Agent.NodeHealthTracker;
- case "ProvisionedExpirer" : return Agent.ProvisionedExpirer;
- case "Rebalancer" : return Agent.Rebalancer;
- case "ReservationExpirer" : return Agent.ReservationExpirer;
- case "RetiringUpgrader" : return Agent.RetiringOsUpgrader;
- case "RebuildingOsUpgrader" : return Agent.RebuildingOsUpgrader;
- case "SpareCapacityMaintainer": return Agent.SpareCapacityMaintainer;
- case "SwitchRebalancer": return Agent.SwitchRebalancer;
- case "HostEncrypter": return Agent.HostEncrypter;
- case "ParkedExpirer": return Agent.ParkedExpirer;
- }
- throw new IllegalArgumentException("Unknown node event agent '" + eventAgentField.asString() + "'");
+ return switch (eventAgentField.asString()) {
+ case "operator" -> Agent.operator;
+ case "application" -> Agent.application;
+ case "system" -> Agent.system;
+ case "DirtyExpirer" -> Agent.DirtyExpirer;
+ case "DynamicProvisioningMaintainer", "HostCapacityMaintainer" -> Agent.HostCapacityMaintainer;
+ case "HostResumeProvisioner" -> Agent.HostResumeProvisioner;
+ case "FailedExpirer" -> Agent.FailedExpirer;
+ case "InactiveExpirer" -> Agent.InactiveExpirer;
+ case "NodeFailer" -> Agent.NodeFailer;
+ case "NodeHealthTracker" -> Agent.NodeHealthTracker;
+ case "ProvisionedExpirer" -> Agent.ProvisionedExpirer;
+ case "Rebalancer" -> Agent.Rebalancer;
+ case "ReservationExpirer" -> Agent.ReservationExpirer;
+ case "RetiringUpgrader" -> Agent.RetiringOsUpgrader;
+ case "RebuildingOsUpgrader" -> Agent.RebuildingOsUpgrader;
+ case "SpareCapacityMaintainer" -> Agent.SpareCapacityMaintainer;
+ case "SwitchRebalancer" -> Agent.SwitchRebalancer;
+ case "HostEncrypter" -> Agent.HostEncrypter;
+ case "ParkedExpirer" -> Agent.ParkedExpirer;
+ default -> throw new IllegalArgumentException("Unknown node event agent '" + eventAgentField.asString() + "'");
+ };
}
private String toString(Agent agent) {
- switch (agent) {
- case operator : return "operator";
- case application : return "application";
- case system : return "system";
- case DirtyExpirer : return "DirtyExpirer";
- case HostCapacityMaintainer: return "DynamicProvisioningMaintainer";
- case FailedExpirer : return "FailedExpirer";
- case InactiveExpirer : return "InactiveExpirer";
- case NodeFailer : return "NodeFailer";
- case NodeHealthTracker: return "NodeHealthTracker";
- case ProvisionedExpirer : return "ProvisionedExpirer";
- case Rebalancer : return "Rebalancer";
- case ReservationExpirer : return "ReservationExpirer";
- case RetiringOsUpgrader: return "RetiringUpgrader";
- case RebuildingOsUpgrader: return "RebuildingOsUpgrader";
- case SpareCapacityMaintainer: return "SpareCapacityMaintainer";
- case SwitchRebalancer: return "SwitchRebalancer";
- case HostEncrypter: return "HostEncrypter";
- case ParkedExpirer: return "ParkedExpirer";
- }
- throw new IllegalArgumentException("Serialized form of '" + agent + "' not defined");
+ return switch (agent) {
+ case operator -> "operator";
+ case application -> "application";
+ case system -> "system";
+ case DirtyExpirer -> "DirtyExpirer";
+ case HostCapacityMaintainer -> "DynamicProvisioningMaintainer";
+ case HostResumeProvisioner -> "HostResumeProvisioner";
+ case FailedExpirer -> "FailedExpirer";
+ case InactiveExpirer -> "InactiveExpirer";
+ case NodeFailer -> "NodeFailer";
+ case NodeHealthTracker -> "NodeHealthTracker";
+ case ProvisionedExpirer -> "ProvisionedExpirer";
+ case Rebalancer -> "Rebalancer";
+ case ReservationExpirer -> "ReservationExpirer";
+ case RetiringOsUpgrader -> "RetiringUpgrader";
+ case RebuildingOsUpgrader -> "RebuildingOsUpgrader";
+ case SpareCapacityMaintainer -> "SpareCapacityMaintainer";
+ case SwitchRebalancer -> "SwitchRebalancer";
+ case HostEncrypter -> "HostEncrypter";
+ case ParkedExpirer -> "ParkedExpirer";
+ };
}
static NodeType nodeTypeFromString(String typeString) {
- switch (typeString) {
- case "tenant": return NodeType.tenant;
- case "host": return NodeType.host;
- case "proxy": return NodeType.proxy;
- case "proxyhost": return NodeType.proxyhost;
- case "config": return NodeType.config;
- case "confighost": return NodeType.confighost;
- case "controller": return NodeType.controller;
- case "controllerhost": return NodeType.controllerhost;
- default : throw new IllegalArgumentException("Unknown node type '" + typeString + "'");
- }
+ return switch (typeString) {
+ case "tenant" -> NodeType.tenant;
+ case "host" -> NodeType.host;
+ case "proxy" -> NodeType.proxy;
+ case "proxyhost" -> NodeType.proxyhost;
+ case "config" -> NodeType.config;
+ case "confighost" -> NodeType.confighost;
+ case "controller" -> NodeType.controller;
+ case "controllerhost" -> NodeType.controllerhost;
+ default -> throw new IllegalArgumentException("Unknown node type '" + typeString + "'");
+ };
}
static String toString(NodeType type) {
- switch (type) {
- case tenant: return "tenant";
- case host: return "host";
- case proxy: return "proxy";
- case proxyhost: return "proxyhost";
- case config: return "config";
- case confighost: return "confighost";
- case controller: return "controller";
- case controllerhost: return "controllerhost";
- }
- throw new IllegalArgumentException("Serialized form of '" + type + "' not defined");
+ return switch (type) {
+ case tenant -> "tenant";
+ case host -> "host";
+ case proxy -> "proxy";
+ case proxyhost -> "proxyhost";
+ case config -> "config";
+ case confighost -> "confighost";
+ case controller -> "controller";
+ case controllerhost -> "controllerhost";
+ };
}
}