private void refreshIngestionAuthToken()

in ingest/src/main/java/com/microsoft/azure/kusto/ingest/ResourceManager.java [235:263]


        private void refreshIngestionAuthToken() throws IngestionClientException, IngestionServiceException {
            if (ingestionAuthTokenLock.writeLock().tryLock()) {
                try {
                    log.info("Refreshing Ingestion Auth Token");
                    Retry retry = Retry.of("get Ingestion Auth Token resources", taskRetryConfig);
                    CheckedFunction0<KustoOperationResult> retryExecute = Retry.decorateCheckedSupplier(retry,
                            () -> client.executeMgmt(Commands.IDENTITY_GET_COMMAND));
                    KustoOperationResult identityTokenResult = retryExecute.apply();
                    if (identityTokenResult != null
                            && identityTokenResult.hasNext()
                            && !identityTokenResult.getResultTables().isEmpty()) {
                        KustoResultSetTable resultTable = identityTokenResult.next();
                        resultTable.next();
                        identityToken = resultTable.getString(0);
                    }
                    refreshedAtLeastOnce.clear();
                    refreshedAtLeastOnce.put(true);
                    log.info("Refreshing Ingestion Auth Token Finished");
                } catch (DataServiceException e) {
                    throw new IngestionServiceException(e.getIngestionSource(), "Error refreshing IngestionAuthToken. " + e.getMessage(), e);
                } catch (DataClientException e) {
                    throw new IngestionClientException(e.getIngestionSource(), "Error refreshing IngestionAuthToken. " + e.getMessage(), e);
                } catch (Throwable e) {
                    throw new IngestionClientException(e.getMessage(), e);
                } finally {
                    ingestionAuthTokenLock.writeLock().unlock();
                }
            }
        }