aboutsummaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/ContainerRestartValidator.java
diff options
context:
space:
mode:
Diffstat (limited to 'config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/ContainerRestartValidator.java')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/ContainerRestartValidator.java25
1 files changed, 10 insertions, 15 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/ContainerRestartValidator.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/ContainerRestartValidator.java
index 2a4e8a2a2a6..58b849d90e6 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/ContainerRestartValidator.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/ContainerRestartValidator.java
@@ -2,19 +2,16 @@
package com.yahoo.vespa.model.application.validation.change;
import com.yahoo.config.model.api.ConfigChangeAction;
-import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.config.provision.ClusterSpec;
import com.yahoo.config.provision.HostSpec;
import com.yahoo.container.QrConfig;
import com.yahoo.vespa.model.VespaModel;
+import com.yahoo.vespa.model.application.validation.Validation.ChangeContext;
import com.yahoo.vespa.model.container.ApplicationContainer;
import com.yahoo.vespa.model.container.Container;
import com.yahoo.vespa.model.container.ContainerCluster;
-import java.util.ArrayList;
-import java.util.List;
import java.util.Set;
-import java.util.stream.Collectors;
import static java.util.stream.Collectors.toUnmodifiableSet;
@@ -26,18 +23,16 @@ import static java.util.stream.Collectors.toUnmodifiableSet;
public class ContainerRestartValidator implements ChangeValidator {
@Override
- public List<ConfigChangeAction> validate(VespaModel currentModel, VespaModel nextModel, DeployState deployState) {
- boolean nodesUnchanged = currentModel.allocatedHosts().equals(nextModel.allocatedHosts());
- boolean contentUnchanged = contentHostsOf(currentModel).equals(contentHostsOf(nextModel));
- List<ConfigChangeAction> actions = new ArrayList<>();
- for (ContainerCluster<ApplicationContainer> cluster : nextModel.getContainerClusters().values()) {
- actions.addAll(cluster.getContainers().stream()
- .filter(container -> isExistingContainer(container, currentModel))
- .filter(container -> shouldContainerRestartOnDeploy(container, nextModel))
- .map(container -> createConfigChangeAction(cluster.id(), container, nextModel, nodesUnchanged, contentUnchanged))
- .toList());
+ public void validate(ChangeContext context) {
+ boolean nodesUnchanged = context.previousModel().allocatedHosts().equals(context.model().allocatedHosts());
+ boolean contentUnchanged = contentHostsOf(context.previousModel()).equals(contentHostsOf(context.model()));
+ for (ContainerCluster<ApplicationContainer> cluster : context.model().getContainerClusters().values()) {
+ cluster.getContainers().stream()
+ .filter(container -> isExistingContainer(container, context.previousModel()))
+ .filter(container -> shouldContainerRestartOnDeploy(container, context.model()))
+ .map(container -> createConfigChangeAction(cluster.id(), container, context.model(), nodesUnchanged, contentUnchanged))
+ .forEach(context::require);
}
- return actions;
}
private Set<HostSpec> contentHostsOf(VespaModel model) {