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();
}
}
}