diff --git a/src/AWS.Messaging/Configuration/MessageBusBuilder.cs b/src/AWS.Messaging/Configuration/MessageBusBuilder.cs index ce821ba..9325739 100644 --- a/src/AWS.Messaging/Configuration/MessageBusBuilder.cs +++ b/src/AWS.Messaging/Configuration/MessageBusBuilder.cs @@ -276,7 +276,6 @@ internal void Build(IServiceCollection services) services.TryAddSingleton(); services.TryAddSingleton(); services.TryAddSingleton(); - services.TryAddSingleton(); services.TryAddSingleton(); services.TryAddSingleton(); services.AddHttpClient("ECSMetadataClient"); diff --git a/src/AWS.Messaging/Services/DnsManager.cs b/src/AWS.Messaging/Services/DnsManager.cs deleted file mode 100644 index f2d3f9a..0000000 --- a/src/AWS.Messaging/Services/DnsManager.cs +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -using System.Net; - -namespace AWS.Messaging.Services; - -/// -/// A wrapper around . -/// -internal class DnsManager : IDnsManager -{ - /// - public string GetHostName() => Dns.GetHostName(); -} diff --git a/src/AWS.Messaging/Services/IDnsManager.cs b/src/AWS.Messaging/Services/IDnsManager.cs deleted file mode 100644 index 07c01f0..0000000 --- a/src/AWS.Messaging/Services/IDnsManager.cs +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -using System.Net; - -namespace AWS.Messaging.Services; - -/// -/// A wrapper around . -/// -internal interface IDnsManager -{ - /// - /// Gets the host name of the local computer. - /// - /// A string that contains the host name of the local computer. - string GetHostName(); -} diff --git a/src/AWS.Messaging/Services/MessageSourceHandler.cs b/src/AWS.Messaging/Services/MessageSourceHandler.cs index 3734af6..d5e1bae 100644 --- a/src/AWS.Messaging/Services/MessageSourceHandler.cs +++ b/src/AWS.Messaging/Services/MessageSourceHandler.cs @@ -15,7 +15,6 @@ namespace AWS.Messaging.Services; internal class MessageSourceHandler : IMessageSourceHandler { private readonly IEnvironmentManager _environmentManager; - private readonly IDnsManager _dnsManager; private readonly IECSContainerMetadataManager _ecsContainerMetadataManager; private readonly IEC2InstanceMetadataManager _ec2InstanceMetadataHandler; private readonly IMessageConfiguration _messageConfiguration; @@ -23,14 +22,12 @@ internal class MessageSourceHandler : IMessageSourceHandler public MessageSourceHandler( IEnvironmentManager environmentManager, - IDnsManager dnsManager, IECSContainerMetadataManager ecsContainerMetadataManager, IEC2InstanceMetadataManager ec2InstanceMetadataHandler, IMessageConfiguration messageConfiguration, ILogger logger) { _environmentManager = environmentManager; - _dnsManager = dnsManager; _ecsContainerMetadataManager = ecsContainerMetadataManager; _ec2InstanceMetadataHandler = ec2InstanceMetadataHandler; _messageConfiguration = messageConfiguration; @@ -56,7 +53,7 @@ public MessageSourceHandler( /// /// /// If the source cannot be resolved from the compute environment, - /// we fallback to using + /// we fallback to using "/aws/messaging" as the source identifier /// /// /// After a source is computed, the message source suffix is appended if one is set. @@ -68,7 +65,7 @@ public async Task ComputeMessageSource() return GetFullSourceUri(_messageConfiguration.Source, _messageConfiguration.SourceSuffix); _logger.LogTrace("Attempting to compute message source based on the current environment..."); - string? messageSource = GetSourceFromLambda(); + var messageSource = GetSourceFromLambda(); if (string.IsNullOrEmpty(messageSource)) { messageSource = await GetSourceFromECS(); @@ -78,10 +75,6 @@ public async Task ComputeMessageSource() messageSource = GetSourceFromEC2(); } if (string.IsNullOrEmpty(messageSource)) - { - messageSource = GetSourceFromDnsHostName(); - } - if (string.IsNullOrEmpty(messageSource)) { messageSource = "/aws/messaging"; } @@ -172,23 +165,4 @@ private Uri GetFullSourceUri(string source, string? suffix) $"/AmazonEC2/{instanceID}" : null; } - - /// - /// Retrieve the DNS host name using . - /// - /// Message source from DNS host name - private string? GetSourceFromDnsHostName() - { - _logger.LogTrace("Retrieving the DNS host name..."); - - try - { - return $"/DNSHostName/{_dnsManager.GetHostName()}"; - } - catch (Exception ex) - { - _logger.LogError(ex, "Unable to retrieve the DNS host name."); - return null; - } - } } diff --git a/test/AWS.Messaging.UnitTests/MessageSourceHandlerTests.cs b/test/AWS.Messaging.UnitTests/MessageSourceHandlerTests.cs index 6413f70..6c98e4c 100644 --- a/test/AWS.Messaging.UnitTests/MessageSourceHandlerTests.cs +++ b/test/AWS.Messaging.UnitTests/MessageSourceHandlerTests.cs @@ -15,7 +15,6 @@ namespace AWS.Messaging.UnitTests; public class MessageSourceHandlerTests { private readonly Mock _environmentManager; - private readonly Mock _dnsManager; private readonly Mock _ec2InstanceMetadataManager; private readonly Mock _ecsContainerMetadataManager; private readonly IMessageConfiguration _messageConfiguration; @@ -24,7 +23,6 @@ public class MessageSourceHandlerTests public MessageSourceHandlerTests() { _environmentManager = new Mock(); - _dnsManager = new Mock(); _ec2InstanceMetadataManager = new Mock(); _ecsContainerMetadataManager = new Mock(); _messageConfiguration = new MessageConfiguration(); @@ -36,14 +34,7 @@ public async Task MessageSourceIsSet() { _messageConfiguration.Source = "/aws/messaging"; - var messageSourceHandler = new MessageSourceHandler( - _environmentManager.Object, - _dnsManager.Object, - _ecsContainerMetadataManager.Object, - _ec2InstanceMetadataManager.Object, - _messageConfiguration, - _logger.Object - ); + var messageSourceHandler = GetMessageSourceHandler(); var messageSource = await messageSourceHandler.ComputeMessageSource(); @@ -56,14 +47,7 @@ public async Task MessageSourceAndSuffixIsSet() _messageConfiguration.Source = "/aws/messaging"; _messageConfiguration.SourceSuffix = "/suffix"; - var messageSourceHandler = new MessageSourceHandler( - _environmentManager.Object, - _dnsManager.Object, - _ecsContainerMetadataManager.Object, - _ec2InstanceMetadataManager.Object, - _messageConfiguration, - _logger.Object - ); + var messageSourceHandler = GetMessageSourceHandler(); var messageSource = await messageSourceHandler.ComputeMessageSource(); @@ -76,14 +60,7 @@ public async Task MessageSourceAndSuffixIsSet_SourceDoesntEndInSlash_SuffixDoesn _messageConfiguration.Source = "/aws/messaging"; _messageConfiguration.SourceSuffix = "suffix"; - var messageSourceHandler = new MessageSourceHandler( - _environmentManager.Object, - _dnsManager.Object, - _ecsContainerMetadataManager.Object, - _ec2InstanceMetadataManager.Object, - _messageConfiguration, - _logger.Object - ); + var messageSourceHandler = GetMessageSourceHandler(); var messageSource = await messageSourceHandler.ComputeMessageSource(); @@ -96,14 +73,7 @@ public async Task MessageSourceAndSuffixIsSet_SourceEndsInSlash_SuffixStartsWith _messageConfiguration.Source = "/aws/messaging/"; _messageConfiguration.SourceSuffix = "/suffix"; - var messageSourceHandler = new MessageSourceHandler( - _environmentManager.Object, - _dnsManager.Object, - _ecsContainerMetadataManager.Object, - _ec2InstanceMetadataManager.Object, - _messageConfiguration, - _logger.Object - ); + var messageSourceHandler = GetMessageSourceHandler(); var messageSource = await messageSourceHandler.ComputeMessageSource(); @@ -116,14 +86,7 @@ public async Task MessageSourceAndSuffixIsSet_SourceAndSuffixHaveWhitespace() _messageConfiguration.Source = " /aws/messaging/ "; _messageConfiguration.SourceSuffix = " /suffix "; - var messageSourceHandler = new MessageSourceHandler( - _environmentManager.Object, - _dnsManager.Object, - _ecsContainerMetadataManager.Object, - _ec2InstanceMetadataManager.Object, - _messageConfiguration, - _logger.Object - ); + var messageSourceHandler = GetMessageSourceHandler(); var messageSource = await messageSourceHandler.ComputeMessageSource(); @@ -134,20 +97,12 @@ public async Task MessageSourceAndSuffixIsSet_SourceAndSuffixHaveWhitespace() public async Task MessageSourceNotSet_RunningLocally() { _ecsContainerMetadataManager.Setup(x => x.GetContainerTaskMetadata()).ReturnsAsync(new Dictionary()); - _dnsManager.Setup(x => x.GetHostName()).Returns("local"); - var messageSourceHandler = new MessageSourceHandler( - _environmentManager.Object, - _dnsManager.Object, - _ecsContainerMetadataManager.Object, - _ec2InstanceMetadataManager.Object, - _messageConfiguration, - _logger.Object - ); + var messageSourceHandler = GetMessageSourceHandler(); var messageSource = await messageSourceHandler.ComputeMessageSource(); - Assert.Equal("/DNSHostName/local", messageSource.ToString()); + Assert.Equal("/aws/messaging", messageSource.ToString()); } [Fact] @@ -155,20 +110,12 @@ public async Task MessageSourceNotSet_SuffixSet_RunningLocally() { _messageConfiguration.SourceSuffix = "/suffix"; _ecsContainerMetadataManager.Setup(x => x.GetContainerTaskMetadata()).ReturnsAsync(new Dictionary()); - _dnsManager.Setup(x => x.GetHostName()).Returns("local"); - var messageSourceHandler = new MessageSourceHandler( - _environmentManager.Object, - _dnsManager.Object, - _ecsContainerMetadataManager.Object, - _ec2InstanceMetadataManager.Object, - _messageConfiguration, - _logger.Object - ); + var messageSourceHandler = GetMessageSourceHandler(); var messageSource = await messageSourceHandler.ComputeMessageSource(); - Assert.Equal("/DNSHostName/local/suffix", messageSource.ToString()); + Assert.Equal("/aws/messaging/suffix", messageSource.ToString()); } [Fact] @@ -176,14 +123,7 @@ public async Task MessageSourceNotSet_RunningInLambda() { _environmentManager.Setup(x => x.GetEnvironmentVariable("AWS_LAMBDA_FUNCTION_NAME")).Returns("lambda"); - var messageSourceHandler = new MessageSourceHandler( - _environmentManager.Object, - _dnsManager.Object, - _ecsContainerMetadataManager.Object, - _ec2InstanceMetadataManager.Object, - _messageConfiguration, - _logger.Object - ); + var messageSourceHandler = GetMessageSourceHandler(); var messageSource = await messageSourceHandler.ComputeMessageSource(); @@ -199,14 +139,7 @@ public async Task MessageSourceNotSet_RunningInECS() { "TaskARN", "taskArn" } }); - var messageSourceHandler = new MessageSourceHandler( - _environmentManager.Object, - _dnsManager.Object, - _ecsContainerMetadataManager.Object, - _ec2InstanceMetadataManager.Object, - _messageConfiguration, - _logger.Object - ); + var messageSourceHandler = GetMessageSourceHandler(); var messageSource = await messageSourceHandler.ComputeMessageSource(); @@ -219,37 +152,23 @@ public async Task MessageSourceNotSet_RunningInEC2() _ecsContainerMetadataManager.Setup(x => x.GetContainerTaskMetadata()).ReturnsAsync(new Dictionary()); _ec2InstanceMetadataManager.Setup(x => x.InstanceId).Returns("instanceId"); - var messageSourceHandler = new MessageSourceHandler( - _environmentManager.Object, - _dnsManager.Object, - _ecsContainerMetadataManager.Object, - _ec2InstanceMetadataManager.Object, - _messageConfiguration, - _logger.Object - ); + var messageSourceHandler = GetMessageSourceHandler(); var messageSource = await messageSourceHandler.ComputeMessageSource(); Assert.Equal("/AmazonEC2/instanceId", messageSource.ToString()); } - [Fact] - public async Task MessageSourceNotSet_DnsThrowsException() + private IMessageSourceHandler GetMessageSourceHandler() { - _ecsContainerMetadataManager.Setup(x => x.GetContainerTaskMetadata()).ReturnsAsync(new Dictionary()); - _dnsManager.Setup(x => x.GetHostName()).Throws(); - var messageSourceHandler = new MessageSourceHandler( - _environmentManager.Object, - _dnsManager.Object, - _ecsContainerMetadataManager.Object, - _ec2InstanceMetadataManager.Object, - _messageConfiguration, - _logger.Object - ); - - var messageSource = await messageSourceHandler.ComputeMessageSource(); - - Assert.Equal("/aws/messaging", messageSource.ToString()); + _environmentManager.Object, + _ecsContainerMetadataManager.Object, + _ec2InstanceMetadataManager.Object, + _messageConfiguration, + _logger.Object + ); + + return messageSourceHandler; } }