diff options
author | Harald Musum <musum@yahooinc.com> | 2023-05-22 14:58:34 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-22 14:58:34 +0200 |
commit | f8fda07e9542664277e1835c9d6d1fd136ea6b6a (patch) | |
tree | 7142bc363c83a669abec26288b83d2225da1c77c /configserver/src/test | |
parent | 38601194dc7ece53e180005f10f26c3858956ce6 (diff) |
Revert "Revert "Use another exception and error in response when quota is exceed""
Diffstat (limited to 'configserver/src/test')
-rw-r--r-- | configserver/src/test/java/com/yahoo/vespa/config/server/deploy/HostedDeployNodeAllocationTest.java | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/HostedDeployNodeAllocationTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/HostedDeployNodeAllocationTest.java index e546569b255..e9dca44ed81 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/HostedDeployNodeAllocationTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/HostedDeployNodeAllocationTest.java @@ -4,14 +4,17 @@ package com.yahoo.vespa.config.server.deploy; import com.yahoo.component.Version; import com.yahoo.config.model.api.HostProvisioner; import com.yahoo.config.model.api.ModelFactory; +import com.yahoo.config.model.api.Quota; import com.yahoo.config.provision.Capacity; import com.yahoo.config.provision.ClusterMembership; import com.yahoo.config.provision.ClusterSpec; import com.yahoo.config.provision.HostSpec; import com.yahoo.config.provision.NodeResources; import com.yahoo.config.provision.ProvisionLogger; +import com.yahoo.config.provision.QuotaExceededException; import com.yahoo.config.provision.Zone; import com.yahoo.vespa.config.server.MockProvisioner; +import com.yahoo.vespa.config.server.session.PrepareParams; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; @@ -24,6 +27,7 @@ import java.util.stream.Collectors; import static com.yahoo.vespa.config.server.deploy.DeployTester.createHostedModelFactory; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; public class HostedDeployNodeAllocationTest { @@ -50,6 +54,26 @@ public class HostedDeployNodeAllocationTest { assertEquals(resources(2), get("host4", hosts).advertisedResources()); } + @Test + public void testExceedsQuota() { + List<ModelFactory> modelFactories = List.of(createHostedModelFactory(Version.fromString("7.2")), + createHostedModelFactory(Version.fromString("7.3"))); + var provisioner = new VersionProvisioner(); + DeployTester tester = new DeployTester.Builder(temporaryFolder).modelFactories(modelFactories) + .provisioner(new MockProvisioner().hostProvisioner(provisioner)) + .hostedConfigserverConfig(Zone.defaultZone()) + .build(); + + try { + tester.deployApp("src/test/apps/hosted/", new PrepareParams.Builder() + .vespaVersion("7.3") + .quota(new Quota(Optional.of(4), Optional.of(0)))); + fail("Expected to get a QuotaExceededException"); + } catch (QuotaExceededException e) { + assertEquals("main: The resources used cost $1.02 but your quota is $0.00: Contact support to upgrade your plan.", e.getMessage()); + } + } + private HostSpec get(String hostname, Set<HostSpec> hosts) { return hosts.stream().filter(host -> host.hostname().equals(hostname)).findAny().orElseThrow(); } |