summaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorJon Marius Venstad <venstad@gmail.com>2020-11-20 12:42:47 +0100
committerJon Marius Venstad <venstad@gmail.com>2020-11-20 12:42:47 +0100
commit28ebee04d75871c2e268bfd8375b02759ca52d4e (patch)
tree7216fd3c40cb21cd8cd965459b594ba13a6ead7e /config-model
parentb7835ceb503084f32cb09875b1e6243bed81e463 (diff)
Add Optional<ValidationId> to ConfigActionChange and use to validate actions
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/application/validation/Validation.java18
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/VespaRefeedAction.java3
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/VespaReindexAction.java3
3 files changed, 10 insertions, 14 deletions
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 533d0034ae3..90b8686991b 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
@@ -5,9 +5,6 @@ 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.DisallowableConfigChangeAction;
import com.yahoo.config.model.api.Model;
import com.yahoo.config.model.api.ValidationParameters;
import com.yahoo.config.model.deploy.DeployState;
@@ -32,10 +29,10 @@ import java.time.Instant;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
+import java.util.Map;
import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
-import java.util.stream.Stream;
import static java.util.stream.Collectors.groupingBy;
import static java.util.stream.Collectors.mapping;
@@ -110,14 +107,11 @@ public class Validation {
.flatMap(v -> v.validate(currentModel, nextModel, overrides, now).stream())
.collect(toList());
- Stream<DisallowableConfigChangeAction> disallowedActions = actions.stream()
- .filter(DisallowableConfigChangeAction.class::isInstance)
- .map(DisallowableConfigChangeAction.class::cast)
- .filter(action -> ! action.allowed());
-
- overrides.invalid(disallowedActions.collect(groupingBy(DisallowableConfigChangeAction::validationId,
- mapping(ConfigChangeAction::getMessage, toList()))),
- now);
+ Map<ValidationId, List<String>> disallowableActions = actions.stream()
+ .filter(action -> action.validationId().isPresent())
+ .collect(groupingBy(action -> action.validationId().orElseThrow(),
+ mapping(ConfigChangeAction::getMessage, toList())));
+ overrides.invalid(disallowableActions, now);
return actions;
}
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 d4392d5d149..c7e09845b08 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
@@ -9,6 +9,7 @@ import com.yahoo.config.provision.ClusterSpec;
import java.time.Instant;
import java.util.List;
+import java.util.Optional;
/**
* Represents an action to re-feed a document type in order to handle a config change.
@@ -52,7 +53,7 @@ public class VespaRefeedAction extends VespaConfigChangeAction implements Config
}
@Override
- public ValidationId validationId() { return validationId; }
+ public Optional<ValidationId> validationId() { return Optional.of(validationId); }
@Override
public String getDocumentType() { return documentType; }
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 4c09175a9ca..b9c1b554fde 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
@@ -10,6 +10,7 @@ import com.yahoo.config.provision.ClusterSpec;
import java.time.Instant;
import java.util.List;
import java.util.Objects;
+import java.util.Optional;
/**
* Represents an action to re-index a document type in order to handle a config change.
@@ -50,7 +51,7 @@ public class VespaReindexAction extends VespaConfigChangeAction implements Confi
return new VespaReindexAction(clusterId(), validationId, newMessage, newServices, documentType, allowed);
}
- @Override public ValidationId validationId() { return validationId; }
+ @Override public Optional<ValidationId> validationId() { return Optional.of(validationId); }
@Override public String getDocumentType() { return documentType; }
@Override public boolean allowed() { return allowed; }
@Override public boolean ignoreForInternalRedeploy() { return false; }