protected final void deployNow(ApplicationId application, String reason) {
        try (MaintenanceDeployment deployment = new MaintenanceDeployment(application, deployer, metric, nodeRepository())) {
            if ( ! deployment.isValid()) return; // this will be done at another config server
            if ( ! canDeployNow(application)) return; // redeployment is no longer needed
            log.log(Level.INFO, () -> application + " will be redeployed" +
                                      (reason == null || reason.isBlank() ? "" : " due to " + reason) +
                                      ", last deployed " + deployTime(application) + " and last activated " + activationTime(application));
            deployment.activate();
        } finally {
            pendingDeployments.remove(application);
        }
    }
Redeploy this application. A lock will be taken for the duration of the deployment activation
node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/ApplicationMaintainer.java