Skip to content

Commit e380bfa

Browse files
committed
Use a dictionary on ArmEnvironment since it is IEquatable
1 parent 22c0f17 commit e380bfa

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

src/ServiceControl.Transports.ASBS/AzureQuery.cs

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -291,19 +291,25 @@ public override async IAsyncEnumerable<IBrokerQueue> GetQueueNames(
291291
throw new Exception($"Could not find a ServiceBus named \"{serviceBusName}\"");
292292
}
293293

294+
// ArmEnvironment Audience Values: https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/resourcemanager/Azure.ResourceManager/src/ArmEnvironment.cs
295+
// Service Bus Domains: https://learn.microsoft.com/en-us/rest/api/servicebus/
296+
static readonly Dictionary<ArmEnvironment, string> ServiceBusDomains = new()
297+
{
298+
{ ArmEnvironment.AzurePublicCloud, "servicebus.windows.net" },
299+
{ ArmEnvironment.AzureGovernment, "servicebus.usgovcloudapi.net" },
300+
{ ArmEnvironment.AzureGermany, "servicebus.cloudapi.de" },
301+
{ ArmEnvironment.AzureChina, "servicebus.chinacloudapi.cn" },
302+
};
303+
294304
async Task<HashSet<string>> GetValidNamespaceNames(CancellationToken cancellationToken = default)
295305
{
296306
var validNamespaces = new HashSet<string>(StringComparer.OrdinalIgnoreCase) { serviceBusName };
297307

298-
// ArmEnvironment Audience Values: https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/resourcemanager/Azure.ResourceManager/src/ArmEnvironment.cs
299-
// Service Bus Domains: https://learn.microsoft.com/en-us/rest/api/servicebus/
300-
var serviceBusCloudDomain = armEnvironment.Audience switch
308+
if (!ServiceBusDomains.TryGetValue(armEnvironment, out var serviceBusCloudDomain))
301309
{
302-
"https://management.usgovcloudapi.net" => "servicebus.usgovcloudapi.net",
303-
"https://management.microsoftazure.de" => "servicebus.cloudapi.de",
304-
"https://management.chinacloudapi.cn" => "servicebus.chinacloudapi.cn",
305-
_ => "servicebus.windows.net"
306-
};
310+
// Worst case: the DNS lookup finds nothing additional to match
311+
serviceBusCloudDomain = "servicebus.windows.net";
312+
}
307313

308314
var queryDomain = $"{serviceBusName}.{serviceBusCloudDomain}";
309315
var validDomainTail = $".{serviceBusCloudDomain}.";

0 commit comments

Comments
 (0)