/// <inheritdoc/> public async Task RegisterAsync() { try { Logger.LogNoisyInformation($"Attempting Registration of {_serviceSettings.Name} to Consul at {_serviceSettings.ConsulUrl}"); Logger.LogNoisyInformation($"Service Address: {_serviceSettings.Address}"); Logger.LogNoisyInformation($"Service Port: {_serviceSettings.Port}"); LogAboutHealthCheck(); var httpClient = _httpClientFactory.CreateClient(); var request = HttpRequestMessageProvider.Get(HttpMethod.Put, _serviceSettings.ConsulUrl, "v1/agent/service/register"); request.Content = new StringContent(JsonConvert.SerializeObject(_serviceSettings), System.Text.Encoding.UTF8, "application/json"); var response = await httpClient.SendAsync(request); LogResponse(response); } catch (Exception e) { Logger.LogNoisyError(e, $"Error occured registering service ${_serviceSettings.Name} with Consul"); Logger.LogNoisyWarning($"Service {_serviceSettings.Name} failed to register with Consul. This may impact performance of other services as they won't be able to locate it"); } }
/// <inheritdoc/> public async Task <ConsulRegistrationSettings> GetServiceRawSettingsAsync(string serviceId) { Logger.LogNoisyInformation($"Fetching information about service '{serviceId}'"); var httpClient = _httpClientFactory.CreateClient(); var request = HttpRequestMessageProvider.Get( HttpMethod.Get, _serviceSettings.ConsulUrl, $"v1/agent/service/{serviceId}"); var response = await httpClient.SendAsync(request); LogResponse(response); if (response.IsSuccessStatusCode) { var responseString = await response.Content.ReadAsStringAsync(); return(JsonConvert.DeserializeObject <ConsulRegistrationSettings>(responseString)); } else { return(null); } }