internal static HttpClient HttpClientFromConfiguration(RestExecutorConfiguration configuration) { if (configuration == null) { return(null); } if (configuration.DelegatingHandler == null) { return(BuildHttpClient(StorageAuthenticationHttpHandler.Instance, configuration.HttpClientTimeout)); } DelegatingHandler delegatingHandler = configuration.DelegatingHandler; DelegatingHandler delegatingHandler2 = delegatingHandler; while (delegatingHandler2.InnerHandler != null) { DelegatingHandler obj = delegatingHandler2.InnerHandler as DelegatingHandler; if (obj == null) { throw new ArgumentException("Innermost DelegatingHandler must have a null InnerHandler."); } delegatingHandler2 = obj; } delegatingHandler2.InnerHandler = new StorageAuthenticationHttpHandler(); return(BuildHttpClient(delegatingHandler, configuration.HttpClientTimeout)); }
public FunctionInstanceLogger( IFunctionMetadataManager metadataManager, IMetricsLogger metrics, IHostIdProvider hostIdProvider, IConfiguration configuration, ILoggerFactory loggerFactory, IDelegatingHandlerProvider delegatingHandlerProvider) : this(metadataManager, metrics) { if (hostIdProvider == null) { throw new ArgumentNullException(nameof(hostIdProvider)); } if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } if (loggerFactory == null) { throw new ArgumentNullException(nameof(loggerFactory)); } if (delegatingHandlerProvider == null) { throw new ArgumentNullException(nameof(delegatingHandlerProvider)); } string accountConnectionString = configuration.GetWebJobsConnectionString(ConnectionStringNames.Dashboard); if (accountConnectionString != null) { CloudStorageAccount account = CloudStorageAccount.Parse(accountConnectionString); var restConfig = new RestExecutorConfiguration { DelegatingHandler = delegatingHandlerProvider.Create() }; var tableClientConfig = new TableClientConfiguration { RestExecutorConfiguration = restConfig }; var client = new CloudTableClient(account.TableStorageUri, account.Credentials, tableClientConfig); var tableProvider = LogFactory.NewLogTableProvider(client); ILogger logger = loggerFactory.CreateLogger(ScriptConstants.LogCategoryHostGeneral); string hostId = hostIdProvider.GetHostIdAsync(CancellationToken.None).GetAwaiter().GetResult() ?? "default"; string containerName = Environment.MachineName; _writer = LogFactory.NewWriter(hostId, containerName, tableProvider, (e) => OnException(e, logger)); } }
public TableClientConfiguration() { CosmosExecutorConfiguration = new CosmosExecutorConfiguration(); RestExecutorConfiguration = new RestExecutorConfiguration(); }