summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjonmv <venstad@gmail.com>2023-07-06 13:04:57 +0200
committerjonmv <venstad@gmail.com>2023-07-06 13:04:57 +0200
commit9a3e881c61473e6966e9a3db3a11c79907423e0d (patch)
tree63d55320cb869e1f5009304de41deceb74edd65f
parent15b3137a28d8a41ad4b24e9c29e1b3da4330cfe8 (diff)
Restart also on internal redeployment if nodes change
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/ContainerRestartValidator.java7
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/ContainerRestartValidatorTest.java2
2 files changed, 6 insertions, 3 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 0703d4fa3d6..ce456be0746 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
@@ -22,19 +22,20 @@ public class ContainerRestartValidator implements ChangeValidator {
@Override
public List<ConfigChangeAction> validate(VespaModel currentModel, VespaModel nextModel, DeployState deployState) {
+ boolean nodesUnchanged = currentModel.allocatedHosts().equals(nextModel.allocatedHosts());
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))
+ .map(container -> createConfigChangeAction(cluster.id(), container, nodesUnchanged))
.toList());
}
return actions;
}
- private static ConfigChangeAction createConfigChangeAction(ClusterSpec.Id id, Container container) {
- return new VespaRestartAction(id, createMessage(container), container.getServiceInfo(), true);
+ private static ConfigChangeAction createConfigChangeAction(ClusterSpec.Id id, Container container, boolean nodesUnchanged) {
+ return new VespaRestartAction(id, createMessage(container), container.getServiceInfo(), nodesUnchanged);
}
private static String createMessage(Container container) {
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/ContainerRestartValidatorTest.java b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/ContainerRestartValidatorTest.java
index c034944c8ae..9def84c7f19 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/ContainerRestartValidatorTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/ContainerRestartValidatorTest.java
@@ -23,6 +23,8 @@ public class ContainerRestartValidatorTest {
VespaModel next = createModel(true);
List<ConfigChangeAction> result = validateModel(current, next);
assertEquals(2, result.size());
+ assertTrue(result.get(0).ignoreForInternalRedeploy());
+ assertTrue(result.get(1).ignoreForInternalRedeploy());
}
@Test