aboutsummaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@oath.com>2018-04-17 11:39:33 +0200
committerJon Bratseth <bratseth@oath.com>2018-04-17 11:39:33 +0200
commitd8405d54687ba52f5bd030568493aab2337f53ca (patch)
treee99b6cbcd561f9045ed177f8d7c5553bab4e7827 /config-model
parent55ba4d6543250aec271e0591fc520cc1090a3a60 (diff)
parent325691706848b039b0eab3623b53cb7173071239 (diff)
Merge with master
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/config/model/test/MockApplicationPackage.java2
-rw-r--r--config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java148
2 files changed, 108 insertions, 42 deletions
diff --git a/config-model/src/main/java/com/yahoo/config/model/test/MockApplicationPackage.java b/config-model/src/main/java/com/yahoo/config/model/test/MockApplicationPackage.java
index 6a8d754af1c..8ca0e5c501c 100644
--- a/config-model/src/main/java/com/yahoo/config/model/test/MockApplicationPackage.java
+++ b/config-model/src/main/java/com/yahoo/config/model/test/MockApplicationPackage.java
@@ -258,7 +258,7 @@ public class MockApplicationPackage implements ApplicationPackage {
@Override
- public void validateXML() throws IOException {
+ public void validateXML() {
if (failOnValidateXml) {
throw new IllegalArgumentException("Error in application package");
} else {
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 9d9aff13944..dd5a15acb2a 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
@@ -1393,6 +1393,7 @@ public class ModelProvisioningTest {
" </content>\n" +
"\n" +
"</services>";
+
VespaModel model = createNonProvisionedMultitenantModel(services);
assertThat(model.getRoot().getHostSystem().getHosts().size(), is(1));
ContentCluster content = model.getContentClusters().get("storage");
@@ -1402,47 +1403,108 @@ public class ModelProvisioningTest {
}
@Test
+ public void testSharedNodesNotHosted() {
+ String hosts =
+ "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n" +
+ "<hosts>\n" +
+ " <host name=\"vespa-1\">\n" +
+ " <alias>vespa-1</alias>\n" +
+ " </host>\n" +
+ " <host name=\"vespa-2\">\n" +
+ " <alias>vespa-2</alias>\n" +
+ " </host>\n" +
+ " <host name=\"vespa-3\">\n" +
+ " <alias>vespa-3</alias>\n" +
+ " </host>\n" +
+ "</hosts>";
+ String services =
+ "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n" +
+ "<services version=\"1.0\">\n" +
+ "\n" +
+ " <admin version=\"2.0\">\n" +
+ " <adminserver hostalias=\"vespa-1\"/>\n" +
+ " <configservers>\n" +
+ " <configserver hostalias=\"vespa-1\"/>\n" +
+ " </configservers>\n" +
+ " </admin>\n" +
+ "\n" +
+ " <container id=\"container\" version=\"1.0\">\n" +
+ " <document-processing/>\n" +
+ " <document-api/>\n" +
+ " <search/>\n" +
+ " <nodes jvmargs=\"-Xms512m -Xmx512m\">\n" +
+ " <node hostalias=\"vespa-1\"/>\n" +
+ " <node hostalias=\"vespa-2\"/>\n" +
+ " <node hostalias=\"vespa-3\"/>\n" +
+ " </nodes>\n" +
+ " </container>\n" +
+ "\n" +
+ " <content id=\"storage\" version=\"1.0\">\n" +
+ " <search>\n" +
+ " <visibility-delay>1.0</visibility-delay>\n" +
+ " </search>\n" +
+ " <redundancy>2</redundancy>\n" +
+ " <documents>\n" +
+ " <document type=\"type1\" mode=\"index\"/>\n" +
+ " <document-processing cluster=\"container\"/>\n" +
+ " </documents>\n" +
+ " <nodes>\n" +
+ " <node hostalias=\"vespa-1\" distribution-key=\"0\"/>\n" +
+ " <node hostalias=\"vespa-2\" distribution-key=\"1\"/>\n" +
+ " <node hostalias=\"vespa-3\" distribution-key=\"2\"/>\n" +
+ " </nodes>\n" +
+ " </content>\n" +
+ "\n" +
+ "</services>";
+
+ VespaModel model = createNonProvisionedModel(false, hosts, services);
+ assertEquals(3, model.getRoot().getHostSystem().getHosts().size());
+ ContentCluster content = model.getContentClusters().get("storage");
+ assertEquals(3, content.getRootGroup().getNodes().size());
+ }
+
+ @Test
public void testMultitenantButNotHostedSharedContentNode() {
String services =
- "<?xml version='1.0' encoding='UTF-8' ?>" +
- "<services version='1.0'>" +
- " <admin version='2.0'>" +
- " <adminserver hostalias='node1'/>" +
- " </admin>" +
- " <jdisc id='default' version='1.0'>" +
- " <search/>" +
- " <nodes>" +
- " <node hostalias='node1'/>" +
- " </nodes>" +
- " </jdisc>" +
- " <content id='storage' version='1.0'>" +
- " <redundancy>2</redundancy>" +
- " <group>" +
- " <node distribution-key='0' hostalias='node1'/>" +
- " <node distribution-key='1' hostalias='node1'/>" +
- " </group>" +
- " <tuning>" +
- " <cluster-controller>" +
- " <transition-time>0</transition-time>" +
- " </cluster-controller>" +
- " </tuning>" +
- " <documents>" +
- " <document mode='store-only' type='type1'/>" +
- " </documents>" +
- " <engine>" +
- " <proton/>" +
- " </engine>" +
- " </content>" +
- " <content id='search' version='1.0'>" +
- " <redundancy>2</redundancy>" +
- " <group>" +
- " <node distribution-key='0' hostalias='node1'/>" +
- " </group>" +
- " <documents>" +
- " <document type='type1'/>" +
- " </documents>" +
- " </content>" +
- " </services>";
+ "<?xml version='1.0' encoding='UTF-8' ?>" +
+ "<services version='1.0'>" +
+ " <admin version='2.0'>" +
+ " <adminserver hostalias='node1'/>" +
+ " </admin>" +
+ " <jdisc id='default' version='1.0'>" +
+ " <search/>" +
+ " <nodes>" +
+ " <node hostalias='node1'/>" +
+ " </nodes>" +
+ " </jdisc>" +
+ " <content id='storage' version='1.0'>" +
+ " <redundancy>2</redundancy>" +
+ " <group>" +
+ " <node distribution-key='0' hostalias='node1'/>" +
+ " <node distribution-key='1' hostalias='node1'/>" +
+ " </group>" +
+ " <tuning>" +
+ " <cluster-controller>" +
+ " <transition-time>0</transition-time>" +
+ " </cluster-controller>" +
+ " </tuning>" +
+ " <documents>" +
+ " <document mode='store-only' type='type1'/>" +
+ " </documents>" +
+ " <engine>" +
+ " <proton/>" +
+ " </engine>" +
+ " </content>" +
+ " <content id='search' version='1.0'>" +
+ " <redundancy>2</redundancy>" +
+ " <group>" +
+ " <node distribution-key='0' hostalias='node1'/>" +
+ " </group>" +
+ " <documents>" +
+ " <document type='type1'/>" +
+ " </documents>" +
+ " </content>" +
+ " </services>";
VespaModel model = createNonProvisionedMultitenantModel(services);
assertThat(model.getRoot().getHostSystem().getHosts().size(), is(1));
@@ -1453,10 +1515,14 @@ public class ModelProvisioningTest {
}
private VespaModel createNonProvisionedMultitenantModel(String services) {
- VespaModelCreatorWithMockPkg modelCreatorWithMockPkg = new VespaModelCreatorWithMockPkg(null, services, ApplicationPackageUtils.generateSearchDefinition("type1"));
+ return createNonProvisionedModel(true, null, services);
+ }
+
+ private VespaModel createNonProvisionedModel(boolean multitenant, String hosts, String services) {
+ VespaModelCreatorWithMockPkg modelCreatorWithMockPkg = new VespaModelCreatorWithMockPkg(hosts, services, ApplicationPackageUtils.generateSearchDefinition("type1"));
ApplicationPackage appPkg = modelCreatorWithMockPkg.appPkg;
DeployState deployState = new DeployState.Builder().applicationPackage(appPkg).
- properties((new DeployProperties.Builder()).multitenant(true).build()).
+ properties((new DeployProperties.Builder()).multitenant(multitenant).build()).
build(true);
return modelCreatorWithMockPkg.create(false, deployState);
}