diff options
author | Jon Bratseth <bratseth@yahoo-inc.com> | 2017-04-07 16:49:04 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@yahoo-inc.com> | 2017-04-07 16:49:04 +0200 |
commit | 025167b28f847e56333db4922d7a7543fcad7a1a (patch) | |
tree | a2466cbccc5fcffa89eb23464a915c83b83ef051 /config-model/src | |
parent | b2f526a6b79965b9ff871d8cdfe283dccc1eefe8 (diff) |
Pass wanted node Vespa version around
Diffstat (limited to 'config-model/src')
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); |