diff options
Diffstat (limited to 'configserver')
2 files changed, 14 insertions, 7 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 2102a5a04b5..64e5f80d72c 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 @@ -792,10 +792,7 @@ public class ApplicationRepository implements com.yahoo.config.provision.Deploye Optional<Version> vespaVersion) { 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); + response = response.unconverged(); return response; } diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/application/ConfigConvergenceChecker.java b/configserver/src/main/java/com/yahoo/vespa/config/server/application/ConfigConvergenceChecker.java index 8b83055e1d0..c03cb7ade8c 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/application/ConfigConvergenceChecker.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/application/ConfigConvergenceChecker.java @@ -360,11 +360,21 @@ public class ConfigConvergenceChecker extends AbstractComponent { public final long currentGeneration; public final boolean converged; - public ServiceListResponse(Map<ServiceInfo, Long> services, long wantedGeneration, long currentGeneration) { - services.forEach((key, value) -> this.services.add(new Service(key, value))); + private ServiceListResponse(List<Service> services, long wantedGeneration, long currentGeneration, boolean converged) { + this.services.addAll(services); this.wantedGeneration = wantedGeneration; this.currentGeneration = currentGeneration; - this.converged = currentGeneration >= wantedGeneration; + this.converged = converged; + } + public ServiceListResponse(Map<ServiceInfo, Long> services, long wantedGeneration, long currentGeneration) { + this(services.entrySet().stream().map(entry -> new Service(entry.getKey(), entry.getValue())).toList(), + wantedGeneration, + currentGeneration, + currentGeneration >= wantedGeneration); + } + + public ServiceListResponse unconverged() { + return new ServiceListResponse(services, wantedGeneration, currentGeneration, false); } public List<Service> services() { return services; } |