diff options
author | jonmv <venstad@gmail.com> | 2023-07-06 13:04:57 +0200 |
---|---|---|
committer | jonmv <venstad@gmail.com> | 2023-07-06 13:04:57 +0200 |
commit | 9a3e881c61473e6966e9a3db3a11c79907423e0d (patch) | |
tree | 63d55320cb869e1f5009304de41deceb74edd65f | |
parent | 15b3137a28d8a41ad4b24e9c29e1b3da4330cfe8 (diff) |
Restart also on internal redeployment if nodes change
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 |