summaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2021-02-16 11:53:26 +0100
committerJon Bratseth <bratseth@gmail.com>2021-02-16 11:53:26 +0100
commit8125df94dc66bf3765fc6335c6dc65c4a0e3a6d5 (patch)
treef987057ee1078092b119c7880dc18d6dac2b96dd /config-model
parent4a62c2efe7ab3856e400ed512169cf2c2a78110b (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.java1
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/test/VespaModelTester.java37
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);
+ }
+
+ }
}