summaryrefslogtreecommitdiffstats
path: root/configserver
diff options
context:
space:
mode:
Diffstat (limited to 'configserver')
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java21
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/application/Application.java8
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/configchange/ConfigChangeActionsSlimeConverter.java2
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/configchange/RefeedActions.java22
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/configchange/RefeedActionsFormatter.java2
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/configchange/ReindexActions.java13
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/configchange/ReindexActionsFormatter.java2
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/SessionsMaintainer.java7
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/configchange/ConfigChangeActionsBuilder.java13
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/configchange/ConfigChangeActionsSlimeConverterTest.java15
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/configchange/MockRefeedAction.java17
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/configchange/RefeedActionsFormatterTest.java22
-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.java22
-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.java28
16 files changed, 94 insertions, 123 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java b/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java
index b356b99c50a..6cc05a0f69e 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java
@@ -326,12 +326,7 @@ public class ApplicationRepository implements com.yahoo.config.provision.Deploye
long sessionId = createSession(applicationId, prepareParams.getTimeoutBudget(), applicationPackage);
Deployment deployment = prepare(sessionId, prepareParams, logger);
- if (deployment.configChangeActions().getRefeedActions().getEntries().stream().anyMatch(entry -> ! entry.allowed()))
- logger.log(Level.WARNING, "Activation rejected because of disallowed re-feed actions");
- else if (deployment.configChangeActions().getReindexActions().getEntries().stream().anyMatch(entry -> ! entry.allowed()))
- logger.log(Level.WARNING, "Activation rejected because of disallowed re-index actions");
- else
- deployment.activate();
+ deployment.activate();
return new PrepareResult(sessionId, deployment.configChangeActions(), logger);
}
@@ -1014,21 +1009,19 @@ public class ApplicationRepository implements com.yahoo.config.provision.Deploye
RestartActions restartActions = actions.getRestartActions();
if ( ! restartActions.isEmpty()) {
logger.log(Level.WARNING, "Change(s) between active and new application that require restart:\n" +
- restartActions.format());
+ restartActions.format());
}
RefeedActions refeedActions = actions.getRefeedActions();
if ( ! refeedActions.isEmpty()) {
- boolean allAllowed = refeedActions.getEntries().stream().allMatch(RefeedActions.Entry::allowed);
- logger.log(allAllowed ? Level.INFO : Level.WARNING,
+ logger.log(Level.WARNING,
"Change(s) between active and new application that may require re-feed:\n" +
- refeedActions.format());
+ refeedActions.format());
}
ReindexActions reindexActions = actions.getReindexActions();
if ( ! reindexActions.isEmpty()) {
- boolean allAllowed = reindexActions.getEntries().stream().allMatch(ReindexActions.Entry::allowed);
- logger.log(allAllowed ? Level.INFO : Level.WARNING,
- "Change(s) between active and new application that may require re-index:\n" +
- reindexActions.format());
+ logger.log(Level.WARNING,
+ "Change(s) between active and new application that may require re-index:\n" +
+ reindexActions.format());
}
}
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/application/Application.java b/configserver/src/main/java/com/yahoo/vespa/config/server/application/Application.java
index 2e73a02c75b..8d001d5d5df 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/application/Application.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/application/Application.java
@@ -130,7 +130,13 @@ public class Application implements ModelResult {
if (logDebug()) {
debug("Resolving " + configKey + " with config definition " + def);
}
- ConfigPayload payload = model.getConfig(configKey, def);
+
+ ConfigPayload payload = null;
+ try {
+ payload = model.getConfig(configKey, def);
+ } catch (Exception e) {
+ throw new ConfigurationRuntimeException("Unable to get config for " + app, e);
+ }
if (payload == null) {
metricUpdater.incrementFailedRequests();
throw new ConfigurationRuntimeException("Unable to resolve config " + configKey);
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/configchange/ConfigChangeActionsSlimeConverter.java b/configserver/src/main/java/com/yahoo/vespa/config/server/configchange/ConfigChangeActionsSlimeConverter.java
index ec48b671a5b..1a0d109b6c9 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/configchange/ConfigChangeActionsSlimeConverter.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/configchange/ConfigChangeActionsSlimeConverter.java
@@ -42,7 +42,6 @@ public class ConfigChangeActionsSlimeConverter {
for (RefeedActions.Entry entry : actions.getRefeedActions().getEntries()) {
Cursor entryCursor = refeedCursor.addObject();
entryCursor.setString("name", entry.name());
- entryCursor.setBool("allowed", entry.allowed());
entryCursor.setString("documentType", entry.getDocumentType());
entryCursor.setString("clusterName", entry.getClusterName());
messagesToSlime(entryCursor, entry.getMessages());
@@ -55,7 +54,6 @@ public class ConfigChangeActionsSlimeConverter {
for (ReindexActions.Entry entry : actions.getReindexActions().getEntries()) {
Cursor entryCursor = refeedCursor.addObject();
entryCursor.setString("name", entry.name());
- entryCursor.setBool("allowed", entry.allowed());
entryCursor.setString("documentType", entry.getDocumentType());
entryCursor.setString("clusterName", entry.getClusterName());
messagesToSlime(entryCursor, entry.getMessages());
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/configchange/RefeedActions.java b/configserver/src/main/java/com/yahoo/vespa/config/server/configchange/RefeedActions.java
index c20b8527f2e..b2221cbcf6c 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/configchange/RefeedActions.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/configchange/RefeedActions.java
@@ -5,7 +5,13 @@ import com.yahoo.config.model.api.ConfigChangeAction;
import com.yahoo.config.model.api.ConfigChangeRefeedAction;
import com.yahoo.config.model.api.ServiceInfo;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeMap;
+import java.util.TreeSet;
/**
* Represents all actions to re-feed document types in order to handle config changes.
@@ -17,15 +23,13 @@ public class RefeedActions {
public static class Entry {
private final String name;
- private final boolean allowed;
private final String documentType;
private final String clusterName;
private final Set<ServiceInfo> services = new LinkedHashSet<>();
private final Set<String> messages = new TreeSet<>();
- private Entry(String name, boolean allowed, String documentType, String clusterName) {
+ private Entry(String name, String documentType, String clusterName) {
this.name = name;
- this.allowed = allowed;
this.documentType = documentType;
this.clusterName = clusterName;
}
@@ -42,8 +46,6 @@ public class RefeedActions {
public String name() { return name; }
- public boolean allowed() { return allowed; }
-
public String getDocumentType() { return documentType; }
public String getClusterName() { return clusterName; }
@@ -54,12 +56,12 @@ public class RefeedActions {
}
- private Entry addEntry(String name, boolean allowed, String documentType, ServiceInfo service) {
+ private Entry addEntry(String name, String documentType, ServiceInfo service) {
String clusterName = service.getProperty("clustername").orElse("");
- String entryId = name + "." + allowed + "." + clusterName + "." + documentType;
+ String entryId = name + "." + "." + clusterName + "." + documentType;
Entry entry = actions.get(entryId);
if (entry == null) {
- entry = new Entry(name, allowed, documentType, clusterName);
+ entry = new Entry(name, documentType, clusterName);
actions.put(entryId, entry);
}
return entry;
@@ -75,7 +77,7 @@ public class RefeedActions {
if (action.getType().equals(ConfigChangeAction.Type.REFEED)) {
ConfigChangeRefeedAction refeedAction = (ConfigChangeRefeedAction) action;
for (ServiceInfo service : refeedAction.getServices()) {
- addEntry(refeedAction.name(), refeedAction.allowed(), refeedAction.getDocumentType(), service).
+ addEntry(refeedAction.name(), refeedAction.getDocumentType(), service).
addService(service).
addMessage(action.getMessage());
}
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/configchange/RefeedActionsFormatter.java b/configserver/src/main/java/com/yahoo/vespa/config/server/configchange/RefeedActionsFormatter.java
index 425276cebd6..6e2e23ab6be 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/configchange/RefeedActionsFormatter.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/configchange/RefeedActionsFormatter.java
@@ -18,8 +18,6 @@ public class RefeedActionsFormatter {
public String format() {
StringBuilder builder = new StringBuilder();
for (RefeedActions.Entry entry : actions.getEntries()) {
- if (entry.allowed())
- builder.append("(allowed) ");
builder.append(entry.name() + ": Consider removing data and re-feed document type '" + entry.getDocumentType() +
"' in cluster '" + entry.getClusterName() + "' because:\n");
int counter = 1;
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/configchange/ReindexActions.java b/configserver/src/main/java/com/yahoo/vespa/config/server/configchange/ReindexActions.java
index e328f9595b7..6ed1c43623f 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/configchange/ReindexActions.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/configchange/ReindexActions.java
@@ -27,7 +27,7 @@ public class ReindexActions {
if (action.getType().equals(ConfigChangeAction.Type.REINDEX)) {
ConfigChangeReindexAction reindexChange = (ConfigChangeReindexAction) action;
for (ServiceInfo service : reindexChange.getServices()) {
- addEntry(reindexChange.name(), reindexChange.allowed(), reindexChange.getDocumentType(), service).
+ addEntry(reindexChange.name(), reindexChange.getDocumentType(), service).
addService(service).
addMessage(action.getMessage());
}
@@ -35,12 +35,12 @@ public class ReindexActions {
}
}
- private Entry addEntry(String name, boolean allowed, String documentType, ServiceInfo service) {
+ private Entry addEntry(String name, String documentType, ServiceInfo service) {
String clusterName = service.getProperty("clustername").orElse("");
- String entryId = name + "." + allowed + "." + clusterName + "." + documentType;
+ String entryId = name + "." + "." + clusterName + "." + documentType;
Entry entry = actions.get(entryId);
if (entry == null) {
- entry = new Entry(name, allowed, documentType, clusterName);
+ entry = new Entry(name, documentType, clusterName);
actions.put(entryId, entry);
}
return entry;
@@ -53,15 +53,13 @@ public class ReindexActions {
public static class Entry {
private final String name;
- private final boolean allowed;
private final String documentType;
private final String clusterName;
private final Set<ServiceInfo> services = new LinkedHashSet<>();
private final Set<String> messages = new TreeSet<>();
- private Entry(String name, boolean allowed, String documentType, String clusterName) {
+ private Entry(String name, String documentType, String clusterName) {
this.name = name;
- this.allowed = allowed;
this.documentType = documentType;
this.clusterName = clusterName;
}
@@ -77,7 +75,6 @@ public class ReindexActions {
}
public String name() { return name; }
- public boolean allowed() { return allowed; }
public String getDocumentType() { return documentType; }
public String getClusterName() { return clusterName; }
public Set<ServiceInfo> getServices() { return services; }
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/configchange/ReindexActionsFormatter.java b/configserver/src/main/java/com/yahoo/vespa/config/server/configchange/ReindexActionsFormatter.java
index e89bfd522cd..bdd01404f64 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/configchange/ReindexActionsFormatter.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/configchange/ReindexActionsFormatter.java
@@ -17,8 +17,6 @@ class ReindexActionsFormatter {
String format() {
StringBuilder builder = new StringBuilder();
for (ReindexActions.Entry entry : actions.getEntries()) {
- if (entry.allowed())
- builder.append("(allowed) ");
builder.append(entry.name() + ": Consider re-indexing document type '" + entry.getDocumentType() +
"' in cluster '" + entry.getClusterName() + "' because:\n");
int counter = 1;
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/SessionsMaintainer.java b/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/SessionsMaintainer.java
index 19534bba810..556a2a5b8d3 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/SessionsMaintainer.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/SessionsMaintainer.java
@@ -1,4 +1,4 @@
-// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+// 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.maintenance;
import com.yahoo.log.LogLevel;
@@ -17,6 +17,7 @@ import java.time.Duration;
*/
public class SessionsMaintainer extends ConfigServerMaintainer {
private final boolean hostedVespa;
+ private int iteration = 0;
SessionsMaintainer(ApplicationRepository applicationRepository, Curator curator, Duration interval, FlagSource flagSource) {
super(applicationRepository, curator, flagSource, Duration.ofMinutes(1), interval);
@@ -25,6 +26,9 @@ public class SessionsMaintainer extends ConfigServerMaintainer {
@Override
protected boolean maintain() {
+ if (iteration % 10 == 0)
+ log.log(LogLevel.INFO, () -> "Running " + SessionsMaintainer.class.getSimpleName() + ", iteration " + iteration);
+
applicationRepository.deleteExpiredLocalSessions();
if (hostedVespa) {
@@ -33,6 +37,7 @@ public class SessionsMaintainer extends ConfigServerMaintainer {
log.log(LogLevel.FINE, () -> "Deleted " + deleted + " expired remote sessions older than " + expiryTime);
}
+ iteration++;
return true;
}
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..876b169742f 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
@@ -16,7 +16,6 @@ import java.util.List;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
/**
* @author geirst
@@ -44,20 +43,16 @@ public class ConfigChangeActionsBuilder {
}
- ConfigChangeActionsBuilder refeed(String name, boolean allowed, String message, String documentType, String clusterName, String serviceName) {
- actions.add(new MockRefeedAction(name,
- allowed,
+ ConfigChangeActionsBuilder refeed(ValidationId validationId, String message, String documentType, String clusterName, String serviceName) {
+ actions.add(new MockRefeedAction(validationId,
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, 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, message, services, documentType));
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..d75f95d4c48 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
@@ -89,16 +89,15 @@ public class ConfigChangeActionsSlimeConverterTest {
@Test
public void json_representation_of_refeed_actions() throws IOException {
ConfigChangeActions actions = new ConfigChangeActionsBuilder().
- refeed(CHANGE_ID, true, CHANGE_MSG, DOC_TYPE, CLUSTER, SERVICE_TYPE).
- refeed(CHANGE_ID_2, false, CHANGE_MSG, DOC_TYPE_2, CLUSTER, SERVICE_TYPE).build();
+ refeed(CHANGE_ID, CHANGE_MSG, DOC_TYPE, CLUSTER, SERVICE_TYPE).
+ refeed(CHANGE_ID_2, CHANGE_MSG, DOC_TYPE_2, CLUSTER, SERVICE_TYPE).build();
assertEquals("{\n" +
" \"configChangeActions\": {\n" +
" \"restart\": [\n" +
" ],\n" +
" \"refeed\": [\n" +
" {\n" +
- " \"name\": \"change-id\",\n" +
- " \"allowed\": true,\n" +
+ " \"name\": \"field-type-change\",\n" +
" \"documentType\": \"music\",\n" +
" \"clusterName\": \"foo\",\n" +
" \"messages\": [\n" +
@@ -114,8 +113,7 @@ public class ConfigChangeActionsSlimeConverterTest {
" ]\n" +
" },\n" +
" {\n" +
- " \"name\": \"other-change-id\",\n" +
- " \"allowed\": false,\n" +
+ " \"name\": \"indexing-change\",\n" +
" \"documentType\": \"book\",\n" +
" \"clusterName\": \"foo\",\n" +
" \"messages\": [\n" +
@@ -141,7 +139,7 @@ public class ConfigChangeActionsSlimeConverterTest {
@Test
public void json_representation_of_reindex_actions() throws IOException {
ConfigChangeActions actions = new ConfigChangeActionsBuilder().
- reindex(CHANGE_ID, true, CHANGE_MSG, DOC_TYPE, CLUSTER, SERVICE_TYPE).build();
+ reindex(CHANGE_ID, CHANGE_MSG, DOC_TYPE, CLUSTER, SERVICE_TYPE).build();
assertEquals(
"{\n" +
" \"configChangeActions\": {\n" +
@@ -151,8 +149,7 @@ public class ConfigChangeActionsSlimeConverterTest {
" ],\n" +
" \"reindex\": [\n" +
" {\n" +
- " \"name\": \"change-id\",\n" +
- " \"allowed\": true,\n" +
+ " \"name\": \"field-type-change\",\n" +
" \"documentType\": \"music\",\n" +
" \"clusterName\": \"foo\",\n" +
" \"messages\": [\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..615d4c86c1d 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,32 +1,35 @@
// 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;
+import com.yahoo.config.provision.ClusterSpec;
import java.util.List;
+import java.util.Optional;
/**
* @author geirst
*/
public class MockRefeedAction extends MockConfigChangeAction implements ConfigChangeRefeedAction {
- private final String name;
- private final boolean allowed;
+ private final ValidationId validationId;
private final String documentType;
- public MockRefeedAction(String name, boolean allowed, String message, List<ServiceInfo> services, String documentType) {
+ public MockRefeedAction(ValidationId validationId, String message, List<ServiceInfo> services, String documentType) {
super(message, services);
- this.name = name;
- this.allowed = allowed;
+ this.validationId = validationId;
this.documentType = documentType;
}
@Override
- public String name() { return name; }
+ public Optional<ValidationId> validationId() { return Optional.of(validationId); }
@Override
- public boolean allowed() { return allowed; }
+ public ClusterSpec.Id clusterId() {
+ return null;
+ }
@Override
public boolean ignoreForInternalRedeploy() {
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..4b898b501ec 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
@@ -15,9 +15,9 @@ public class RefeedActionsFormatterTest {
@Test
public void formatting_of_single_action() {
RefeedActions actions = new ConfigChangeActionsBuilder().
- refeed(CHANGE_ID, false, CHANGE_MSG, DOC_TYPE, CLUSTER, SERVICE_NAME).
+ refeed(CHANGE_ID, 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());
}
@@ -25,20 +25,18 @@ public class RefeedActionsFormatterTest {
@Test
public void formatting_of_multiple_actions() {
RefeedActions actions = 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(CHANGE_ID_2, false, CHANGE_MSG_2, DOC_TYPE, CLUSTER, SERVICE_NAME).
- 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).
+ refeed(CHANGE_ID, CHANGE_MSG, DOC_TYPE, CLUSTER, SERVICE_NAME).
+ refeed(CHANGE_ID, CHANGE_MSG_2, DOC_TYPE, CLUSTER, SERVICE_NAME).
+ refeed(CHANGE_ID_2, CHANGE_MSG_2, DOC_TYPE, CLUSTER, SERVICE_NAME).
+ refeed(CHANGE_ID_2, CHANGE_MSG_2, DOC_TYPE, CLUSTER, SERVICE_NAME).
+ refeed(CHANGE_ID, 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" +
- " 1) other change\n" +
- "(allowed) 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",
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..24e81dc3f99 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, CHANGE_MSG, DOC_TYPE, CLUSTER, SERVICE_NAME).
+ refeed(ValidationId.indexModeChange, 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, CHANGE_MSG, DOC_TYPE, CLUSTER, SERVICE_NAME).
+ refeed(ValidationId.indexModeChange, 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, CHANGE_MSG, DOC_TYPE, CLUSTER, SERVICE_NAME).
+ refeed(ValidationId.indexModeChange, 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, CHANGE_MSG, DOC_TYPE, CLUSTER, SERVICE_NAME).
+ refeed(ValidationId.indexModeChange, 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..b07d002a431 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
@@ -21,9 +21,9 @@ public class ReindexActionsFormatterTest {
@Test
public void formatting_of_single_action() {
ReindexActions actions = new ConfigChangeActionsBuilder().
- reindex(CHANGE_ID, false, CHANGE_MSG, DOC_TYPE, CLUSTER, SERVICE_NAME).
+ reindex(CHANGE_ID, 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());
}
@@ -31,20 +31,18 @@ public class ReindexActionsFormatterTest {
@Test
public void formatting_of_multiple_actions() {
ReindexActions actions = new ConfigChangeActionsBuilder().
- reindex(CHANGE_ID, false, CHANGE_MSG, DOC_TYPE, CLUSTER, SERVICE_NAME).
- reindex(CHANGE_ID, false, CHANGE_MSG_2, DOC_TYPE, CLUSTER, SERVICE_NAME).
- reindex(CHANGE_ID_2, false, CHANGE_MSG_2, DOC_TYPE, CLUSTER, SERVICE_NAME).
- 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).
+ reindex(CHANGE_ID, CHANGE_MSG, DOC_TYPE, CLUSTER, SERVICE_NAME).
+ reindex(CHANGE_ID, CHANGE_MSG_2, DOC_TYPE, CLUSTER, SERVICE_NAME).
+ reindex(CHANGE_ID_2, CHANGE_MSG_2, DOC_TYPE, CLUSTER, SERVICE_NAME).
+ reindex(CHANGE_ID_2, CHANGE_MSG_2, DOC_TYPE, CLUSTER, SERVICE_NAME).
+ reindex(CHANGE_ID, 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" +
- " 1) other change\n" +
- "(allowed) 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",
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..341fa7109da 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,7 +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.ValidationOverrides;
+import com.yahoo.config.application.api.ValidationId;
import com.yahoo.config.model.api.ConfigChangeAction;
import com.yahoo.config.model.api.ModelContext;
import com.yahoo.config.model.api.ModelCreateResult;
@@ -49,6 +49,7 @@ import static com.yahoo.vespa.config.server.deploy.DeployTester.createFailingMod
import static com.yahoo.vespa.config.server.deploy.DeployTester.createHostedModelFactory;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -390,27 +391,6 @@ public class HostedDeployTest {
}
@Test
- public void testThatDisallowedConfigChangeActionsBlockDeployment() throws IOException {
- List<Host> hosts = List.of(createHost("host1", "6.1.0"),
- createHost("host2", "6.1.0"),
- createHost("host3", "6.1.0"),
- createHost("host4", "6.1.0"));
- List<ServiceInfo> services = List.of(
- new ServiceInfo("serviceName", "serviceType", null, Map.of("clustername", "cluster"), "configId", "hostName"));
-
- 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,
- "reindex please", services, "music", clock.instant()),
- new VespaRestartAction(ClusterSpec.Id.from("test"), "change", services)));
-
- DeployTester tester = createTester(hosts, modelFactories, prodZone, clock);
- PrepareResult prepareResult = tester.deployApp("src/test/apps/hosted/", "6.1.0");
- assertNull("Deployment was not activated", tester.applicationRepository().getActiveSession(tester.applicationId()));
- }
-
- @Test
public void testThatAllowedConfigChangeActionsAreActedUpon() throws IOException {
List<Host> hosts = List.of(createHost("host1", "6.1.0"),
createHost("host2", "6.1.0"),
@@ -422,8 +402,8 @@ 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,
- "reindex please", services, "music", clock.instant()),
+ VespaReindexAction.of(ClusterSpec.Id.from("test"), ValidationId.indexModeChange,
+ "reindex please", services, "music"),
new VespaRestartAction(ClusterSpec.Id.from("test"), "change", services)));
DeployTester tester = createTester(hosts, modelFactories, prodZone, clock);