Skip to content

Commit 91cddc3

Browse files
committed
Fixing the usage of the GetValueAsync on ParameterResource
1 parent 4ed5755 commit 91cddc3

File tree

14 files changed

+89
-73
lines changed

14 files changed

+89
-73
lines changed

src/CommunityToolkit.Aspire.Hosting.ActiveMQ/ActiveMQBuilderExtensions.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -175,9 +175,9 @@ private static IResourceBuilder<T> WithJolokiaHealthCheck<T>(
175175
string basicAuthentication = string.Empty;
176176
builder.ApplicationBuilder.Eventing.Subscribe<BeforeResourceStartedEvent>(builder.Resource, async (_, ct) =>
177177
{
178-
Uri baseUri = new Uri(endpoint.Url, UriKind.Absolute);
178+
Uri baseUri = new (endpoint.Url, UriKind.Absolute);
179179
string userName = (await builder.Resource.UserNameReference.GetValueAsync(ct))!;
180-
string password = (await ((IValueProvider)builder.Resource.PasswordParameter).GetValueAsync(ct))!;
180+
string password = (await builder.Resource.PasswordParameter.GetValueAsync(ct))!;
181181
basicAuthentication = "Basic " + Convert.ToBase64String(Encoding.UTF8.GetBytes($"{userName}:{password}"));
182182
uri = new UriBuilder(baseUri)
183183
{

src/CommunityToolkit.Aspire.Hosting.MySql.Extensions/MySqlBuilderExtensions.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -135,21 +135,21 @@ private static void ConfigureDbGateContainer(EnvironmentCallbackContext context,
135135
}
136136
}
137137

138-
internal static void ConfigureAdminerContainer(EnvironmentCallbackContext context, IDistributedApplicationBuilder applicationBuilder)
138+
internal static async Task ConfigureAdminerContainer(EnvironmentCallbackContext context, IDistributedApplicationBuilder applicationBuilder)
139139
{
140140
var mysqlInstances = applicationBuilder.Resources.OfType<MySqlServerResource>();
141141

142142
string ADMINER_SERVERS = context.EnvironmentVariables.GetValueOrDefault("ADMINER_SERVERS")?.ToString() ?? string.Empty;
143143

144144
var new_servers = mysqlInstances.ToDictionary(
145145
mysqlServer => mysqlServer.Name,
146-
mysqlServer =>
146+
async mysqlServer =>
147147
{
148148
return new AdminerLoginServer
149149
{
150150
Server = mysqlServer.Name,
151151
UserName = "root",
152-
Password = mysqlServer.PasswordParameter.Value,
152+
Password = await mysqlServer.PasswordParameter.GetValueAsync(default),
153153
Driver = "server" // driver for MySQL is called 'server'
154154
};
155155
});
@@ -166,7 +166,7 @@ internal static void ConfigureAdminerContainer(EnvironmentCallbackContext contex
166166
{
167167
if (!servers.ContainsKey(server.Key))
168168
{
169-
servers!.Add(server.Key, server.Value);
169+
servers!.Add(server.Key, await server.Value);
170170
}
171171
}
172172
string servers_json = JsonSerializer.Serialize(servers);

src/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions/PostgresBuilderExtensions.cs

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public static IResourceBuilder<PostgresServerResource> WithDbGate(this IResource
4444
var dbGateBuilder = DbGateBuilderExtensions.AddDbGate(builder.ApplicationBuilder, containerName);
4545

4646
dbGateBuilder
47-
.WithEnvironment(context => ConfigureDbGateContainer(context, builder.ApplicationBuilder));
47+
.WithEnvironment(context => ConfigureDbGateContainer(context, builder.ApplicationBuilder));
4848

4949
configureContainer?.Invoke(dbGateBuilder);
5050

@@ -105,9 +105,9 @@ private static void ConfigureDbGateContainer(EnvironmentCallbackContext context,
105105

106106
foreach (var postgresServer in postgresInstances)
107107
{
108-
var userParameter = postgresServer.UserNameParameter is null
109-
? ReferenceExpression.Create($"postgres")
110-
: ReferenceExpression.Create($"{postgresServer.UserNameParameter}");
108+
var userParameter = postgresServer.UserNameParameter is null
109+
? ReferenceExpression.Create($"postgres")
110+
: ReferenceExpression.Create($"{postgresServer.UserNameParameter}");
111111

112112
// DbGate assumes Postgres is being accessed over a default Aspire container network and hardcodes the resource address
113113
// This will need to be refactored once updated service discovery APIs are available
@@ -141,22 +141,30 @@ private static void ConfigureDbGateContainer(EnvironmentCallbackContext context,
141141
}
142142

143143

144-
internal static void ConfigureAdminerContainer(EnvironmentCallbackContext context, IDistributedApplicationBuilder applicationBuilder)
144+
internal static async Task ConfigureAdminerContainer(EnvironmentCallbackContext context, IDistributedApplicationBuilder applicationBuilder)
145145
{
146146
var postgresInstances = applicationBuilder.Resources.OfType<PostgresServerResource>();
147147

148148
string ADMINER_SERVERS = context.EnvironmentVariables.GetValueOrDefault("ADMINER_SERVERS")?.ToString() ?? string.Empty;
149149

150150
var new_servers = postgresInstances.ToDictionary(
151151
postgresServer => postgresServer.Name,
152-
postgresServer =>
152+
async postgresServer =>
153153
{
154-
var user = postgresServer.UserNameParameter?.Value ?? "postgres";
154+
var user = postgresServer.UserNameParameter switch
155+
{
156+
null => "postgres",
157+
_ => await postgresServer.UserNameParameter.GetValueAsync(default)
158+
};
155159
return new AdminerLoginServer
156160
{
157161
Server = postgresServer.Name,
158162
UserName = user,
159-
Password = postgresServer.PasswordParameter.Value,
163+
Password = postgresServer.PasswordParameter switch
164+
{
165+
null => string.Empty,
166+
_ => await postgresServer.PasswordParameter.GetValueAsync(default)
167+
},
160168
Driver = "pgsql"
161169
};
162170
});
@@ -173,7 +181,7 @@ internal static void ConfigureAdminerContainer(EnvironmentCallbackContext contex
173181
{
174182
if (!servers.ContainsKey(server.Key))
175183
{
176-
servers!.Add(server.Key, server.Value);
184+
servers!.Add(server.Key, await server.Value);
177185
}
178186
}
179187
string servers_json = JsonSerializer.Serialize(servers);

src/CommunityToolkit.Aspire.Hosting.SqlServer.Extensions/SqlServerBuilderExtensions.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -135,21 +135,21 @@ private static void ConfigureDbGateContainer(EnvironmentCallbackContext context,
135135
}
136136
}
137137

138-
private static void ConfigureAdminerContainer(EnvironmentCallbackContext context, IDistributedApplicationBuilder applicationBuilder)
138+
private static async Task ConfigureAdminerContainer(EnvironmentCallbackContext context, IDistributedApplicationBuilder applicationBuilder)
139139
{
140140
var sqlServerInstances = applicationBuilder.Resources.OfType<SqlServerServerResource>();
141141

142142
string ADMINER_SERVERS = context.EnvironmentVariables.GetValueOrDefault("ADMINER_SERVERS")?.ToString() ?? string.Empty;
143143

144144
var new_servers = sqlServerInstances.ToDictionary(
145145
sqlServerServerResource => sqlServerServerResource.Name,
146-
sqlServerServerResource =>
146+
async sqlServerServerResource =>
147147
{
148148
return new AdminerLoginServer
149149
{
150150
Server = sqlServerServerResource.Name,
151151
UserName = "sa",
152-
Password = sqlServerServerResource.PasswordParameter.Value,
152+
Password = await sqlServerServerResource.PasswordParameter.GetValueAsync(default),
153153
Driver = "mssql"
154154
};
155155
});
@@ -166,7 +166,7 @@ private static void ConfigureAdminerContainer(EnvironmentCallbackContext context
166166
{
167167
if (!servers.ContainsKey(server.Key))
168168
{
169-
servers!.Add(server.Key, server.Value);
169+
servers!.Add(server.Key, await server.Value);
170170
}
171171
}
172172
string servers_json = JsonSerializer.Serialize(servers);

src/Shared/Dapr/Core/DaprDistributedApplicationLifecycleHook.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ public async Task BeforeStartAsync(DistributedApplicationModel appModel, Cancell
8282
{
8383
foreach (var secretAnnotation in secretAnnotations)
8484
{
85-
secrets[secretAnnotation.Key] = (await ((IValueProvider)secretAnnotation).GetValueAsync(cancellationToken))!;
85+
secrets[secretAnnotation.Key] = (await secretAnnotation.Value.GetValueAsync(cancellationToken))!;
8686
}
8787
// We need to append the secret store path to the resources path
8888
onDemandResourcesPaths.TryGetValue("secretstore", out var secretStorePath);

src/Shared/Dapr/Core/DaprMetadataResourceBuilderExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ public static IResourceBuilder<IDaprComponentResource> WithMetadata(this IResour
7474
schema.Spec.Metadata.Add(new DaprComponentSpecMetadataValue
7575
{
7676
Name = name,
77-
Value = (await ((IValueProvider)parameterResource).GetValueAsync(default))!
77+
Value = (await parameterResource.GetValueAsync(default))!
7878
});
7979
}));
8080
}

tests/CommunityToolkit.Aspire.Hosting.Adminer.Tests/AddAdminerTests.cs

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using Aspire.Hosting.Utils;
66

77
namespace CommunityToolkit.Aspire.Hosting.Adminer.Tests;
8+
89
public class AddAdminerTests
910
{
1011
[Fact]
@@ -189,8 +190,11 @@ public async Task WithAdminerShouldAddAnnotationsForMultipleDatabaseTypes()
189190
{
190191
Driver = "pgsql",
191192
Server = postgresResource1.Name,
192-
Password = postgresResource1.PasswordParameter.Value,
193-
UserName = postgresResource1.UserNameParameter?.Value ?? "postgres"
193+
Password = await postgresResource1.PasswordParameter.GetValueAsync(default),
194+
UserName = postgresResource1.UserNameParameter switch {
195+
null => "postgres",
196+
_ => await postgresResource1.UserNameParameter.GetValueAsync(default)
197+
}
194198
}
195199
},
196200
{
@@ -199,8 +203,11 @@ public async Task WithAdminerShouldAddAnnotationsForMultipleDatabaseTypes()
199203
{
200204
Driver = "pgsql",
201205
Server = postgresResource2.Name,
202-
Password = postgresResource2.PasswordParameter.Value,
203-
UserName = postgresResource2.UserNameParameter?.Value ?? "postgres"
206+
Password = await postgresResource2.PasswordParameter.GetValueAsync(default),
207+
UserName = postgresResource2.UserNameParameter switch {
208+
null => "postgres",
209+
_ => await postgresResource2.UserNameParameter.GetValueAsync(default)
210+
}
204211
}
205212
},
206213
{
@@ -209,7 +216,7 @@ public async Task WithAdminerShouldAddAnnotationsForMultipleDatabaseTypes()
209216
{
210217
Driver = "mssql",
211218
Server = sqlserverResource1.Name,
212-
Password = sqlserverResource1.PasswordParameter.Value,
219+
Password = await sqlserverResource1.PasswordParameter.GetValueAsync(default),
213220
UserName = "sa"
214221
}
215222
},
@@ -219,7 +226,7 @@ public async Task WithAdminerShouldAddAnnotationsForMultipleDatabaseTypes()
219226
{
220227
Driver = "mssql",
221228
Server = sqlserverResource2.Name,
222-
Password = sqlserverResource2.PasswordParameter.Value,
229+
Password = await sqlserverResource2.PasswordParameter.GetValueAsync(default),
223230
UserName = "sa"
224231
}
225232
},
@@ -229,7 +236,7 @@ public async Task WithAdminerShouldAddAnnotationsForMultipleDatabaseTypes()
229236
{
230237
Driver = "server",
231238
Server = mysqlResource1.Name,
232-
Password = mysqlResource1.PasswordParameter.Value,
239+
Password = await mysqlResource1.PasswordParameter.GetValueAsync(default),
233240
UserName = "root"
234241
}
235242
},
@@ -239,7 +246,7 @@ public async Task WithAdminerShouldAddAnnotationsForMultipleDatabaseTypes()
239246
{
240247
Driver = "server",
241248
Server = mysqlResource2.Name,
242-
Password = mysqlResource2.PasswordParameter.Value,
249+
Password = await mysqlResource2.PasswordParameter.GetValueAsync(default),
243250
UserName = "root"
244251
}
245252
}

tests/CommunityToolkit.Aspire.Hosting.DbGate.Tests/AddDbGateTests.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,7 @@ public async Task WithDbGateShouldAddAnnotationsForMultipleDatabaseTypes()
331331
async item =>
332332
{
333333
Assert.Equal("PASSWORD_postgres2", item.Key);
334-
var expectedPassword = await ((IValueProvider)postgresResource2.PasswordParameter).GetValueAsync(default);
334+
var expectedPassword = await postgresResource2.PasswordParameter.GetValueAsync(default);
335335
Assert.Equal(expectedPassword, item.Value);
336336
},
337337
item =>
@@ -402,7 +402,7 @@ public async Task WithDbGateShouldAddAnnotationsForMultipleDatabaseTypes()
402402
async item =>
403403
{
404404
Assert.Equal("PASSWORD_sqlserver1", item.Key);
405-
var expectedPassword = await ((IValueProvider)sqlserverResource1.PasswordParameter).GetValueAsync(default);
405+
var expectedPassword = await sqlserverResource1.PasswordParameter.GetValueAsync(default);
406406
Assert.Equal(expectedPassword, item.Value);
407407
},
408408
item =>
@@ -433,7 +433,7 @@ public async Task WithDbGateShouldAddAnnotationsForMultipleDatabaseTypes()
433433
async item =>
434434
{
435435
Assert.Equal("PASSWORD_sqlserver2", item.Key);
436-
var expectedPassword = await ((IValueProvider)sqlserverResource2.PasswordParameter).GetValueAsync(default);
436+
var expectedPassword = await sqlserverResource2.PasswordParameter.GetValueAsync(default);
437437
Assert.Equal(expectedPassword, item.Value);
438438
},
439439
item =>
@@ -464,7 +464,7 @@ public async Task WithDbGateShouldAddAnnotationsForMultipleDatabaseTypes()
464464
async item =>
465465
{
466466
Assert.Equal("PASSWORD_mysql1", item.Key);
467-
var expectedPassword = await ((IValueProvider)mysqlResource1.PasswordParameter).GetValueAsync(default);
467+
var expectedPassword = await mysqlResource1.PasswordParameter.GetValueAsync(default);
468468
Assert.Equal(expectedPassword, item.Value);
469469
},
470470
item =>
@@ -495,7 +495,7 @@ public async Task WithDbGateShouldAddAnnotationsForMultipleDatabaseTypes()
495495
async item =>
496496
{
497497
Assert.Equal("PASSWORD_mysql2", item.Key);
498-
var expectedPassword = await ((IValueProvider)mysqlResource2.PasswordParameter).GetValueAsync(default);
498+
var expectedPassword = await mysqlResource2.PasswordParameter.GetValueAsync(default);
499499
Assert.Equal(expectedPassword, item.Value);
500500
},
501501
item =>

tests/CommunityToolkit.Aspire.Hosting.Meilisearch.Tests/AddMeilisearchTests.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using Aspire.Hosting;
66

77
namespace CommunityToolkit.Aspire.Hosting.Meilisearch.Tests;
8+
89
public class AddMeilisearchTests
910
{
1011
[Fact]
@@ -51,7 +52,7 @@ public async Task AddMeilisearchContainerAddsAnnotationMetadata()
5152
var appBuilder = DistributedApplication.CreateBuilder();
5253
var masterKey = ParameterResourceBuilderExtensions.CreateDefaultPasswordParameter(appBuilder, $"masterKey");
5354

54-
appBuilder.Configuration["Parameters:masterkey"] = masterKey.Value;
55+
appBuilder.Configuration["Parameters:masterkey"] = await masterKey.GetValueAsync(default);
5556
var masterKeyParameter = appBuilder.AddParameter(masterKey.Name);
5657
var meilisearch = appBuilder.AddMeilisearch("meilisearch", masterKeyParameter);
5758

@@ -101,7 +102,7 @@ public async Task MeilisearchCreatesConnectionString()
101102
var connectionStringResource = Assert.Single(appModel.Resources.OfType<MeilisearchResource>()) as IResourceWithConnectionString;
102103
var connectionString = await connectionStringResource.GetConnectionStringAsync();
103104

104-
Assert.Equal($"Endpoint=http://localhost:27020;MasterKey={meilisearch.Resource.MasterKeyParameter.Value}", connectionString);
105+
Assert.Equal($"Endpoint=http://localhost:27020;MasterKey={await meilisearch.Resource.MasterKeyParameter.GetValueAsync(default)}", connectionString);
105106
Assert.Equal("Endpoint=http://{meilisearch.bindings.http.host}:{meilisearch.bindings.http.port};MasterKey={meilisearch-masterKey.value}", connectionStringResource.ConnectionStringExpression.ValueExpression);
106107
}
107108
}

tests/CommunityToolkit.Aspire.Hosting.Meilisearch.Tests/MeilisearchFunctionalTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ public async Task WithDataShouldPersistStateBetweenUsages(bool useVolume)
6969

7070
var meilisearch1 = builder1.AddMeilisearch("meilisearch");
7171

72-
var masterKey = meilisearch1.Resource.MasterKeyParameter.Value;
72+
var masterKey = await meilisearch1.Resource.MasterKeyParameter.GetValueAsync(default);
7373

7474
if (useVolume)
7575
{

0 commit comments

Comments
 (0)