diff options
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java | 42 |
1 files changed, 24 insertions, 18 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 cfccd0f7e16..ff02ddb700f 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 @@ -510,18 +510,21 @@ public class ApplicationRepository implements com.yahoo.config.provision.Deploye // This call will remove application in zookeeper. Watches in TenantApplications will remove the application // and allocated hosts in model and handlers in RPC server transaction.add(tenantApplications.createDeleteTransaction(applicationId)); + transaction.onCommitted(() -> log.log(Level.INFO, "Deleted " + applicationId)); - hostProvisioner.ifPresent(provisioner -> { + if (hostProvisioner.isPresent()) { if (acquireProvisionLock.value()) { - try (var provisionLock = provisioner.lock(applicationId)) { - provisioner.remove(transaction, provisionLock); + try (var provisionLock = hostProvisioner.get().lock(applicationId)) { + hostProvisioner.get().remove(transaction, provisionLock); + transaction.commit(); } - } else { - provisioner.remove(transaction, applicationId); + } else { // TODO(mpolden): Remove when feature flag is removed + hostProvisioner.get().remove(transaction, applicationId); + transaction.commit(); } - }); - transaction.onCommitted(() -> log.log(Level.INFO, "Deleted " + applicationId)); - transaction.commit(); + } else { + transaction.commit(); + } return true; } } @@ -737,16 +740,19 @@ public class ApplicationRepository implements com.yahoo.config.provision.Deploye CompletionWaiter waiter = session.getSessionZooKeeperClient().createActiveWaiter(); NestedTransaction transaction = new NestedTransaction(); transaction.add(deactivateCurrentActivateNew(previousActiveSession, session, force)); - hostProvisioner.ifPresent(provisioner -> { - if (acquireProvisionLock.value()) { - try (var lock = provisioner.lock(applicationId)) { - provisioner.activate(transaction, session.getAllocatedHosts().getHosts(), lock); - } - } else { - provisioner.activate(transaction, applicationId, session.getAllocatedHosts().getHosts()); - } - }); - transaction.commit(); + if (hostProvisioner.isPresent()) { + if (acquireProvisionLock.value()) { + try (var lock = hostProvisioner.get().lock(applicationId)) { + hostProvisioner.get().activate(transaction, session.getAllocatedHosts().getHosts(), lock); + transaction.commit(); + } + } else { // TODO(mpolden): Remove when feature flag is removed + hostProvisioner.get().activate(transaction, applicationId, session.getAllocatedHosts().getHosts()); + transaction.commit(); + } + } else { + transaction.commit(); + } return waiter; } |