summaryrefslogtreecommitdiffstats
path: root/config-model/src
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@yahoo-inc.com>2017-04-07 16:49:04 +0200
committerJon Bratseth <bratseth@yahoo-inc.com>2017-04-07 16:49:04 +0200
commit025167b28f847e56333db4922d7a7543fcad7a1a (patch)
treea2466cbccc5fcffa89eb23464a915c83b83ef051 /config-model/src
parentb2f526a6b79965b9ff871d8cdfe283dccc1eefe8 (diff)
Pass wanted node Vespa version around
Diffstat (limited to 'config-model/src')
-rw-r--r--config-model/src/main/java/com/yahoo/config/model/test/TestDriver.java5
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/VespaModelFactory.java20
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/NodesSpecification.java1
-rw-r--r--config-model/src/test/java/com/yahoo/config/model/ApplicationDeployTest.java5
-rw-r--r--config-model/src/test/java/com/yahoo/config/model/MockModelContext.java8
-rw-r--r--config-model/src/test/java/com/yahoo/config/model/application/provider/SchemaValidatorTest.java3
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/admin/ClusterControllerTestCase.java3
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/test/utils/VespaModelCreatorWithFilePkg.java5
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/test/utils/VespaModelCreatorWithMockPkg.java8
9 files changed, 40 insertions, 18 deletions
diff --git a/config-model/src/main/java/com/yahoo/config/model/test/TestDriver.java b/config-model/src/main/java/com/yahoo/config/model/test/TestDriver.java
index 4518e44d441..38523b33549 100644
--- a/config-model/src/main/java/com/yahoo/config/model/test/TestDriver.java
+++ b/config-model/src/main/java/com/yahoo/config/model/test/TestDriver.java
@@ -2,6 +2,7 @@
package com.yahoo.config.model.test;
import com.google.common.annotations.Beta;
+import com.yahoo.component.Version;
import com.yahoo.config.model.MapConfigModelRegistry;
import com.yahoo.config.application.api.ApplicationPackage;
import com.yahoo.config.model.application.provider.SchemaValidator;
@@ -101,11 +102,11 @@ public class TestDriver {
if (!validate) {
return;
}
- SchemaValidator validator = SchemaValidator.createTestValidatorHosts();
+ SchemaValidator validator = SchemaValidator.createTestValidatorHosts(new Version(6));
if (appPkg.getHosts() != null) {
validator.validate(appPkg.getHosts());
}
- validator = SchemaValidator.createTestValidatorServices();
+ validator = SchemaValidator.createTestValidatorServices(new Version(6));
validator.validate(appPkg.getServices());
}
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/VespaModelFactory.java b/config-model/src/main/java/com/yahoo/vespa/model/VespaModelFactory.java
index 35ea2134813..8e384b6e875 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/VespaModelFactory.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/VespaModelFactory.java
@@ -81,14 +81,24 @@ public class VespaModelFactory implements ModelFactory {
}
@Override
- public ModelCreateResult createAndValidateModel(ModelContext modelContext, boolean ignoreValidationErrors) {
+ public ModelCreateResult createAndValidateModel(ModelContext modelContext,
+ boolean ignoreValidationErrors) {
+ validateXml(modelContext, ignoreValidationErrors);
+ DeployState deployState = createDeployState(modelContext);
+ VespaModel model = buildModel(deployState);
+ List<ConfigChangeAction> changeActions = validateModel(model, deployState, ignoreValidationErrors);
+ return new ModelCreateResult(model, changeActions);
+ }
+
+ private void validateXml(ModelContext modelContext, boolean ignoreValidationErrors) {
if (modelContext.appDir().isPresent()) {
ApplicationPackageXmlFilesValidator validator =
ApplicationPackageXmlFilesValidator.createDefaultXMLValidator(modelContext.appDir().get(),
- modelContext.vespaVersion());
+ modelContext.modelVespaVersion());
try {
validator.checkApplication();
- ApplicationPackageXmlFilesValidator.checkIncludedDirs(modelContext.applicationPackage());
+ ApplicationPackageXmlFilesValidator.checkIncludedDirs(modelContext.applicationPackage(),
+ modelContext.modelVespaVersion());
} catch (IllegalArgumentException e) {
rethrowUnlessIgnoreErrors(e, ignoreValidationErrors);
} catch (Exception e) {
@@ -98,10 +108,6 @@ public class VespaModelFactory implements ModelFactory {
} else {
validateXML(modelContext.applicationPackage(), ignoreValidationErrors);
}
- DeployState deployState = createDeployState(modelContext);
- VespaModel model = buildModel(deployState);
- List<ConfigChangeAction> changeActions = validateModel(model, deployState, ignoreValidationErrors);
- return new ModelCreateResult(model, changeActions);
}
private VespaModel buildModel(DeployState deployState) {
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/NodesSpecification.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/NodesSpecification.java
index c83f6098a0f..8eab3b0082d 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/NodesSpecification.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/NodesSpecification.java
@@ -33,6 +33,7 @@ public class NodesSpecification {
private final Optional<String> flavor;
+ /** The identifier of the custom docker image layer to use (not supported yet) */
private final Optional<String> dockerImage;
private NodesSpecification(boolean dedicated, int count, int groups, boolean required,
diff --git a/config-model/src/test/java/com/yahoo/config/model/ApplicationDeployTest.java b/config-model/src/test/java/com/yahoo/config/model/ApplicationDeployTest.java
index b531fc515ed..9c07c7fc73e 100644
--- a/config-model/src/test/java/com/yahoo/config/model/ApplicationDeployTest.java
+++ b/config-model/src/test/java/com/yahoo/config/model/ApplicationDeployTest.java
@@ -2,6 +2,7 @@
package com.yahoo.config.model;
import com.google.common.io.Files;
+import com.yahoo.component.Version;
import com.yahoo.config.ConfigInstance;
import com.yahoo.config.application.api.ApplicationMetaData;
import com.yahoo.config.application.api.UnparsedConfigDefinition;
@@ -239,9 +240,9 @@ public class ApplicationDeployTest {
public FilesApplicationPackage createAppPkg(String appPkg, boolean validateXml) throws IOException {
final FilesApplicationPackage filesApplicationPackage = FilesApplicationPackage.fromFile(new File(appPkg));
if (validateXml) {
- ApplicationPackageXmlFilesValidator validator = ApplicationPackageXmlFilesValidator.createTestXmlValidator(new File(appPkg));
+ ApplicationPackageXmlFilesValidator validator = ApplicationPackageXmlFilesValidator.createTestXmlValidator(new File(appPkg), new Version(6));
validator.checkApplication();
- ApplicationPackageXmlFilesValidator.checkIncludedDirs(filesApplicationPackage);
+ ApplicationPackageXmlFilesValidator.checkIncludedDirs(filesApplicationPackage, new Version(6));
}
return filesApplicationPackage;
}
diff --git a/config-model/src/test/java/com/yahoo/config/model/MockModelContext.java b/config-model/src/test/java/com/yahoo/config/model/MockModelContext.java
index 84e8977a391..20a941eb690 100644
--- a/config-model/src/test/java/com/yahoo/config/model/MockModelContext.java
+++ b/config-model/src/test/java/com/yahoo/config/model/MockModelContext.java
@@ -1,6 +1,7 @@
// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.config.model;
+import com.yahoo.component.Version;
import com.yahoo.config.model.api.*;
import com.yahoo.config.application.api.ApplicationPackage;
import com.yahoo.config.model.application.provider.BaseDeployLogger;
@@ -23,6 +24,7 @@ import java.util.Set;
* @author hmusum
*/
public class MockModelContext implements ModelContext {
+
private final ApplicationPackage applicationPackage;
public MockModelContext() {
@@ -67,6 +69,12 @@ public class MockModelContext implements ModelContext {
public FileRegistry getFileRegistry() {
return new MockFileRegistry();
}
+
+ @Override
+ public Version modelVespaVersion() { return new Version(6); }
+
+ @Override
+ public Version wantedNodeVespaVersion() { return new Version(6); }
@Override
public Properties properties() {
diff --git a/config-model/src/test/java/com/yahoo/config/model/application/provider/SchemaValidatorTest.java b/config-model/src/test/java/com/yahoo/config/model/application/provider/SchemaValidatorTest.java
index ca4a2e70ee6..cbf7f4e9cd5 100644
--- a/config-model/src/test/java/com/yahoo/config/model/application/provider/SchemaValidatorTest.java
+++ b/config-model/src/test/java/com/yahoo/config/model/application/provider/SchemaValidatorTest.java
@@ -1,6 +1,7 @@
// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.config.model.application.provider;
+import com.yahoo.component.Version;
import org.junit.Test;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
@@ -64,6 +65,6 @@ public class SchemaValidatorTest {
}
private SchemaValidator createValidator() throws IOException {
- return SchemaValidator.createTestValidatorServices();
+ return SchemaValidator.createTestValidatorServices(new Version(6));
}
}
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/admin/ClusterControllerTestCase.java b/config-model/src/test/java/com/yahoo/vespa/model/admin/ClusterControllerTestCase.java
index 200e51ef924..d8116d01294 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/admin/ClusterControllerTestCase.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/admin/ClusterControllerTestCase.java
@@ -5,6 +5,7 @@ import com.google.common.base.Function;
import com.google.common.collect.Collections2;
import com.yahoo.cloud.config.ZookeeperServerConfig;
import com.yahoo.cloud.config.ZookeepersConfig;
+import com.yahoo.component.Version;
import com.yahoo.config.model.application.provider.SimpleApplicationValidator;
import com.yahoo.config.model.test.TestDriver;
import com.yahoo.config.model.test.TestRoot;
@@ -434,7 +435,7 @@ public class ClusterControllerTestCase extends DomBuilderTest {
.withServices(servicesXml)
.withSearchDefinitions(sds)
.build());
- SimpleApplicationValidator.checkServices(new StringReader(servicesXml));
+ SimpleApplicationValidator.checkServices(new StringReader(servicesXml), new Version(6));
return model;
}
}
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/test/utils/VespaModelCreatorWithFilePkg.java b/config-model/src/test/java/com/yahoo/vespa/model/test/utils/VespaModelCreatorWithFilePkg.java
index 14216733d2a..77825b3f370 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/test/utils/VespaModelCreatorWithFilePkg.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/test/utils/VespaModelCreatorWithFilePkg.java
@@ -1,6 +1,7 @@
// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.model.test.utils;
+import com.yahoo.component.Version;
import com.yahoo.config.model.ConfigModelRegistry;
import com.yahoo.config.model.NullConfigModelRegistry;
import com.yahoo.config.model.application.provider.*;
@@ -44,8 +45,8 @@ public class VespaModelCreatorWithFilePkg {
}
public void validate() throws IOException {
- ApplicationPackageXmlFilesValidator.createTestXmlValidator(applicationPkg.getAppDir()).checkApplication();
- ApplicationPackageXmlFilesValidator.checkIncludedDirs(applicationPkg);
+ ApplicationPackageXmlFilesValidator.createTestXmlValidator(applicationPkg.getAppDir(), new Version(6)).checkApplication();
+ ApplicationPackageXmlFilesValidator.checkIncludedDirs(applicationPkg, new Version(6));
}
public VespaModel create(boolean validateApplicationWithSchema) {
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/test/utils/VespaModelCreatorWithMockPkg.java b/config-model/src/test/java/com/yahoo/vespa/model/test/utils/VespaModelCreatorWithMockPkg.java
index 2f83d3bc394..6d5471f649e 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/test/utils/VespaModelCreatorWithMockPkg.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/test/utils/VespaModelCreatorWithMockPkg.java
@@ -1,6 +1,7 @@
// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.model.test.utils;
+import com.yahoo.component.Version;
import com.yahoo.config.application.api.ApplicationPackage;
import com.yahoo.config.model.ConfigModelRegistry;
import com.yahoo.config.model.NullConfigModelRegistry;
@@ -53,15 +54,16 @@ public class VespaModelCreatorWithMockPkg {
try {
this.deployState = deployState;
VespaModel model = new VespaModel(configModelRegistry, deployState);
+ Version vespaVersion = new Version(6);
if (validate) {
try {
if (appPkg.getHosts() != null) {
- SchemaValidator.createTestValidatorHosts().validate(appPkg.getHosts());
+ SchemaValidator.createTestValidatorHosts(vespaVersion).validate(appPkg.getHosts());
}
if (appPkg.getDeployment().isPresent()) {
- SchemaValidator.createTestValidatorDeployment().validate(appPkg.getDeployment().get());
+ SchemaValidator.createTestValidatorDeployment(vespaVersion).validate(appPkg.getDeployment().get());
}
- SchemaValidator.createTestValidatorServices().validate(appPkg.getServices());
+ SchemaValidator.createTestValidatorServices(vespaVersion).validate(appPkg.getServices());
} catch (Exception e) {
System.err.println(e.getClass());
throw e instanceof RuntimeException ? (RuntimeException) e : new RuntimeException(e);