public ApplicationId activate(Tenant tenant,
                                  long sessionId,
                                  TimeoutBudget timeoutBudget,
                                  boolean force) {
        DeployLogger logger = new SilentDeployLogger();
        Session session = getLocalSession(tenant, sessionId);
        Deployment deployment = Deployment.prepared(session, this, hostProvisioner, tenant, logger, timeoutBudget.timeout(), clock, false, force);
        deployment.activate();
        return sessionRepository(tenant).read(session).applicationId();
    }
Creates a new deployment from the active application, if available.
This is used for system internal redeployments, not on application package changes.

@param application the active application to be redeployed
@param timeout the timeout to use for each individual deployment operation
@param bootstrap the deployment is done when bootstrapping
@return a new deployment from the local active, or empty if a local active application
        was not present for this id (meaning it either is not active or active on another
        node in the config server cluster)
configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java