private async Task <ExtractResponse> GetSearchResults(string splunkQuery, Extract extractDetails) { var extractResponseMessage = new ExtractResponse { ExtractResponseMessage = new HttpResponseMessage() }; try { if (extractDetails.ExtractRequired) { splunkQuery = splunkQuery.Replace("{earliest}", extractDetails.QueryFromDate.ToString("MM/dd/yyyy:HH:mm:ss")); splunkQuery = splunkQuery.Replace("{latest}", extractDetails.QueryToDate.ToString("MM/dd/yyyy:HH:mm:ss")); _splunkClient = await _configurationService.GetSplunkClientConfiguration(); if (extractDetails != null) { var client = _httpClientFactory.CreateClient("SplunkApiClient"); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", _splunkClient.ApiToken); var uriBuilder = new UriBuilder { Scheme = "https", Host = _splunkClient.HostName, Port = _splunkClient.HostPort, Path = _splunkClient.BaseUrl, Query = string.Format(_splunkClient.QueryParameters, HttpUtility.UrlEncode(splunkQuery)) }; var httpRequestMessage = new HttpRequestMessage(HttpMethod.Get, uriBuilder.Uri); _logger.LogInformation("Sending download request to Splunk Cloud API", httpRequestMessage); var response = await client.SendAsync(httpRequestMessage); var responseStream = await response.Content.ReadAsStreamAsync(); _logger.LogInformation("Reading content response stream from Splunk Cloud API", responseStream); extractResponseMessage.ExtractResponseStream = responseStream; extractResponseMessage.ExtractResponseMessage = response; extractResponseMessage.ExtractRequestDetails = extractDetails; } } else { extractResponseMessage.ExtractResponseMessage.ReasonPhrase = "No extract required"; extractResponseMessage.ExtractResponseMessage.StatusCode = System.Net.HttpStatusCode.NoContent; } } catch (OperationCanceledException operationCancelledException) { extractResponseMessage.ExtractResponseMessage.ReasonPhrase = operationCancelledException.Message; extractResponseMessage.ExtractResponseMessage.StatusCode = System.Net.HttpStatusCode.RequestTimeout; } catch (Exception ex) { extractResponseMessage.ExtractResponseMessage.ReasonPhrase = ex.Message; extractResponseMessage.ExtractResponseMessage.StatusCode = System.Net.HttpStatusCode.InternalServerError; } return(extractResponseMessage); }
public static void OpenLog(string id, string filePath = null, bool splunkEnabled = true) { SplunkEnabled = splunkEnabled; lock (Locker) { requestLog = new Dictionary <object, RequestLog>(); Queue = new FixedSizeQueue(300); numBegunRequests = new Dictionary <object, int>(); threadsEnabled = new Dictionary <object, bool>(); restReq = new RestRequest(); // Create new Service object if (splunkEnabled) { splunkClient = new SplunkClient(); splunkClient.SetSource(id); } if (filePath == null) { return; } Logger.filePath = filePath; file = new System.IO.StreamWriter(filePath + "TripThru-" + id + ".log"); } }