summaryrefslogtreecommitdiffstats
path: root/configserver
diff options
context:
space:
mode:
authorjonmv <venstad@gmail.com>2024-01-14 14:04:57 +0100
committerjonmv <venstad@gmail.com>2024-01-14 14:04:57 +0100
commit201efca9429652d52ea9626e450c7eba63381bb3 (patch)
tree189ddb404eab3ba02a4d3ce2f7ca4bd2de8e953e /configserver
parente49f46a6e42d3cddc8dca363d90f27a24c483024 (diff)
Respond with not converged when restarts are pending
Diffstat (limited to 'configserver')
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java9
1 files changed, 8 insertions, 1 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 742e92500d9..2102a5a04b5 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
@@ -132,6 +132,7 @@ import static com.yahoo.vespa.config.server.tenant.TenantRepository.HOSTED_VESPA
import static com.yahoo.vespa.curator.Curator.CompletionWaiter;
import static com.yahoo.yolean.Exceptions.uncheck;
import static java.nio.file.Files.readAttributes;
+import static java.util.stream.Collectors.toMap;
/**
* The API for managing applications.
@@ -789,7 +790,13 @@ public class ApplicationRepository implements com.yahoo.config.provision.Deploye
public ServiceListResponse servicesToCheckForConfigConvergence(ApplicationId applicationId,
Duration timeoutPerService,
Optional<Version> vespaVersion) {
- return convergeChecker.checkConvergenceForAllServices(getApplication(applicationId, vespaVersion), timeoutPerService);
+ ServiceListResponse response = convergeChecker.checkConvergenceForAllServices(getApplication(applicationId, vespaVersion), timeoutPerService);
+ if (response.converged && ! getPendingRestarts(applicationId).isEmpty())
+ return new ServiceListResponse(response.services.stream().collect(toMap(service -> service.serviceInfo,
+ service -> service.currentGeneration)),
+ response.wantedGeneration,
+ response.currentGeneration);
+ return response;
}
public ConfigConvergenceChecker configConvergenceChecker() { return convergeChecker; }