diff options
author | Jon Bratseth <bratseth@gmail.com> | 2021-02-16 11:53:26 +0100 |
---|---|---|
committer | Jon Bratseth <bratseth@gmail.com> | 2021-02-16 11:53:26 +0100 |
commit | 8125df94dc66bf3765fc6335c6dc65c4a0e3a6d5 (patch) | |
tree | f987057ee1078092b119c7880dc18d6dac2b96dd /config-model | |
parent | 4a62c2efe7ab3856e400ed512169cf2c2a78110b (diff) |
Generalize error message and make tests more realistic
Diffstat (limited to 'config-model')
-rw-r--r-- | config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java | 1 | ||||
-rw-r--r-- | config-model/src/test/java/com/yahoo/vespa/model/test/VespaModelTester.java | 37 |
2 files changed, 34 insertions, 4 deletions
diff --git a/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java b/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java index 5a71f83e468..5ffdcaa8bc0 100644 --- a/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java +++ b/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java @@ -1403,6 +1403,7 @@ public class ModelProvisioningTest { "</container>" + "</services>"; VespaModelTester tester = new VespaModelTester(); + tester.setHosted(false); tester.addHosts(1); VespaModel model = tester.createModel(services, true); assertEquals(1, model.getRoot().hostSystem().getHosts().size()); diff --git a/config-model/src/test/java/com/yahoo/vespa/model/test/VespaModelTester.java b/config-model/src/test/java/com/yahoo/vespa/model/test/VespaModelTester.java index ce8d2c193b9..90ad240ff73 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/test/VespaModelTester.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/test/VespaModelTester.java @@ -15,8 +15,13 @@ import com.yahoo.config.model.provision.InMemoryProvisioner; import com.yahoo.config.model.provision.SingleNodeProvisioner; import com.yahoo.config.provision.AllocatedHosts; import com.yahoo.config.provision.ApplicationId; +import com.yahoo.config.provision.Capacity; +import com.yahoo.config.provision.ClusterSpec; import com.yahoo.config.provision.Flavor; +import com.yahoo.config.provision.HostSpec; import com.yahoo.config.provision.NodeResources; +import com.yahoo.config.provision.ProvisionLogger; +import com.yahoo.config.provision.Provisioner; import com.yahoo.config.provision.Zone; import com.yahoo.vespa.model.VespaModel; import com.yahoo.vespa.model.test.utils.ApplicationPackageUtils; @@ -47,7 +52,7 @@ public class VespaModelTester { private final ConfigModelRegistry configModelRegistry; private boolean hosted = true; - private Map<NodeResources, Collection<Host>> hostsByResources = new HashMap<>(); + private final Map<NodeResources, Collection<Host>> hostsByResources = new HashMap<>(); private ApplicationId applicationId = ApplicationId.defaultId(); private boolean useDedicatedNodeForLogserver = false; @@ -139,9 +144,12 @@ public class VespaModelTester { ApplicationPackage appPkg = modelCreatorWithMockPkg.appPkg; HostProvisioner provisioner = hosted ? - new InMemoryProvisioner(hostsByResources, failOnOutOfCapacity, useMaxResources, - false, - startIndexForClusters, retiredHostNames) : + new ProvisionerAdapter(new InMemoryProvisioner(hostsByResources, + failOnOutOfCapacity, + useMaxResources, + false, + startIndexForClusters, + retiredHostNames)) : new SingleNodeProvisioner(); TestProperties properties = new TestProperties() @@ -159,4 +167,25 @@ public class VespaModelTester { return modelCreatorWithMockPkg.create(false, deployState.build(), configModelRegistry); } + /** To verify that we don't call allocateHost(alias) in hosted environments */ + private static class ProvisionerAdapter implements HostProvisioner { + + private final HostProvisioner provisioner; + + public ProvisionerAdapter(HostProvisioner provisioner) { + this.provisioner = provisioner; + } + + @Override + public HostSpec allocateHost(String alias) { + throw new UnsupportedOperationException("Allocating hosts using <node> tags is not supported in hosted environments, " + + "use <nodes count='N'> instead, see https://cloud.vespa.ai/en/reference/services"); + } + + @Override + public List<HostSpec> prepare(ClusterSpec cluster, Capacity capacity, ProvisionLogger logger) { + return provisioner.prepare(cluster, capacity, logger); + } + + } } |