From 45fde9981ea86cd939c53a51132319e71e6c7d69 Mon Sep 17 00:00:00 2001 From: Taylor Kimmett Date: Sun, 23 Jun 2024 10:36:39 -0400 Subject: [PATCH] use configuration settings for AQStreamingTests --- .../AzureQueueStreamProviderBuilder.cs | 19 +++++-- .../Streaming/AQStreamingTests.cs | 50 +++++++++---------- 2 files changed, 41 insertions(+), 28 deletions(-) diff --git a/src/Azure/Orleans.Streaming.AzureStorage/Hosting/AzureQueueStreamProviderBuilder.cs b/src/Azure/Orleans.Streaming.AzureStorage/Hosting/AzureQueueStreamProviderBuilder.cs index 90f2326fd5..3968355d8c 100644 --- a/src/Azure/Orleans.Streaming.AzureStorage/Hosting/AzureQueueStreamProviderBuilder.cs +++ b/src/Azure/Orleans.Streaming.AzureStorage/Hosting/AzureQueueStreamProviderBuilder.cs @@ -10,14 +10,26 @@ using Orleans.Providers; [assembly: RegisterProvider("AzureQueueStorage", "Streaming", "Silo", typeof(AzureQueueStreamProviderBuilder))] +[assembly: RegisterProvider("AzureQueueStorage", "Streaming", "Client", typeof(AzureQueueStreamProviderBuilder))] namespace Orleans.Hosting; -public sealed class AzureQueueStreamProviderBuilder : IProviderBuilder +public sealed class AzureQueueStreamProviderBuilder : IProviderBuilder, IProviderBuilder { public void Configure(ISiloBuilder builder, string name, IConfigurationSection configurationSection) { - builder.AddAzureQueueStreams(name, (OptionsBuilder optionsBuilder) => + builder.AddAzureQueueStreams(name, GetQueueOptionBuilder(configurationSection)); + } + + public void Configure(IClientBuilder builder, string name, IConfigurationSection configurationSection) + { + builder.AddAzureQueueStreams(name, GetQueueOptionBuilder(configurationSection)); + } + + private static Action> GetQueueOptionBuilder(IConfigurationSection configurationSection) + { + return (OptionsBuilder optionsBuilder) => + { optionsBuilder.Configure((options, services) => { var queueNames = configurationSection.GetSection("QueueNames")?.Get>(); @@ -55,6 +67,7 @@ public void Configure(ISiloBuilder builder, string name, IConfigurationSection c } } } - })); + }); + }; } } diff --git a/test/Extensions/TesterAzureUtils/Streaming/AQStreamingTests.cs b/test/Extensions/TesterAzureUtils/Streaming/AQStreamingTests.cs index ea69b6c6d0..d4004737d4 100644 --- a/test/Extensions/TesterAzureUtils/Streaming/AQStreamingTests.cs +++ b/test/Extensions/TesterAzureUtils/Streaming/AQStreamingTests.cs @@ -22,23 +22,30 @@ public class AQStreamingTests : TestClusterPerTest protected override void ConfigureTestCluster(TestClusterBuilder builder) { TestUtils.CheckForAzureStorage(); - builder.AddSiloBuilderConfigurator(); - builder.AddClientBuilderConfigurator(); - } - - private class MyClientBuilderConfigurator : IClientBuilderConfigurator - { - public void Configure(IConfiguration configuration, IClientBuilder clientBuilder) + builder.ConfigureHostConfiguration(cb => { - clientBuilder - .AddAzureQueueStreams(AzureQueueStreamProviderName, b=> - b.ConfigureAzureQueue(ob=>ob.Configure>( - (options, dep) => - { - options.ConfigureTestDefaults(); - options.QueueNames = AzureQueueUtilities.GenerateQueueNames(dep.Value.ClusterId, queueCount); - }))); - } + Dictionary queueConfig = []; + void ConfigureStreaming(string option, string value) + { + var prefix = $"Orleans:Streaming:{AzureQueueStreamProviderName}:"; + queueConfig[$"{prefix}{option}"] = value; + } + + ConfigureStreaming("ProviderType", "AzureQueueStorage"); + ConfigureStreaming("ConnectionString", TestDefaultConfiguration.UseAadAuthentication + ? TestDefaultConfiguration.DataBlobUri.AbsoluteUri + : TestDefaultConfiguration.DataConnectionString); + + var names = AzureQueueUtilities.GenerateQueueNames(builder.Options.ClusterId, queueCount); + for (var i = 0; i < names.Count; i++) + { + ConfigureStreaming($"QueueNames:{i}", names[i]); + } + + cb.AddInMemoryCollection(queueConfig); + }); + + builder.AddSiloBuilderConfigurator(); } private class SiloBuilderConfigurator : ISiloConfigurator @@ -56,14 +63,7 @@ public void Configure(ISiloBuilder hostBuilder) options.ConfigureTestDefaults(); options.DeleteStateOnClear = true; })) - .AddMemoryGrainStorage("MemoryStore") - .AddAzureQueueStreams(AzureQueueStreamProviderName, c=> - c.ConfigureAzureQueue(ob => ob.Configure>( - (options, dep) => - { - options.ConfigureTestDefaults(); - options.QueueNames = AzureQueueUtilities.GenerateQueueNames(dep.Value.ClusterId, queueCount); - }))); + .AddMemoryGrainStorage("MemoryStore"); } } @@ -129,7 +129,7 @@ public async Task AQ_06_ManyDifferent_ManyProducerGrainManyConsumerClients() await runner.StreamTest_06_ManyDifferent_ManyProducerGrainManyConsumerClients(); } - [SkippableFact(Skip="https://github.com/dotnet/orleans/issues/5648"), TestCategory("Functional")] + [SkippableFact(Skip = "https://github.com/dotnet/orleans/issues/5648"), TestCategory("Functional")] public async Task AQ_07_ManyDifferent_ManyProducerClientsManyConsumerGrains() { await runner.StreamTest_07_ManyDifferent_ManyProducerClientsManyConsumerGrains();