diff options
author | Valerij Fredriksen <valerijf@vespa.ai> | 2024-06-12 15:25:32 +0200 |
---|---|---|
committer | Valerij Fredriksen <valerijf@vespa.ai> | 2024-06-12 15:25:32 +0200 |
commit | 49d22ac04dedff6640b27cfc30158a7f4f2ca861 (patch) | |
tree | b9654d9a0735a3c6ab4d677c2f6f75c753e76035 /node-repository | |
parent | 153bcecb2181ccfba531ee3c348161f525fc484f (diff) |
Define and catch ThrottleProvisioningException
Diffstat (limited to 'node-repository')
2 files changed, 20 insertions, 0 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostDeprovisioner.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostDeprovisioner.java index 4026a294111..8a532131d90 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostDeprovisioner.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostDeprovisioner.java @@ -6,6 +6,7 @@ import com.yahoo.vespa.hosted.provision.Node; import com.yahoo.vespa.hosted.provision.NodeList; import com.yahoo.vespa.hosted.provision.NodeRepository; import com.yahoo.vespa.hosted.provision.provisioning.HostProvisioner; +import com.yahoo.vespa.hosted.provision.provisioning.ThrottleProvisioningException; import java.time.Duration; import java.util.logging.Level; @@ -48,6 +49,9 @@ public class HostDeprovisioner extends NodeRepositoryMaintainer { // if we want to support aborting deprovision if operator manually intervenes if (hostProvisioner.deprovision(host)) nodeRepository().nodes().removeRecursively(host, true); + } catch (ThrottleProvisioningException e) { + log.log(Level.INFO, "Failed to deprovision " + host.hostname() + ", will retry in " + interval() + ": " + e.getMessage()); + break; } catch (RuntimeException e) { failures++; log.log(Level.WARNING, "Failed to deprovision " + host.hostname() + ", will retry in " + interval(), e); diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/ThrottleProvisioningException.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/ThrottleProvisioningException.java new file mode 100644 index 00000000000..c41e5c94fee --- /dev/null +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/ThrottleProvisioningException.java @@ -0,0 +1,16 @@ +// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.vespa.hosted.provision.provisioning; + +import com.yahoo.config.provision.TransientException; + +/** + * Thrown by {@link HostProvisioner} to indicate that (de)provisioning of a host has + * failed due request being throttled by the cloud provider. + * + * @author freva + */ +public class ThrottleProvisioningException extends TransientException { + public ThrottleProvisioningException(String message) { + super(message); + } +} |