aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--config-model-api/abi-spec.json3
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/application/api/ValidationId.java3
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/model/api/ConfigChangeAction.java1
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/model/api/ConfigChangeRefeedAction.java7
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/model/api/ConfigChangeReindexAction.java7
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/application/validation/Validation.java15
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/IndexedSearchClusterChangeValidator.java5
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/IndexingModeChangeValidator.java2
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/VespaRefeedAction.java24
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/VespaReindexAction.java23
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/search/DocumentTypeChangeValidator.java3
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/search/IndexingScriptChangeValidator.java2
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/ConfigChangeTestUtils.java21
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/IndexedSearchClusterChangeValidatorTest.java3
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/StreamingSearchClusterChangeValidatorTest.java3
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/search/DocumentDatabaseChangeValidatorTest.java7
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/search/DocumentTypeChangeValidatorTest.java25
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/search/IndexingScriptChangeValidatorTest.java3
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/configchange/ConfigChangeActionsBuilder.java8
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/configchange/ConfigChangeActionsSlimeConverterTest.java6
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/configchange/MockRefeedAction.java9
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/configchange/RefeedActionsFormatterTest.java10
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/configchange/RefeedActionsTest.java17
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/configchange/ReindexActionsFormatterTest.java10
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/configchange/Utils.java6
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/deploy/HostedDeployTest.java5
26 files changed, 132 insertions, 96 deletions
diff --git a/config-model-api/abi-spec.json b/config-model-api/abi-spec.json
index 9df68821454..fad69359da0 100644
--- a/config-model-api/abi-spec.json
+++ b/config-model-api/abi-spec.json
@@ -529,15 +529,14 @@
"public static final enum com.yahoo.config.application.api.ValidationId indexModeChange",
"public static final enum com.yahoo.config.application.api.ValidationId fieldTypeChange",
"public static final enum com.yahoo.config.application.api.ValidationId clusterSizeReduction",
+ "public static final enum com.yahoo.config.application.api.ValidationId tensorTypeChange",
"public static final enum com.yahoo.config.application.api.ValidationId resourcesReduction",
"public static final enum com.yahoo.config.application.api.ValidationId contentTypeRemoval",
"public static final enum com.yahoo.config.application.api.ValidationId contentClusterRemoval",
"public static final enum com.yahoo.config.application.api.ValidationId deploymentRemoval",
- "public static final enum com.yahoo.config.application.api.ValidationId skipAutomaticTenantUpgradeTests",
"public static final enum com.yahoo.config.application.api.ValidationId globalDocumentChange",
"public static final enum com.yahoo.config.application.api.ValidationId configModelVersionMismatch",
"public static final enum com.yahoo.config.application.api.ValidationId skipOldConfigModels",
- "public static final enum com.yahoo.config.application.api.ValidationId forceAutomaticTenantUpgradeTests",
"public static final enum com.yahoo.config.application.api.ValidationId accessControl",
"public static final enum com.yahoo.config.application.api.ValidationId globalEndpointChange"
]
diff --git a/config-model-api/src/main/java/com/yahoo/config/application/api/ValidationId.java b/config-model-api/src/main/java/com/yahoo/config/application/api/ValidationId.java
index c0bae137b0d..4c76d42a17e 100644
--- a/config-model-api/src/main/java/com/yahoo/config/application/api/ValidationId.java
+++ b/config-model-api/src/main/java/com/yahoo/config/application/api/ValidationId.java
@@ -14,15 +14,14 @@ public enum ValidationId {
indexModeChange("indexing-mode-change"), // Changing the index mode (streaming, indexed, store-only) of documents
fieldTypeChange("field-type-change"), // Field type changes
clusterSizeReduction("cluster-size-reduction"), // Large reductions in cluster size
+ tensorTypeChange("tensor-type-change"), // Tensor type change
resourcesReduction("resources-reduction"), // Large reductions in node resources
contentTypeRemoval("content-type-removal"), // Removal of a data type (causes deletion of all data)
contentClusterRemoval("content-cluster-removal"), // Removal (or id change) of content clusters
deploymentRemoval("deployment-removal"), // Removal of production zones from deployment.xml
- skipAutomaticTenantUpgradeTests("skip-automatic-tenant-upgrade-test"), // Skip platform supplied staging tests
globalDocumentChange("global-document-change"), // Changing global attribute for document types in content clusters
configModelVersionMismatch("config-model-version-mismatch"), // Internal use
skipOldConfigModels("skip-old-config-models"), // Internal use
- forceAutomaticTenantUpgradeTests("force-automatic-tenant-upgrade-test"), // Internal use
accessControl("access-control"), // Internal use, used in zones where there should be no access-control
globalEndpointChange("global-endpoint-change"); // Changing global endpoints
diff --git a/config-model-api/src/main/java/com/yahoo/config/model/api/ConfigChangeAction.java b/config-model-api/src/main/java/com/yahoo/config/model/api/ConfigChangeAction.java
index 1248560c931..aa497c47d2f 100644
--- a/config-model-api/src/main/java/com/yahoo/config/model/api/ConfigChangeAction.java
+++ b/config-model-api/src/main/java/com/yahoo/config/model/api/ConfigChangeAction.java
@@ -1,6 +1,7 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.config.model.api;
+import com.yahoo.config.application.api.ValidationId;
import com.yahoo.config.provision.ClusterSpec;
import java.util.List;
diff --git a/config-model-api/src/main/java/com/yahoo/config/model/api/ConfigChangeRefeedAction.java b/config-model-api/src/main/java/com/yahoo/config/model/api/ConfigChangeRefeedAction.java
index c5a7bd030e2..470031ba499 100644
--- a/config-model-api/src/main/java/com/yahoo/config/model/api/ConfigChangeRefeedAction.java
+++ b/config-model-api/src/main/java/com/yahoo/config/model/api/ConfigChangeRefeedAction.java
@@ -1,6 +1,8 @@
// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.config.model.api;
+import com.yahoo.config.application.api.ValidationId;
+
/**
* Represents an action to re-feed a document type in order to handle a config change.
*
@@ -11,8 +13,11 @@ public interface ConfigChangeRefeedAction extends ConfigChangeAction {
@Override
default Type getType() { return Type.REFEED; }
+ /** Returns the validation ID used to allow deployment when this action is required. */
+ ValidationId validationId();
+
/** Returns the name identifying this kind of change, used to identify names which should be allowed */
- String name();
+ default String name() { return validationId().value(); }
/** Returns the name of the document type that one must re-feed to handle this config change */
String getDocumentType();
diff --git a/config-model-api/src/main/java/com/yahoo/config/model/api/ConfigChangeReindexAction.java b/config-model-api/src/main/java/com/yahoo/config/model/api/ConfigChangeReindexAction.java
index 085638e31ff..9820890672b 100644
--- a/config-model-api/src/main/java/com/yahoo/config/model/api/ConfigChangeReindexAction.java
+++ b/config-model-api/src/main/java/com/yahoo/config/model/api/ConfigChangeReindexAction.java
@@ -1,6 +1,8 @@
// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.config.model.api;
+import com.yahoo.config.application.api.ValidationId;
+
/**
* Represents an action to re-index a document type in order to handle a config change.
*
@@ -10,8 +12,11 @@ public interface ConfigChangeReindexAction extends ConfigChangeAction {
@Override default Type getType() { return Type.REINDEX; }
+ /** Returns the validation ID used to allow deployment when this action is required. */
+ ValidationId validationId();
+
/** @return name identifying this kind of change, used to identify names which should be allowed */
- String name();
+ default String name() { return validationId().value(); }
/** @return name of the document type that must be re-indexed */
String getDocumentType();
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 d300e31c3dc..5dfaae73ef6 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
@@ -2,8 +2,11 @@
package com.yahoo.vespa.model.application.validation;
import com.yahoo.config.application.api.DeployLogger;
+import com.yahoo.config.application.api.ValidationId;
import com.yahoo.config.application.api.ValidationOverrides;
import com.yahoo.config.model.api.ConfigChangeAction;
+import com.yahoo.config.model.api.ConfigChangeRefeedAction;
+import com.yahoo.config.model.api.ConfigChangeReindexAction;
import com.yahoo.config.model.api.Model;
import com.yahoo.config.model.api.ValidationParameters;
import com.yahoo.config.model.deploy.DeployState;
@@ -100,8 +103,16 @@ public class Validation {
new NodeResourceChangeValidator()
};
return Arrays.stream(validators)
- .flatMap(v -> v.validate(currentModel, nextModel, overrides, now).stream())
- .collect(toList());
+ .flatMap(v -> v.validate(currentModel, nextModel, overrides, now).stream())
+ .collect(toList());
+ }
+
+ private static void throwIfDisallowedAction(ConfigChangeAction action, ValidationOverrides overrides, Instant now) {
+ if (action instanceof ConfigChangeRefeedAction)
+ overrides.invalid(((ConfigChangeRefeedAction) action).validationId(), action.getMessage(), now);
+
+ if (action instanceof ConfigChangeReindexAction)
+ overrides.invalid(((ConfigChangeReindexAction) action).validationId(), action.getMessage(), now);
}
private static void validateFirstTimeDeployment(VespaModel model, DeployState deployState) {
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/IndexedSearchClusterChangeValidator.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/IndexedSearchClusterChangeValidator.java
index b321d5f3fd7..58cea8c23e5 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/IndexedSearchClusterChangeValidator.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/IndexedSearchClusterChangeValidator.java
@@ -13,7 +13,10 @@ import com.yahoo.vespa.model.search.DocumentDatabase;
import com.yahoo.vespa.model.search.IndexedSearchCluster;
import java.time.Instant;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
import java.util.stream.Collectors;
/**
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/IndexingModeChangeValidator.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/IndexingModeChangeValidator.java
index e3f16baf95a..9babc6846e0 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/IndexingModeChangeValidator.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/IndexingModeChangeValidator.java
@@ -78,7 +78,7 @@ public class IndexingModeChangeValidator implements ChangeValidator {
.collect(Collectors.toList());
actions.add(VespaReindexAction.of(
nextCluster.id(),
- ValidationId.indexModeChange.value(),
+ ValidationId.indexModeChange,
overrides,
String.format(
"Document type '%s' in cluster '%s' changed indexing mode from '%s' to '%s'",
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/VespaRefeedAction.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/VespaRefeedAction.java
index 19c63431c03..d4392d5d149 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/VespaRefeedAction.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/VespaRefeedAction.java
@@ -1,6 +1,7 @@
// Copyright Verizon Media. 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.model.api.ConfigChangeRefeedAction;
import com.yahoo.config.model.api.ServiceInfo;
import com.yahoo.config.application.api.ValidationOverrides;
@@ -22,37 +23,36 @@ public class VespaRefeedAction extends VespaConfigChangeAction implements Config
* the validation ids belong to the Vespa model while these names are exposed to the config server,
* which is model version independent.
*/
- private final String name;
-
+ private final ValidationId validationId;
private final String documentType;
private final boolean allowed;
- private VespaRefeedAction(ClusterSpec.Id id, String name, String message, List<ServiceInfo> services, String documentType, boolean allowed) {
+ private VespaRefeedAction(ClusterSpec.Id id, ValidationId validationId, String message, List<ServiceInfo> services, String documentType, boolean allowed) {
super(id, message, services);
- this.name = name;
+ this.validationId = validationId;
this.documentType = documentType;
this.allowed = allowed;
}
/** Creates a refeed action with some missing information */
// TODO: We should require document type or model its absence properly
- public static VespaRefeedAction of(ClusterSpec.Id id, String name, ValidationOverrides overrides, String message, Instant now) {
- return new VespaRefeedAction(id, name, message, List.of(), "", overrides.allows(name, now));
+ public static VespaRefeedAction of(ClusterSpec.Id id, ValidationId validationId, ValidationOverrides overrides, String message, Instant now) {
+ return new VespaRefeedAction(id, validationId, message, List.of(), "", overrides.allows(validationId, now));
}
/** Creates a refeed action */
- public static VespaRefeedAction of(ClusterSpec.Id id, String name, ValidationOverrides overrides, String message,
+ public static VespaRefeedAction of(ClusterSpec.Id id, ValidationId validationId, ValidationOverrides overrides, String message,
List<ServiceInfo> services, String documentType, Instant now) {
- return new VespaRefeedAction(id, name, message, services, documentType, overrides.allows(name, now));
+ return new VespaRefeedAction(id, validationId, message, services, documentType, overrides.allows(validationId, now));
}
@Override
public VespaConfigChangeAction modifyAction(String newMessage, List<ServiceInfo> newServices, String documentType) {
- return new VespaRefeedAction(clusterId(), name, newMessage, newServices, documentType, allowed);
+ return new VespaRefeedAction(clusterId(), validationId, newMessage, newServices, documentType, allowed);
}
@Override
- public String name() { return name; }
+ public ValidationId validationId() { return validationId; }
@Override
public String getDocumentType() { return documentType; }
@@ -76,14 +76,14 @@ public class VespaRefeedAction extends VespaConfigChangeAction implements Config
if ( ! (o instanceof VespaRefeedAction)) return false;
VespaRefeedAction other = (VespaRefeedAction)o;
if ( ! this.documentType.equals(other.documentType)) return false;
- if ( ! this.name.equals(other.name)) return false;
+ if ( ! this.validationId.equals(other.validationId)) return false;
if ( ! this.allowed == other.allowed) return false;
return true;
}
@Override
public int hashCode() {
- return 31 * super.hashCode() + 11 * name.hashCode() + documentType.hashCode();
+ return 31 * super.hashCode() + 11 * validationId.hashCode() + documentType.hashCode();
}
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/VespaReindexAction.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/VespaReindexAction.java
index f10802afc31..4c09175a9ca 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/VespaReindexAction.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/VespaReindexAction.java
@@ -1,6 +1,7 @@
// Copyright Verizon Media. 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.ConfigChangeReindexAction;
import com.yahoo.config.model.api.ServiceInfo;
@@ -22,34 +23,34 @@ public class VespaReindexAction extends VespaConfigChangeAction implements Confi
* the validation ids belong to the Vespa model while these names are exposed to the config server,
* which is model version independent.
*/
- private final String name;
+ private final ValidationId validationId;
private final String documentType;
private final boolean allowed;
- private VespaReindexAction(ClusterSpec.Id id, String name, String message, List<ServiceInfo> services, String documentType, boolean allowed) {
+ private VespaReindexAction(ClusterSpec.Id id, ValidationId validationId, String message, List<ServiceInfo> services, String documentType, boolean allowed) {
super(id, message, services);
- this.name = name;
+ this.validationId = validationId;
this.documentType = documentType;
this.allowed = allowed;
}
public static VespaReindexAction of(
- ClusterSpec.Id id, String name, ValidationOverrides overrides, String message, Instant now) {
- return new VespaReindexAction(id, name, message, List.of(), /*documentType*/null, overrides.allows(name, now));
+ ClusterSpec.Id id, ValidationId validationId, ValidationOverrides overrides, String message, Instant now) {
+ return new VespaReindexAction(id, validationId, message, List.of(), /*documentType*/null, overrides.allows(validationId, now));
}
public static VespaReindexAction of(
- ClusterSpec.Id id, String name, ValidationOverrides overrides, String message,
+ ClusterSpec.Id id, ValidationId validationId, ValidationOverrides overrides, String message,
List<ServiceInfo> services, String documentType, Instant now) {
- return new VespaReindexAction(id, name, message, services, documentType, overrides.allows(name, now));
+ return new VespaReindexAction(id, validationId, message, services, documentType, overrides.allows(validationId, now));
}
@Override
public VespaConfigChangeAction modifyAction(String newMessage, List<ServiceInfo> newServices, String documentType) {
- return new VespaReindexAction(clusterId(), name, newMessage, newServices, documentType, allowed);
+ return new VespaReindexAction(clusterId(), validationId, newMessage, newServices, documentType, allowed);
}
- @Override public String name() { return name; }
+ @Override public ValidationId validationId() { return validationId; }
@Override public String getDocumentType() { return documentType; }
@Override public boolean allowed() { return allowed; }
@Override public boolean ignoreForInternalRedeploy() { return false; }
@@ -62,9 +63,9 @@ public class VespaReindexAction extends VespaConfigChangeAction implements Confi
if (!super.equals(o)) return false;
VespaReindexAction that = (VespaReindexAction) o;
return allowed == that.allowed &&
- Objects.equals(name, that.name) &&
+ Objects.equals(validationId, that.validationId) &&
Objects.equals(documentType, that.documentType);
}
- @Override public int hashCode() { return Objects.hash(super.hashCode(), name, documentType, allowed); }
+ @Override public int hashCode() { return Objects.hash(super.hashCode(), validationId, documentType, allowed); }
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/search/DocumentTypeChangeValidator.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/search/DocumentTypeChangeValidator.java
index b66145a10c5..20eb608cec5 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/search/DocumentTypeChangeValidator.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/search/DocumentTypeChangeValidator.java
@@ -1,6 +1,7 @@
// 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.change.search;
+import com.yahoo.config.application.api.ValidationId;
import com.yahoo.config.provision.ClusterSpec;
import com.yahoo.document.StructDataType;
import com.yahoo.documentmodel.NewDocumentType;
@@ -141,7 +142,7 @@ public class DocumentTypeChangeValidator {
map(field -> createFieldChange(field, nextDocType)).
filter(fieldChange -> fieldChange.valid() && fieldChange.changedType()).
map(fieldChange -> VespaRefeedAction.of(id,
- "field-type-change",
+ ValidationId.fieldTypeChange,
overrides,
new ChangeMessageBuilder(fieldChange.fieldName()).
addChange("data type", fieldChange.currentTypeName(),
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/search/IndexingScriptChangeValidator.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/search/IndexingScriptChangeValidator.java
index 8f9b1a3ed77..ea1c1a1d09e 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/search/IndexingScriptChangeValidator.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/search/IndexingScriptChangeValidator.java
@@ -55,7 +55,7 @@ public class IndexingScriptChangeValidator {
ChangeMessageBuilder messageBuilder = new ChangeMessageBuilder(nextField.getName());
new IndexingScriptChangeMessageBuilder(currentSearch, currentField, nextSearch, nextField).populate(messageBuilder);
messageBuilder.addChange("indexing script", currentScript.toString(), nextScript.toString());
- return Optional.of(VespaReindexAction.of(id, ValidationId.indexingChange.value(), overrides, messageBuilder.build(), now));
+ return Optional.of(VespaReindexAction.of(id, ValidationId.indexingChange, overrides, messageBuilder.build(), now));
}
return Optional.empty();
}
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/ConfigChangeTestUtils.java b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/ConfigChangeTestUtils.java
index f3f9022f6f0..90f3f2383e4 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/ConfigChangeTestUtils.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/ConfigChangeTestUtils.java
@@ -1,6 +1,7 @@
// 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.change;
+import com.yahoo.config.application.api.ValidationId;
import com.yahoo.config.model.api.ConfigChangeAction;
import com.yahoo.config.model.api.ServiceInfo;
import com.yahoo.config.application.api.ValidationOverrides;
@@ -24,26 +25,26 @@ public class ConfigChangeTestUtils {
return new VespaRestartAction(id, message, services);
}
- public static VespaConfigChangeAction newRefeedAction(ClusterSpec.Id id, String name, String message) {
- return VespaRefeedAction.of(id, name, ValidationOverrides.empty, message, Instant.now());
+ public static VespaConfigChangeAction newRefeedAction(ClusterSpec.Id id, ValidationId validationId, String message) {
+ return VespaRefeedAction.of(id, validationId, ValidationOverrides.empty, message, Instant.now());
}
- public static VespaConfigChangeAction newRefeedAction(ClusterSpec.Id id, String name, ValidationOverrides overrides, String message, Instant now) {
- return VespaRefeedAction.of(id, name, overrides, message, now);
+ public static VespaConfigChangeAction newRefeedAction(ClusterSpec.Id id, ValidationId validationId, ValidationOverrides overrides, String message, Instant now) {
+ return VespaRefeedAction.of(id, validationId, overrides, message, now);
}
- public static VespaConfigChangeAction newRefeedAction(ClusterSpec.Id id, String name, ValidationOverrides overrides, String message,
+ public static VespaConfigChangeAction newRefeedAction(ClusterSpec.Id id, ValidationId validationId, ValidationOverrides overrides, String message,
List<ServiceInfo> services, String documentType, Instant now) {
- return VespaRefeedAction.of(id, name, overrides, message, services, documentType, now);
+ return VespaRefeedAction.of(id, validationId, overrides, message, services, documentType, now);
}
- public static VespaConfigChangeAction newReindexAction(ClusterSpec.Id id, String name, ValidationOverrides overrides, String message, Instant now) {
- return VespaReindexAction.of(id, name, overrides, message, now);
+ public static VespaConfigChangeAction newReindexAction(ClusterSpec.Id id, ValidationId validationId, ValidationOverrides overrides, String message, Instant now) {
+ return VespaReindexAction.of(id, validationId, overrides, message, now);
}
- public static VespaConfigChangeAction newReindexAction(ClusterSpec.Id id, String name, ValidationOverrides overrides, String message,
+ public static VespaConfigChangeAction newReindexAction(ClusterSpec.Id id, ValidationId validationId, ValidationOverrides overrides, String message,
List<ServiceInfo> services, String documentType, Instant now) {
- return VespaReindexAction.of(id, name, overrides, message, services, documentType, now);
+ return VespaReindexAction.of(id, validationId, overrides, message, services, documentType, now);
}
public static List<ConfigChangeAction> normalizeServicesInActions(List<ConfigChangeAction> result) {
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/IndexedSearchClusterChangeValidatorTest.java b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/IndexedSearchClusterChangeValidatorTest.java
index 8d365f24c7f..3c787f4c241 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/IndexedSearchClusterChangeValidatorTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/IndexedSearchClusterChangeValidatorTest.java
@@ -1,6 +1,7 @@
// 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.change;
+import com.yahoo.config.application.api.ValidationId;
import com.yahoo.config.model.api.ConfigChangeAction;
import com.yahoo.config.model.api.ServiceInfo;
import com.yahoo.config.provision.ClusterSpec;
@@ -146,7 +147,7 @@ public class IndexedSearchClusterChangeValidatorTest {
public void requireThatChangingFieldTypeIsDiscovered() {
Fixture f = Fixture.newOneDocFixture(STRING_FIELD, INT_FIELD);
f.assertValidation(List.of(newRefeedAction(ClusterSpec.Id.from("test"),
- "field-type-change",
+ ValidationId.fieldTypeChange,
ValidationOverrides.empty,
"Document type 'd1': " + FIELD_TYPE_CHANGE_MSG, FOO_SERVICE, "d1", Instant.now())));
}
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/StreamingSearchClusterChangeValidatorTest.java b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/StreamingSearchClusterChangeValidatorTest.java
index f5ef50ee3a4..ed9603e9f35 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/StreamingSearchClusterChangeValidatorTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/StreamingSearchClusterChangeValidatorTest.java
@@ -1,6 +1,7 @@
// 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.model.api.ConfigChangeAction;
import com.yahoo.config.model.api.ServiceInfo;
import com.yahoo.config.provision.ClusterSpec;
@@ -164,7 +165,7 @@ public class StreamingSearchClusterChangeValidatorTest {
private static VespaConfigChangeAction createFieldTypeChangeRefeedAction(String docType, List<ServiceInfo> service) {
return ConfigChangeTestUtils.newRefeedAction(ClusterSpec.Id.from("test"),
- "field-type-change",
+ ValidationId.fieldTypeChange,
ValidationOverrides.empty,
"Document type '" + docType + "': Field 'f1' changed: data type: 'string' -> 'int'",
service, docType, Instant.now());
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/search/DocumentDatabaseChangeValidatorTest.java b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/search/DocumentDatabaseChangeValidatorTest.java
index a4fbf474a7f..0efa0a3f4d0 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/search/DocumentDatabaseChangeValidatorTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/search/DocumentDatabaseChangeValidatorTest.java
@@ -1,6 +1,7 @@
// 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.change.search;
+import com.yahoo.config.application.api.ValidationId;
import com.yahoo.config.application.api.ValidationOverrides;
import com.yahoo.config.provision.ClusterSpec;
import com.yahoo.vespa.model.application.validation.change.VespaConfigChangeAction;
@@ -53,12 +54,12 @@ public class DocumentDatabaseChangeValidatorTest {
newRestartAction(ClusterSpec.Id.from("test"),
"Field 'f4.s1' changed: add attribute aspect"),
newReindexAction(ClusterSpec.Id.from("test"),
- "indexing-change",
- ValidationOverrides.empty,
+ ValidationId.indexingChange,
+ ValidationOverrides.empty,
"Field 'f2' changed: add index aspect, indexing script: '{ input f2 | summary f2; }' -> " +
"'{ input f2 | tokenize normalize stem:\"BEST\" | index f2 | summary f2; }'", Instant.now()),
newRefeedAction(ClusterSpec.Id.from("test"),
- "field-type-change",
+ ValidationId.fieldTypeChange,
ValidationOverrides.empty,
"Field 'f3' changed: data type: 'int' -> 'string'", Instant.now())));
}
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/search/DocumentTypeChangeValidatorTest.java b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/search/DocumentTypeChangeValidatorTest.java
index a074f961a53..91c5dddf655 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/search/DocumentTypeChangeValidatorTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/search/DocumentTypeChangeValidatorTest.java
@@ -1,6 +1,7 @@
// 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.change.search;
+import com.yahoo.config.application.api.ValidationId;
import com.yahoo.config.provision.ClusterSpec;
import com.yahoo.document.DocumentType;
import com.yahoo.document.Field;
@@ -66,7 +67,7 @@ public class DocumentTypeChangeValidatorTest {
Fixture f = new Fixture("field f1 type string { indexing: summary }",
"field f1 type int { indexing: summary }");
f.assertValidation(newRefeedAction(ClusterSpec.Id.from("test"),
- "field-type-change",
+ ValidationId.fieldTypeChange,
ValidationOverrides.empty,
"Field 'f1' changed: data type: 'string' -> 'int'",
Instant.now()));
@@ -77,7 +78,7 @@ public class DocumentTypeChangeValidatorTest {
Fixture f = new Fixture("field f1 type string { indexing: summary }",
"field f1 type array<string> { indexing: summary }");
f.assertValidation(newRefeedAction(ClusterSpec.Id.from("test"),
- "field-type-change",
+ ValidationId.fieldTypeChange,
ValidationOverrides.empty,
"Field 'f1' changed: data type: 'string' -> 'Array<string>'", Instant.now()));
}
@@ -95,7 +96,7 @@ public class DocumentTypeChangeValidatorTest {
Fixture f = new Fixture("field f1 type array<string> { indexing: summary }",
"field f1 type array<int> { indexing: summary }");
f.assertValidation(newRefeedAction(ClusterSpec.Id.from("test"),
- "field-type-change",
+ ValidationId.fieldTypeChange,
ValidationOverrides.empty,
"Field 'f1' changed: data type: 'Array<string>' -> 'Array<int>'", Instant.now()));
}
@@ -105,7 +106,7 @@ public class DocumentTypeChangeValidatorTest {
Fixture f = new Fixture("field f1 type array<string> { indexing: summary }",
"field f1 type weightedset<string> { indexing: summary }");
f.assertValidation(newRefeedAction(ClusterSpec.Id.from("test"),
- "field-type-change",
+ ValidationId.fieldTypeChange,
ValidationOverrides.empty,
"Field 'f1' changed: data type: 'Array<string>' -> 'WeightedSet<string>'", Instant.now()));
}
@@ -115,11 +116,11 @@ public class DocumentTypeChangeValidatorTest {
Fixture f = new Fixture("field f1 type string { indexing: summary } field f2 type int { indexing: summary }" ,
"field f2 type string { indexing: summary } field f1 type int { indexing: summary }");
f.assertValidation(Arrays.asList(newRefeedAction(ClusterSpec.Id.from("test"),
- "field-type-change",
+ ValidationId.fieldTypeChange,
ValidationOverrides.empty,
"Field 'f1' changed: data type: 'string' -> 'int'", Instant.now()),
newRefeedAction(ClusterSpec.Id.from("test"),
- "field-type-change",
+ ValidationId.fieldTypeChange,
ValidationOverrides.empty,
"Field 'f2' changed: data type: 'int' -> 'string'", Instant.now())));
}
@@ -157,7 +158,7 @@ public class DocumentTypeChangeValidatorTest {
Fixture f = new Fixture("struct s1 { field f1 type string {} } field f2 type s1 { indexing: summary }",
"struct s1 { field f1 type int {} } field f2 type s1 { indexing: summary }");
f.assertValidation(newRefeedAction(ClusterSpec.Id.from("test"),
- "field-type-change",
+ ValidationId.fieldTypeChange,
ValidationOverrides.empty,
"Field 'f2' changed: data type: 's1:{f1:string}' -> 's1:{f1:int}'", Instant.now()));
}
@@ -167,7 +168,7 @@ public class DocumentTypeChangeValidatorTest {
Fixture f = new Fixture("struct s1 { field f1 type array<string> {} } field f2 type s1 { indexing: summary }",
"struct s1 { field f1 type array<int> {} } field f2 type s1 { indexing: summary }");
f.assertValidation(newRefeedAction(ClusterSpec.Id.from("test"),
- "field-type-change",
+ ValidationId.fieldTypeChange,
ValidationOverrides.empty,
"Field 'f2' changed: data type: 's1:{f1:Array<string>}' -> 's1:{f1:Array<int>}'", Instant.now()));
}
@@ -177,7 +178,7 @@ public class DocumentTypeChangeValidatorTest {
Fixture f = new Fixture("struct s1 { field f1 type string {} } struct s2 { field f2 type s1 {} } field f3 type s2 { indexing: summary }",
"struct s1 { field f1 type int {} } struct s2 { field f2 type s1 {} } field f3 type s2 { indexing: summary }");
f.assertValidation(newRefeedAction(ClusterSpec.Id.from("test"),
- "field-type-change",
+ ValidationId.fieldTypeChange,
ValidationOverrides.empty,
"Field 'f3' changed: data type: 's2:{s1:{f1:string}}' -> 's2:{s1:{f1:int}}'", Instant.now()));
}
@@ -187,7 +188,7 @@ public class DocumentTypeChangeValidatorTest {
Fixture f = new Fixture("struct s1 { field f1 type string {} field f2 type int {} } field f3 type s1 { indexing: summary }",
"struct s1 { field f1 type int {} field f2 type string {} } field f3 type s1 { indexing: summary }");
f.assertValidation(newRefeedAction(ClusterSpec.Id.from("test"),
- "field-type-change",
+ ValidationId.fieldTypeChange,
ValidationOverrides.empty,
"Field 'f3' changed: data type: 's1:{f1:string,f2:int}' -> 's1:{f1:int,f2:string}'", Instant.now()));
}
@@ -214,7 +215,7 @@ public class DocumentTypeChangeValidatorTest {
"field f1 type tensor(x[2]) { indexing: attribute }",
"field f1 type tensor(x[3]) { indexing: attribute }")
.assertValidation(newRefeedAction(ClusterSpec.Id.from("test"),
- "field-type-change",
+ ValidationId.fieldTypeChange,
ValidationOverrides.empty,
"Field 'f1' changed: data type: 'tensor(x[2])' -> 'tensor(x[3])'", Instant.now()));
@@ -222,7 +223,7 @@ public class DocumentTypeChangeValidatorTest {
"field f1 type tensor(x[5]) { indexing: attribute }",
"field f1 type tensor(x[3]) { indexing: attribute }")
.assertValidation(newRefeedAction(ClusterSpec.Id.from("test"),
- "field-type-change",
+ ValidationId.fieldTypeChange,
ValidationOverrides.empty,
"Field 'f1' changed: data type: 'tensor(x[5])' -> 'tensor(x[3])'", Instant.now()));
}
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/search/IndexingScriptChangeValidatorTest.java b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/search/IndexingScriptChangeValidatorTest.java
index 9f418476a24..574558d9d12 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/search/IndexingScriptChangeValidatorTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/search/IndexingScriptChangeValidatorTest.java
@@ -1,6 +1,7 @@
// 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.change.search;
+import com.yahoo.config.application.api.ValidationId;
import com.yahoo.config.application.api.ValidationOverrides;
import com.yahoo.config.provision.ClusterSpec;
import com.yahoo.vespa.indexinglanguage.expressions.ScriptExpression;
@@ -56,7 +57,7 @@ public class IndexingScriptChangeValidatorTest {
private static VespaConfigChangeAction expectedReindexingAction(String field, String changedMsg, String fromScript, String toScript) {
return VespaReindexAction.of(ClusterSpec.Id.from("test"),
- "indexing-change",
+ ValidationId.indexingChange,
ValidationOverrides.empty,
"Field '" + field + "' changed: " +
(changedMsg.isEmpty() ? "" : changedMsg + ", ") +
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/configchange/ConfigChangeActionsBuilder.java b/configserver/src/test/java/com/yahoo/vespa/config/server/configchange/ConfigChangeActionsBuilder.java
index b5194432682..9724e92e34c 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/configchange/ConfigChangeActionsBuilder.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/configchange/ConfigChangeActionsBuilder.java
@@ -44,20 +44,20 @@ public class ConfigChangeActionsBuilder {
}
- ConfigChangeActionsBuilder refeed(String name, boolean allowed, String message, String documentType, String clusterName, String serviceName) {
- actions.add(new MockRefeedAction(name,
+ ConfigChangeActionsBuilder refeed(ValidationId validationId, boolean allowed, String message, String documentType, String clusterName, String serviceName) {
+ actions.add(new MockRefeedAction(validationId,
allowed,
message,
List.of(createService(clusterName, "myclustertype", "myservicetype", serviceName)), documentType));
return this;
}
- ConfigChangeActionsBuilder reindex(String name, boolean allowed, String message, String documentType, String clusterName, String serviceName) {
+ ConfigChangeActionsBuilder reindex(ValidationId validationId, boolean allowed, String message, String documentType, String clusterName, String serviceName) {
List<ServiceInfo> services = List.of(createService(clusterName, "myclustertype", "myservicetype", serviceName));
ValidationOverrides overrides = mock(ValidationOverrides.class);
when(overrides.allows((String) any(), any())).thenReturn(allowed);
when(overrides.allows((ValidationId) any(), any())).thenReturn(allowed);
- actions.add(VespaReindexAction.of(ClusterSpec.Id.from(clusterName), name, overrides, message, services, documentType, Instant.now()));
+ actions.add(VespaReindexAction.of(ClusterSpec.Id.from(clusterName), validationId, overrides, message, services, documentType, Instant.now()));
return this;
}
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/configchange/ConfigChangeActionsSlimeConverterTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/configchange/ConfigChangeActionsSlimeConverterTest.java
index d145a796725..33e60a4ce39 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/configchange/ConfigChangeActionsSlimeConverterTest.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/configchange/ConfigChangeActionsSlimeConverterTest.java
@@ -97,7 +97,7 @@ public class ConfigChangeActionsSlimeConverterTest {
" ],\n" +
" \"refeed\": [\n" +
" {\n" +
- " \"name\": \"change-id\",\n" +
+ " \"name\": \"field-type-change\",\n" +
" \"allowed\": true,\n" +
" \"documentType\": \"music\",\n" +
" \"clusterName\": \"foo\",\n" +
@@ -114,7 +114,7 @@ public class ConfigChangeActionsSlimeConverterTest {
" ]\n" +
" },\n" +
" {\n" +
- " \"name\": \"other-change-id\",\n" +
+ " \"name\": \"indexing-change\",\n" +
" \"allowed\": false,\n" +
" \"documentType\": \"book\",\n" +
" \"clusterName\": \"foo\",\n" +
@@ -151,7 +151,7 @@ public class ConfigChangeActionsSlimeConverterTest {
" ],\n" +
" \"reindex\": [\n" +
" {\n" +
- " \"name\": \"change-id\",\n" +
+ " \"name\": \"field-type-change\",\n" +
" \"allowed\": true,\n" +
" \"documentType\": \"music\",\n" +
" \"clusterName\": \"foo\",\n" +
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/configchange/MockRefeedAction.java b/configserver/src/test/java/com/yahoo/vespa/config/server/configchange/MockRefeedAction.java
index 11f2a46994c..c3cb88d2807 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/configchange/MockRefeedAction.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/configchange/MockRefeedAction.java
@@ -1,6 +1,7 @@
// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.config.server.configchange;
+import com.yahoo.config.application.api.ValidationId;
import com.yahoo.config.model.api.ConfigChangeRefeedAction;
import com.yahoo.config.model.api.ServiceInfo;
@@ -11,19 +12,19 @@ import java.util.List;
*/
public class MockRefeedAction extends MockConfigChangeAction implements ConfigChangeRefeedAction {
- private final String name;
+ private final ValidationId validationId;
private final boolean allowed;
private final String documentType;
- public MockRefeedAction(String name, boolean allowed, String message, List<ServiceInfo> services, String documentType) {
+ public MockRefeedAction(ValidationId validationId, boolean allowed, String message, List<ServiceInfo> services, String documentType) {
super(message, services);
- this.name = name;
+ this.validationId = validationId;
this.allowed = allowed;
this.documentType = documentType;
}
@Override
- public String name() { return name; }
+ public ValidationId validationId() { return validationId; }
@Override
public boolean allowed() { return allowed; }
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/configchange/RefeedActionsFormatterTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/configchange/RefeedActionsFormatterTest.java
index 48d6833129e..246d4b88163 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/configchange/RefeedActionsFormatterTest.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/configchange/RefeedActionsFormatterTest.java
@@ -17,7 +17,7 @@ public class RefeedActionsFormatterTest {
RefeedActions actions = new ConfigChangeActionsBuilder().
refeed(CHANGE_ID, false, CHANGE_MSG, DOC_TYPE, CLUSTER, SERVICE_NAME).
build().getRefeedActions();
- assertEquals("change-id: Consider removing data and re-feed document type 'music' in cluster 'foo' because:\n" +
+ assertEquals("field-type-change: Consider removing data and re-feed document type 'music' in cluster 'foo' because:\n" +
" 1) change\n",
new RefeedActionsFormatter(actions).format());
}
@@ -31,14 +31,14 @@ public class RefeedActionsFormatterTest {
refeed(CHANGE_ID_2, true, CHANGE_MSG_2, DOC_TYPE, CLUSTER, SERVICE_NAME).
refeed(CHANGE_ID, false, CHANGE_MSG_2, DOC_TYPE_2, CLUSTER, SERVICE_NAME).
build().getRefeedActions();
- assertEquals("change-id: Consider removing data and re-feed document type 'book' in cluster 'foo' because:\n" +
+ assertEquals("field-type-change: Consider removing data and re-feed document type 'book' in cluster 'foo' because:\n" +
" 1) other change\n" +
- "change-id: Consider removing data and re-feed document type 'music' in cluster 'foo' because:\n" +
+ "field-type-change: Consider removing data and re-feed document type 'music' in cluster 'foo' because:\n" +
" 1) change\n" +
" 2) other change\n" +
- "other-change-id: Consider removing data and re-feed document type 'music' in cluster 'foo' because:\n" +
+ "indexing-change: Consider removing data and re-feed document type 'music' in cluster 'foo' because:\n" +
" 1) other change\n" +
- "(allowed) other-change-id: Consider removing data and re-feed document type 'music' in cluster 'foo' because:\n" +
+ "(allowed) indexing-change: Consider removing data and re-feed document type 'music' in cluster 'foo' because:\n" +
" 1) other change\n",
new RefeedActionsFormatter(actions).format());
}
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/configchange/RefeedActionsTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/configchange/RefeedActionsTest.java
index 7235b8905c5..befb2c06106 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/configchange/RefeedActionsTest.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/configchange/RefeedActionsTest.java
@@ -1,6 +1,7 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.config.server.configchange;
+import com.yahoo.config.application.api.ValidationId;
import com.yahoo.config.model.api.ServiceInfo;
import org.junit.Test;
@@ -32,8 +33,8 @@ public class RefeedActionsTest {
@Test
public void action_with_multiple_reasons() {
List<RefeedActions.Entry> entries = new ConfigChangeActionsBuilder().
- refeed("change-id", false, CHANGE_MSG, DOC_TYPE, CLUSTER, SERVICE_NAME).
- refeed("change-id", false, CHANGE_MSG_2, DOC_TYPE, CLUSTER, SERVICE_NAME).
+ refeed(ValidationId.indexModeChange, false, CHANGE_MSG, DOC_TYPE, CLUSTER, SERVICE_NAME).
+ refeed(ValidationId.indexModeChange, false, CHANGE_MSG_2, DOC_TYPE, CLUSTER, SERVICE_NAME).
build().getRefeedActions().getEntries();
assertThat(entries.size(), is(1));
assertThat(toString(entries.get(0)), equalTo("music.foo:[baz][change,other change]"));
@@ -42,8 +43,8 @@ public class RefeedActionsTest {
@Test
public void actions_with_multiple_services() {
List<RefeedActions.Entry> entries = new ConfigChangeActionsBuilder().
- refeed("change-id", false, CHANGE_MSG, DOC_TYPE, CLUSTER, SERVICE_NAME).
- refeed("change-id", false, CHANGE_MSG, DOC_TYPE, CLUSTER, SERVICE_NAME_2).
+ refeed(ValidationId.indexModeChange, false, CHANGE_MSG, DOC_TYPE, CLUSTER, SERVICE_NAME).
+ refeed(ValidationId.indexModeChange, false, CHANGE_MSG, DOC_TYPE, CLUSTER, SERVICE_NAME_2).
build().getRefeedActions().getEntries();
assertThat(entries.size(), is(1));
assertThat(toString(entries.get(0)), equalTo("music.foo:[baz,qux][change]"));
@@ -52,8 +53,8 @@ public class RefeedActionsTest {
@Test
public void actions_with_multiple_document_types() {
List<RefeedActions.Entry> entries = new ConfigChangeActionsBuilder().
- refeed("change-id", false, CHANGE_MSG, DOC_TYPE, CLUSTER, SERVICE_NAME).
- refeed("change-id", false, CHANGE_MSG, DOC_TYPE_2, CLUSTER, SERVICE_NAME).
+ refeed(ValidationId.indexModeChange, false, CHANGE_MSG, DOC_TYPE, CLUSTER, SERVICE_NAME).
+ refeed(ValidationId.indexModeChange, false, CHANGE_MSG, DOC_TYPE_2, CLUSTER, SERVICE_NAME).
build().getRefeedActions().getEntries();
assertThat(entries.size(), is(2));
assertThat(toString(entries.get(0)), equalTo("book.foo:[baz][change]"));
@@ -63,8 +64,8 @@ public class RefeedActionsTest {
@Test
public void actions_with_multiple_clusters() {
List<RefeedActions.Entry> entries = new ConfigChangeActionsBuilder().
- refeed("change-id", false, CHANGE_MSG, DOC_TYPE, CLUSTER, SERVICE_NAME).
- refeed("change-id", false, CHANGE_MSG, DOC_TYPE, CLUSTER_2, SERVICE_NAME).
+ refeed(ValidationId.indexModeChange, false, CHANGE_MSG, DOC_TYPE, CLUSTER, SERVICE_NAME).
+ refeed(ValidationId.indexModeChange, false, CHANGE_MSG, DOC_TYPE, CLUSTER_2, SERVICE_NAME).
build().getRefeedActions().getEntries();
assertThat(entries.size(), is(2));
assertThat(toString(entries.get(0)), equalTo("music.bar:[baz][change]"));
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/configchange/ReindexActionsFormatterTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/configchange/ReindexActionsFormatterTest.java
index e9dd3f3bbfc..6650b9c523d 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/configchange/ReindexActionsFormatterTest.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/configchange/ReindexActionsFormatterTest.java
@@ -23,7 +23,7 @@ public class ReindexActionsFormatterTest {
ReindexActions actions = new ConfigChangeActionsBuilder().
reindex(CHANGE_ID, false, CHANGE_MSG, DOC_TYPE, CLUSTER, SERVICE_NAME).
build().getReindexActions();
- assertEquals("change-id: Consider re-indexing document type 'music' in cluster 'foo' because:\n" +
+ assertEquals("field-type-change: Consider re-indexing document type 'music' in cluster 'foo' because:\n" +
" 1) change\n",
new ReindexActionsFormatter(actions).format());
}
@@ -37,14 +37,14 @@ public class ReindexActionsFormatterTest {
reindex(CHANGE_ID_2, true, CHANGE_MSG_2, DOC_TYPE, CLUSTER, SERVICE_NAME).
reindex(CHANGE_ID, false, CHANGE_MSG_2, DOC_TYPE_2, CLUSTER, SERVICE_NAME).
build().getReindexActions();
- assertEquals("change-id: Consider re-indexing document type 'book' in cluster 'foo' because:\n" +
+ assertEquals("field-type-change: Consider re-indexing document type 'book' in cluster 'foo' because:\n" +
" 1) other change\n" +
- "change-id: Consider re-indexing document type 'music' in cluster 'foo' because:\n" +
+ "field-type-change: Consider re-indexing document type 'music' in cluster 'foo' because:\n" +
" 1) change\n" +
" 2) other change\n" +
- "other-change-id: Consider re-indexing document type 'music' in cluster 'foo' because:\n" +
+ "indexing-change: Consider re-indexing document type 'music' in cluster 'foo' because:\n" +
" 1) other change\n" +
- "(allowed) other-change-id: Consider re-indexing document type 'music' in cluster 'foo' because:\n" +
+ "(allowed) indexing-change: Consider re-indexing document type 'music' in cluster 'foo' because:\n" +
" 1) other change\n",
new ReindexActionsFormatter(actions).format());
}
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/configchange/Utils.java b/configserver/src/test/java/com/yahoo/vespa/config/server/configchange/Utils.java
index 8499c12f648..e02e1e2b143 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/configchange/Utils.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/configchange/Utils.java
@@ -1,14 +1,16 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.config.server.configchange;
+import com.yahoo.config.application.api.ValidationId;
+
/**
* @author geirst
* @since 5.44
*/
public class Utils {
- final static String CHANGE_ID = "change-id";
- final static String CHANGE_ID_2 = "other-change-id";
+ final static ValidationId CHANGE_ID = ValidationId.fieldTypeChange;
+ final static ValidationId CHANGE_ID_2 = ValidationId.indexingChange;
final static String CHANGE_MSG = "change";
final static String CHANGE_MSG_2 = "other change";
final static String DOC_TYPE = "music";
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/HostedDeployTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/HostedDeployTest.java
index 4d1b9341e7f..d7ff891d1d3 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/HostedDeployTest.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/HostedDeployTest.java
@@ -3,6 +3,7 @@ package com.yahoo.vespa.config.server.deploy;
import com.yahoo.cloud.config.ConfigserverConfig;
import com.yahoo.component.Version;
+import com.yahoo.config.application.api.ValidationId;
import com.yahoo.config.application.api.ValidationOverrides;
import com.yahoo.config.model.api.ConfigChangeAction;
import com.yahoo.config.model.api.ModelContext;
@@ -401,7 +402,7 @@ public class HostedDeployTest {
ManualClock clock = new ManualClock(Instant.EPOCH);
List<ModelFactory> modelFactories = List.of(
new ConfigChangeActionsModelFactory(Version.fromString("6.1.0"),
- VespaReindexAction.of(ClusterSpec.Id.from("test"), "indexing-mode-change", ValidationOverrides.empty,
+ VespaReindexAction.of(ClusterSpec.Id.from("test"), ValidationId.indexModeChange, ValidationOverrides.empty,
"reindex please", services, "music", clock.instant()),
new VespaRestartAction(ClusterSpec.Id.from("test"), "change", services)));
@@ -422,7 +423,7 @@ public class HostedDeployTest {
ManualClock clock = new ManualClock(Instant.EPOCH);
List<ModelFactory> modelFactories = List.of(
new ConfigChangeActionsModelFactory(Version.fromString("6.1.0"),
- VespaReindexAction.of(ClusterSpec.Id.from("test"), "indexing-mode-change", ValidationOverrides.all,
+ VespaReindexAction.of(ClusterSpec.Id.from("test"), ValidationId.indexModeChange, ValidationOverrides.all,
"reindex please", services, "music", clock.instant()),
new VespaRestartAction(ClusterSpec.Id.from("test"), "change", services)));