diff options
Diffstat (limited to 'config-model/src')
7 files changed, 7 insertions, 117 deletions
diff --git a/config-model/src/main/java/com/yahoo/documentmodel/NewDocumentType.java b/config-model/src/main/java/com/yahoo/documentmodel/NewDocumentType.java index 06bb32213f9..a93cbe0c1ff 100644 --- a/config-model/src/main/java/com/yahoo/documentmodel/NewDocumentType.java +++ b/config-model/src/main/java/com/yahoo/documentmodel/NewDocumentType.java @@ -392,5 +392,4 @@ public final class NewDocumentType extends StructuredDataType implements DataTyp public Set<Name> getDocumentReferences() { return documentReferences; } - } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/Validation.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/Validation.java index 50e93789159..6407f581a62 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/Validation.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/Validation.java @@ -12,7 +12,6 @@ import com.yahoo.vespa.model.application.validation.change.ClusterSizeReductionV import com.yahoo.vespa.model.application.validation.change.ConfigValueChangeValidator; import com.yahoo.vespa.model.application.validation.change.ContainerRestartValidator; import com.yahoo.vespa.model.application.validation.change.ContentClusterRemovalValidator; -import com.yahoo.vespa.model.application.validation.change.ContentTypeRemovalValidator; import com.yahoo.vespa.model.application.validation.change.IndexedSearchClusterChangeValidator; import com.yahoo.vespa.model.application.validation.change.IndexingModeChangeValidator; import com.yahoo.vespa.model.application.validation.change.StartupCommandChangeValidator; @@ -76,7 +75,6 @@ public class Validation { new StreamingSearchClusterChangeValidator(), new ConfigValueChangeValidator(logger), new StartupCommandChangeValidator(), - new ContentTypeRemovalValidator(), new ContentClusterRemovalValidator(), new ClusterSizeReductionValidator(), new ContainerRestartValidator(), diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/ContentClusterRemovalValidator.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/ContentClusterRemovalValidator.java index a2275b17233..52253411419 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/ContentClusterRemovalValidator.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/ContentClusterRemovalValidator.java @@ -2,7 +2,6 @@ package com.yahoo.vespa.model.application.validation.change; import com.yahoo.config.model.api.ConfigChangeAction; -import com.yahoo.documentmodel.NewDocumentType; import com.yahoo.vespa.model.VespaModel; import com.yahoo.config.application.api.ValidationId; import com.yahoo.config.application.api.ValidationOverrides; @@ -27,7 +26,7 @@ public class ContentClusterRemovalValidator implements ChangeValidator { if (nextCluster == null) overrides.invalid(ValidationId.contentClusterRemoval, "Content cluster '" + currentClusterId + "' is removed. " + - "This will cause loss of all data in this cluster", + "This will cause loss of all data in this cluster", now); } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/ContentTypeRemovalValidator.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/ContentTypeRemovalValidator.java deleted file mode 100644 index a691c8bb5c4..00000000000 --- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/ContentTypeRemovalValidator.java +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.model.application.validation.change; - -import com.yahoo.config.application.api.ValidationId; -import com.yahoo.config.application.api.ValidationOverrides; -import com.yahoo.config.model.api.ConfigChangeAction; -import com.yahoo.documentmodel.NewDocumentType; -import com.yahoo.vespa.model.VespaModel; -import com.yahoo.vespa.model.content.cluster.ContentCluster; - -import java.time.Instant; -import java.util.Collections; -import java.util.List; - -/** - * Checks that this does not remove a data type in a cluster, as that causes deletion - * of all data of that type. - * - * @author bratseth - */ -public class ContentTypeRemovalValidator implements ChangeValidator { - - @Override - public List<ConfigChangeAction> validate(VespaModel current, VespaModel next, ValidationOverrides overrides, Instant now) { - for (ContentCluster currentCluster : current.getContentClusters().values()) { - ContentCluster nextCluster = next.getContentClusters().get(currentCluster.getSubId()); - if (nextCluster == null) continue; // validated elsewhere - - for (NewDocumentType type : currentCluster.getDocumentDefinitions().values()) { - if ( ! nextCluster.getDocumentDefinitions().containsKey(type.getName())) { - overrides.invalid(ValidationId.contentTypeRemoval, - "Type '" + type.getName() + "' is removed " + - " in content cluster '" + currentCluster.getName() + "'. " + - "This will cause loss of all data of this type", - now); - } - } - } - return Collections.emptyList(); - } - -} diff --git a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/ValidationTester.java b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/ValidationTester.java index 7082dec2c78..4ca100e5c52 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/ValidationTester.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/ValidationTester.java @@ -1,7 +1,6 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.model.application.validation; -import com.google.common.collect.ImmutableList; import com.yahoo.collections.Pair; import com.yahoo.config.application.api.ApplicationPackage; import com.yahoo.config.model.api.ConfigChangeAction; @@ -11,8 +10,6 @@ import com.yahoo.config.model.provision.InMemoryProvisioner; import com.yahoo.config.model.test.MockApplicationPackage; import com.yahoo.vespa.model.VespaModel; import com.yahoo.vespa.model.test.utils.VespaModelCreatorWithMockPkg; -import static com.yahoo.config.model.test.MockApplicationPackage.MUSIC_SEARCHDEFINITION; -import static com.yahoo.config.model.test.MockApplicationPackage.BOOK_SEARCHDEFINITION; import java.time.Instant; import java.time.LocalDate; @@ -49,7 +46,7 @@ public class ValidationTester { Instant now = LocalDate.parse("2000-01-01", DateTimeFormatter.ISO_DATE).atStartOfDay().atZone(ZoneOffset.UTC).toInstant(); ApplicationPackage newApp = new MockApplicationPackage.Builder() .withServices(services) - .withSearchDefinitions(ImmutableList.of(MUSIC_SEARCHDEFINITION, BOOK_SEARCHDEFINITION)) + .withSearchDefinition(MockApplicationPackage.MUSIC_SEARCHDEFINITION) .withValidationOverrides(validationOverrides) .build(); VespaModelCreatorWithMockPkg newModelCreator = new VespaModelCreatorWithMockPkg(newApp); diff --git a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/ContentClusterRemovalValidatorTest.java b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/ContentClusterRemovalValidatorTest.java index 25ad6dbc620..d2c067ef9cb 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/ContentClusterRemovalValidatorTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/ContentClusterRemovalValidatorTest.java @@ -5,6 +5,9 @@ import com.yahoo.vespa.model.VespaModel; import com.yahoo.vespa.model.application.validation.ValidationTester; import com.yahoo.yolean.Exceptions; import org.junit.Test; +import org.xml.sax.SAXException; + +import java.io.IOException; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; @@ -15,7 +18,7 @@ import static org.junit.Assert.fail; public class ContentClusterRemovalValidatorTest { @Test - public void testContentRemovalValidation() { + public void testContentRemovalValidation() throws IOException, SAXException { ValidationTester tester = new ValidationTester(); VespaModel previous = tester.deploy(null, getServices("contentClusterId"), null).getFirst(); @@ -30,7 +33,7 @@ public class ContentClusterRemovalValidatorTest { } @Test - public void testOverridingContentRemovalValidation() { + public void testOverridingContentRemovalValidation() throws IOException, SAXException { ValidationTester tester = new ValidationTester(); VespaModel previous = tester.deploy(null, getServices("contentClusterId"), null).getFirst(); diff --git a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/ContentTypeRemovalValidatorTest.java b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/ContentTypeRemovalValidatorTest.java deleted file mode 100644 index a52c6d7c7a2..00000000000 --- a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/ContentTypeRemovalValidatorTest.java +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.model.application.validation.change; - -import com.yahoo.vespa.model.VespaModel; -import com.yahoo.vespa.model.application.validation.ValidationTester; -import com.yahoo.yolean.Exceptions; -import org.junit.Test; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.fail; - -/** - * Tests validation of removal of a document type. - * Uses the types "music" and "book" as those are supported by the ValidationTester. - * - * @author bratseth - */ -public class ContentTypeRemovalValidatorTest { - - @Test - public void testContentTypeRemovalValidation() { - ValidationTester tester = new ValidationTester(); - - VespaModel previous = tester.deploy(null, getServices("music"), null).getFirst(); - try { - tester.deploy(previous, getServices("book"), null); - fail("Expected exception due to removal of context type 'music"); - } - catch (IllegalArgumentException expected) { - assertEquals("content-type-removal: Type 'music' is removed in content cluster 'test'. " + - "This will cause loss of all data of this type", - Exceptions.toMessageString(expected)); - } - } - - @Test - public void testOverridingContentTypeRemovalValidation() { - ValidationTester tester = new ValidationTester(); - - VespaModel previous = tester.deploy(null, getServices("music"), null).getFirst(); - tester.deploy(previous, getServices("book"), removalOverride); // Allowed due to override - } - - private static String getServices(String documentType) { - return "<services version='1.0'>" + - " <content id='test' version='1.0'>" + - " <redundancy>1</redundancy>" + - " <engine>" + - " <proton/>" + - " </engine>" + - " <documents>" + - " <document type='" + documentType + "' mode='index'/>" + - " </documents>" + - " <nodes count='1'/>" + - " </content>" + - "</services>"; - } - - private static final String removalOverride = - "<validation-overrides>\n" + - " <allow until='2000-01-03'>content-type-removal</allow>\n" + - "</validation-overrides>\n"; - -} |