diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/HostProvisioner.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/HostProvisioner.java index fd7ac47fa479..1448d308932c 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/HostProvisioner.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/HostProvisioner.java @@ -24,9 +24,6 @@ public interface HostProvisioner { enum HostSharing { - /** The host must be provisioned exclusively for the application ID. */ - provision, - /** The host must be exclusive to a single application ID */ exclusive, @@ -34,7 +31,7 @@ enum HostSharing { shared; public boolean isExclusiveAllocation() { - return this == provision || this == exclusive; + return this == exclusive; } } 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 1a7d116005fb..7cc280889d11 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 @@ -241,12 +241,9 @@ private boolean canProvisionDynamically(NodeType hostType) { } private HostSharing hostSharing(ClusterSpec cluster, NodeType hostType) { - if ( hostType.isSharable()) - return nodeRepository.exclusivity().provisioning(cluster) ? HostSharing.provision : - nodeRepository.exclusivity().allocation(cluster) ? HostSharing.exclusive : - HostSharing.shared; - else - return HostSharing.shared; + if (hostType.isSharable() && nodeRepository.exclusivity().allocation(cluster)) + return HostSharing.exclusive; + return HostSharing.shared; } } diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisionedHost.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisionedHost.java index 8a84cfef09a9..4853adc50f0e 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisionedHost.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisionedHost.java @@ -30,7 +30,6 @@ public class ProvisionedHost { private final String hostHostname; private final Flavor hostFlavor; private final NodeType hostType; - private final Optional provisionedForApplicationId; private final Optional exclusiveToApplicationId; private final Optional exclusiveToClusterType; private final List nodeHostnames; @@ -39,7 +38,6 @@ public class ProvisionedHost { private final CloudAccount cloudAccount; public ProvisionedHost(String id, String hostHostname, Flavor hostFlavor, NodeType hostType, - Optional provisionedForApplicationId, Optional exclusiveToApplicationId, Optional exclusiveToClusterType, List nodeHostnames, NodeResources nodeResources, @@ -49,7 +47,6 @@ public ProvisionedHost(String id, String hostHostname, Flavor hostFlavor, NodeTy this.hostHostname = Objects.requireNonNull(hostHostname, "Host hostname must be set"); this.hostFlavor = Objects.requireNonNull(hostFlavor, "Host flavor must be set"); this.hostType = Objects.requireNonNull(hostType, "Host type must be set"); - this.provisionedForApplicationId = Objects.requireNonNull(provisionedForApplicationId, "provisionedForApplicationId must be set"); this.exclusiveToApplicationId = Objects.requireNonNull(exclusiveToApplicationId, "exclusiveToApplicationId must be set"); this.exclusiveToClusterType = Objects.requireNonNull(exclusiveToClusterType, "exclusiveToClusterType must be set"); this.nodeHostnames = validateNodeAddresses(nodeHostnames); @@ -71,7 +68,6 @@ public Node generateHost(Duration hostTTL) { Node.Builder builder = Node.create(id, IP.Config.of(List.of(), List.of(), nodeHostnames), hostHostname, hostFlavor, hostType) .status(Status.initial().withOsVersion(OsVersion.EMPTY.withCurrent(Optional.of(osVersion)))) .cloudAccount(cloudAccount); - provisionedForApplicationId.ifPresent(builder::provisionedForApplicationId); exclusiveToApplicationId.ifPresent(builder::exclusiveToApplicationId); exclusiveToClusterType.ifPresent(builder::exclusiveToClusterType); if ( ! hostTTL.isZero()) builder.hostTTL(hostTTL); @@ -89,7 +85,6 @@ public Node generateNode() { public String hostHostname() { return hostHostname; } public Flavor hostFlavor() { return hostFlavor; } public NodeType hostType() { return hostType; } - public Optional provisionedForApplicationId() { return provisionedForApplicationId; } public Optional exclusiveToApplicationId() { return exclusiveToApplicationId; } public Optional exclusiveToClusterType() { return exclusiveToClusterType; } public List nodeHostnames() { return nodeHostnames; } @@ -108,7 +103,6 @@ public boolean equals(Object o) { hostHostname.equals(that.hostHostname) && hostFlavor.equals(that.hostFlavor) && hostType == that.hostType && - provisionedForApplicationId.equals(that.provisionedForApplicationId) && exclusiveToApplicationId.equals(that.exclusiveToApplicationId) && exclusiveToClusterType.equals(that.exclusiveToClusterType) && nodeHostnames.equals(that.nodeHostnames) && @@ -119,7 +113,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(id, hostHostname, hostFlavor, hostType, provisionedForApplicationId, exclusiveToApplicationId, exclusiveToClusterType, nodeHostnames, nodeResources, osVersion, cloudAccount); + return Objects.hash(id, hostHostname, hostFlavor, hostType, exclusiveToApplicationId, exclusiveToClusterType, nodeHostnames, nodeResources, osVersion, cloudAccount); } @Override @@ -129,7 +123,6 @@ public String toString() { ", hostHostname='" + hostHostname + '\'' + ", hostFlavor=" + hostFlavor + ", hostType=" + hostType + - ", provisionedForApplicationId=" + provisionedForApplicationId + ", exclusiveToApplicationId=" + exclusiveToApplicationId + ", exclusiveToClusterType=" + exclusiveToClusterType + ", nodeHostnames=" + nodeHostnames + diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockHostProvisioner.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockHostProvisioner.java index de9e241bbfd9..ae867873e33c 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockHostProvisioner.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockHostProvisioner.java @@ -94,7 +94,6 @@ public Runnable provisionHosts(HostProvisionRequest request, Predicate node.removable(true)); - NodeList exclusiveViolators = nodes.owner(application1).not().retired().first(2); - List parents = exclusiveViolators.mapToList(node -> nodes.parentOf(node).get()); - tester.patchNode(parents.get(0), node -> node.withProvisionedForApplicationId(ApplicationId.defaultId())); - tester.patchNode(parents.get(1), node -> node.withExclusiveToClusterType(container)); - - prepareAndActivate(application1, clusterSpec("mycluster"), 4, 1, smallerExclusiveResources, tester); - assertEquals(10, tester.nodeRepository().nodes().list().owner(application1).size()); - assertEquals(exclusiveViolators, tester.nodeRepository().nodes().list().owner(application1).retired()); - } - @Test public void node_indices_are_unique_even_when_a_node_is_left_in_reserved_state() { var tester = tester(true);