aboutsummaryrefslogtreecommitdiffstats
path: root/node-repository
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2021-06-15 13:27:10 +0200
committerMartin Polden <mpolden@mpolden.no>2021-06-15 13:27:10 +0200
commit788c146752d7f464fae616bbf8acdb286eca0158 (patch)
tree35c79ab20c91f2acae40ed007227d0537ff0420c /node-repository
parent4521c56ba2f790999a96feb3e7cb2d5bd9134f2b (diff)
Ignore tester application
Diffstat (limited to 'node-repository')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisioner.java12
1 files changed, 9 insertions, 3 deletions
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 b6600574f94..1a01fac247e 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
@@ -76,8 +76,7 @@ public class LoadBalancerProvisioner {
* Calling this for irrelevant node or cluster types is a no-op.
*/
public void prepare(ApplicationId application, ClusterSpec cluster, NodeSpec requestedNodes) {
- if (!service.supports(requestedNodes.type(), cluster.type())) return; // Nothing to provision for this node and cluster type
- if (application.instance().isTester()) return; // Do not provision for tester instances
+ if (!shouldProvision(application, requestedNodes.type(), cluster.type())) return;
try (var lock = db.lock(application)) {
ClusterSpec.Id clusterId = effectiveId(cluster);
LoadBalancerId loadBalancerId = requireNonClashing(new LoadBalancerId(application, clusterId));
@@ -104,7 +103,7 @@ public class LoadBalancerProvisioner {
if (!activatingClusters.contains(cluster.getKey())) continue;
Node clusterNode = cluster.getValue().first().get();
- if (!service.supports(clusterNode.type(), clusterNode.allocation().get().membership().cluster().type())) continue;
+ if (!shouldProvision(transaction.application(), clusterNode.type(), clusterNode.allocation().get().membership().cluster().type())) continue;
activate(transaction, cluster.getKey(), cluster.getValue());
}
// Deactivate any surplus load balancers, i.e. load balancers for clusters that have been removed
@@ -120,6 +119,13 @@ public class LoadBalancerProvisioner {
deactivate(nodeRepository.loadBalancers().list(transaction.application()).asList(), transaction.nested());
}
+ /** Returns whether to provision a load balancer for given application */
+ private boolean shouldProvision(ApplicationId application, NodeType nodeType, ClusterSpec.Type clusterType) {
+ if (application.instance().isTester()) return false; // Do not provision for tester instances
+ if (!service.supports(nodeType, clusterType)) return false; // Nothing to provision for this node and cluster type
+ return true;
+ }
+
/** Returns load balancers of given application that are no longer referenced by given clusters */
private List<LoadBalancer> surplusLoadBalancersOf(ApplicationId application, Set<ClusterSpec.Id> activeClusters) {
var activeLoadBalancersByCluster = nodeRepository.loadBalancers().list(application)