diff options
author | Martin Polden <mpolden@mpolden.no> | 2019-06-21 13:42:18 +0200 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2019-06-21 13:44:26 +0200 |
commit | 65a5316c0891059ec1dad5ad28f34265cceaaead (patch) | |
tree | dfb493885f5440d2b36bf6745c4cad4cfbefeb7a /node-repository | |
parent | fe4a0938e061aca61f9308481fa1aa6a5e1b9f92 (diff) |
Use common exception class for transient provisioning exceptions
Diffstat (limited to 'node-repository')
2 files changed, 25 insertions, 1 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancerServiceException.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancerServiceException.java new file mode 100644 index 00000000000..e5ab519ab94 --- /dev/null +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancerServiceException.java @@ -0,0 +1,17 @@ +// Copyright 2019 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.vespa.hosted.provision.lb; + +import com.yahoo.config.provision.TransientException; + +/** + * Transient exception thrown on behalf of a {@link LoadBalancerService}. + * + * @author mpolden + */ +public class LoadBalancerServiceException extends TransientException { + + public LoadBalancerServiceException(String message, Throwable cause) { + super(message, cause); + } + +} diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisioner.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisioner.java index b74972458de..ca7ee1b13a1 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisioner.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisioner.java @@ -14,6 +14,7 @@ import com.yahoo.vespa.hosted.provision.NodeRepository; import com.yahoo.vespa.hosted.provision.lb.LoadBalancer; import com.yahoo.vespa.hosted.provision.lb.LoadBalancerId; import com.yahoo.vespa.hosted.provision.lb.LoadBalancerInstance; +import com.yahoo.vespa.hosted.provision.lb.LoadBalancerServiceException; import com.yahoo.vespa.hosted.provision.lb.LoadBalancerService; import com.yahoo.vespa.hosted.provision.lb.Real; import com.yahoo.vespa.hosted.provision.node.IP; @@ -126,7 +127,13 @@ public class LoadBalancerProvisioner { }); log.log(LogLevel.INFO, "Creating load balancer for " + cluster + " in " + application.toShortString() + ", targeting: " + nodes); - return service.create(application, cluster, reals); + try { + return service.create(application, cluster, reals); + } catch (Exception e) { + throw new LoadBalancerServiceException("Failed to (re)configure load balancer for " + cluster + " in " + + application + ", targeting: " + nodes + ". The operation will be " + + "retried on next deployment", e); + } } /** Returns a list of active and reserved nodes of type container in given cluster */ |