summaryrefslogtreecommitdiffstats
path: root/configserver
diff options
context:
space:
mode:
Diffstat (limited to 'configserver')
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java5
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/application/ConfigConvergenceChecker.java16
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; }