aboutsummaryrefslogtreecommitdiffstats
path: root/node-repository/src
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@vespa.ai>2023-07-12 11:22:24 +0200
committerJon Bratseth <bratseth@vespa.ai>2023-07-12 11:22:24 +0200
commit63dc331187f9d0f2a3570552edaff2c6e3536bcf (patch)
tree336299d67b1e1bf576d53b870e44f5e52fd8749f /node-repository/src
parentdb3d8de32915fa6a5ab75ca3f29bf579ede09bcc (diff)
Simplify
Diffstat (limited to 'node-repository/src')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/GroupPreparer.java11
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeAllocation.java2
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/Preparer.java13
3 files changed, 11 insertions, 15 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/GroupPreparer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/GroupPreparer.java
index 307ff937ddf..ff24175f2a0 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/GroupPreparer.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/GroupPreparer.java
@@ -35,10 +35,12 @@ public class GroupPreparer {
private final NodeRepository nodeRepository;
private final Optional<HostProvisioner> hostProvisioner;
+ private final Optional<LoadBalancerProvisioner> loadBalancerProvisioner;
- public GroupPreparer(NodeRepository nodeRepository, Optional<HostProvisioner> hostProvisioner) {
+ public GroupPreparer(NodeRepository nodeRepository, Optional<HostProvisioner> hostProvisioner, Optional<LoadBalancerProvisioner> loadBalancerProvisioner) {
this.nodeRepository = nodeRepository;
this.hostProvisioner = hostProvisioner;
+ this.loadBalancerProvisioner = loadBalancerProvisioner;
}
/**
@@ -56,9 +58,11 @@ public class GroupPreparer {
public List<Node> prepare(ApplicationId application, ClusterSpec cluster, NodeSpec requested, LockedNodeList allNodes) {
log.log(Level.FINE, () -> "Preparing " + cluster.type().name() + " " + cluster.id() + " with requested resources " +
requested.resources().orElse(NodeResources.unspecified()));
+
+ loadBalancerProvisioner.ifPresent(provisioner -> provisioner.prepare(application, cluster, requested));
+
// Try preparing in memory without global unallocated lock. Most of the time there should be no changes,
// and we can return nodes previously allocated.
-
NodeIndices indices = new NodeIndices(cluster.id(), allNodes);
NodeAllocation probeAllocation = prepareAllocation(application, cluster, requested, indices::probeNext, allNodes);
if (probeAllocation.fulfilledAndNoChanges()) {
@@ -128,7 +132,8 @@ public class GroupPreparer {
}
if (! allocation.fulfilled() && requested.canFail())
- throw new NodeAllocationException(allocation.allocationFailureDetails(), true);
+ throw new NodeAllocationException("Could not satisfy " + requested + " in " + application + " " + cluster +
+ allocation.allocationFailureDetails(), true);
// Carry out and return allocation
List<Node> acceptedNodes = allocation.finalNodes();
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeAllocation.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeAllocation.java
index 45dd12c7bde..5de0911b2f9 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeAllocation.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeAllocation.java
@@ -455,7 +455,7 @@ class NodeAllocation {
reasons.add("insufficient real resources on hosts");
if (reasons.isEmpty()) return "";
- return "Not enough suitable nodes available due to " + String.join(", ", reasons);
+ return ": Not enough suitable nodes available due to " + String.join(", ", reasons);
}
private static Integer parseIndex(String hostname) {
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/Preparer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/Preparer.java
index 6ea59edc37d..5a33f2f2bb9 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/Preparer.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/Preparer.java
@@ -21,12 +21,10 @@ import java.util.Optional;
class Preparer {
private final GroupPreparer groupPreparer;
- private final Optional<LoadBalancerProvisioner> loadBalancerProvisioner;
public Preparer(NodeRepository nodeRepository, Optional<HostProvisioner> hostProvisioner,
Optional<LoadBalancerProvisioner> loadBalancerProvisioner) {
- this.loadBalancerProvisioner = loadBalancerProvisioner;
- this.groupPreparer = new GroupPreparer(nodeRepository, hostProvisioner);
+ this.groupPreparer = new GroupPreparer(nodeRepository, hostProvisioner, loadBalancerProvisioner);
}
/**
@@ -38,14 +36,7 @@ class Preparer {
// but it may not change the set of active nodes, as the active nodes must stay in sync with the
// active config model which is changed on activate
public List<Node> prepare(ApplicationId application, ClusterSpec cluster, NodeSpec requested) {
- try {
- loadBalancerProvisioner.ifPresent(provisioner -> provisioner.prepare(application, cluster, requested));
- return groupPreparer.prepare(application, cluster, requested, groupPreparer.createUnlockedNodeList());
- }
- catch (NodeAllocationException e) {
- throw new NodeAllocationException("Could not satisfy " + requested + " in " + application + " " + cluster, e,
- e.retryable());
- }
+ return groupPreparer.prepare(application, cluster, requested, groupPreparer.createUnlockedNodeList());
}
}