protected void scheduleRenewal()

in common/src/main/java/org/jetbrains/teamcity/vault/support/LifecycleAwareSessionManager.java [207:231]


    protected void scheduleRenewal() {
        VaultToken token = this.token;
        if (token instanceof LoginToken) {
            final Runnable task = new Runnable() {
                @Override
                public void run() {
                    scheduled = null;
                    try {
                        if (isTokenRenewable()) {
                            boolean mayRenewAgainLater = renewToken();
                            if (mayRenewAgainLater) {
                                scheduleRenewal();
                            }
                        }
                    } catch (Exception e) {
                        logger.error("Cannot renew HashiCorp Vault token: " + e.getMessage());
                        LOG.error("Cannot renew HashiCorp Vault token", e);
                    }
                }
            };
            Date startTime = refreshTrigger.nextExecutionTime((LoginToken) token);
            LOG.info("Scheduling HashiCorp Vault token refresh to " + startTime);
            scheduled = taskScheduler.schedule(task, startTime);
        }
    }