Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Aspire.sln
Original file line number Diff line number Diff line change
Expand Up @@ -3928,7 +3928,7 @@ Global
{A3399DE9-AAB0-43EA-B99B-6A62ABBDD7BF}.Release|x64.Build.0 = Release|Any CPU
{A3399DE9-AAB0-43EA-B99B-6A62ABBDD7BF}.Release|x86.ActiveCfg = Release|Any CPU
{A3399DE9-AAB0-43EA-B99B-6A62ABBDD7BF}.Release|x86.Build.0 = Release|Any CPU
{6CBA29C8-FF78-4ABC-BEFA-2A53CB4DB2A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6CBA29C8-FF78-4ABC-BEFA-2A53CB4DB2A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6CBA29C8-FF78-4ABC-BEFA-2A53CB4DB2A3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6CBA29C8-FF78-4ABC-BEFA-2A53CB4DB2A3}.Debug|x64.ActiveCfg = Debug|Any CPU
{6CBA29C8-FF78-4ABC-BEFA-2A53CB4DB2A3}.Debug|x64.Build.0 = Debug|Any CPU
Expand Down
2 changes: 1 addition & 1 deletion src/Aspire.Hosting.Kafka/KafkaBuilderExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ public static IResourceBuilder<KafkaServerResource> WithKafkaUI(this IResourceBu
}
else
{
containerName ??= $"{builder.Resource.Name}-kafka-ui";
containerName ??= "kafka-ui";

var kafkaUi = new KafkaUIContainerResource(containerName);
var kafkaUiBuilder = builder.ApplicationBuilder.AddResource(kafkaUi)
Expand Down
6 changes: 4 additions & 2 deletions src/Aspire.Hosting.MySql/MySqlBuilderExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -189,12 +189,14 @@ public static IResourceBuilder<T> WithPhpMyAdmin<T>(this IResourceBuilder<T> bui
{
ArgumentNullException.ThrowIfNull(builder);

if (builder.ApplicationBuilder.Resources.OfType<PhpMyAdminContainerResource>().Any())
if (builder.ApplicationBuilder.Resources.OfType<PhpMyAdminContainerResource>().SingleOrDefault() is { } existinghpMyAdminResource)
{
var builderForExistingResource = builder.ApplicationBuilder.CreateResourceBuilder(existinghpMyAdminResource);
configureContainer?.Invoke(builderForExistingResource);
return builder;
}

containerName ??= $"{builder.Resource.Name}-phpmyadmin";
containerName ??= "phpmyadmin";

var phpMyAdminContainer = new PhpMyAdminContainerResource(containerName);
var phpMyAdminContainerBuilder = builder.ApplicationBuilder.AddResource(phpMyAdminContainer)
Expand Down
5 changes: 3 additions & 2 deletions src/Aspire.Hosting.PostgreSQL/PostgresBuilderExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,7 @@ public static IResourceBuilder<T> WithPgAdmin<T>(this IResourceBuilder<T> builde
}
else
{
containerName ??= $"{builder.Resource.Name}-pgadmin";
containerName ??= "pgadmin";

var pgAdminContainer = new PgAdminContainerResource(containerName);
var pgAdminContainerBuilder = builder.ApplicationBuilder.AddResource(pgAdminContainer)
Expand Down Expand Up @@ -294,7 +294,8 @@ public static IResourceBuilder<PostgresServerResource> WithPgWeb(this IResourceB
}
else
{
containerName ??= $"{builder.Resource.Name}-pgweb";
containerName ??= "pgweb";

var pgwebContainer = new PgWebContainerResource(containerName);
var pgwebContainerBuilder = builder.ApplicationBuilder.AddResource(pgwebContainer)
.WithImage(PostgresContainerImageTags.PgWebImage, PostgresContainerImageTags.PgWebTag)
Expand Down
4 changes: 2 additions & 2 deletions src/Aspire.Hosting.Redis/RedisBuilderExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ public static IResourceBuilder<RedisResource> WithRedisCommander(this IResourceB
}
else
{
containerName ??= $"{builder.Resource.Name}-commander";
containerName ??= "rediscommander";

var resource = new RedisCommanderResource(containerName);
var resourceBuilder = builder.ApplicationBuilder.AddResource(resource)
Expand Down Expand Up @@ -220,7 +220,7 @@ public static IResourceBuilder<RedisResource> WithRedisInsight(this IResourceBui
}
else
{
containerName ??= $"{builder.Resource.Name}-insight";
containerName ??= "redisinsight";

var resource = new RedisInsightResource(containerName);
var resourceBuilder = builder.ApplicationBuilder.AddResource(resource)
Expand Down
4 changes: 2 additions & 2 deletions tests/Aspire.Hosting.Kafka.Tests/AddKafkaTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -150,9 +150,9 @@ public async Task WithDataBindConfigureCorrectEnvironment()
return new()
{
{ "kafka-ui", "kafka-ui", 8081 },
{ null, "kafka1-kafka-ui", 8081 },
{ null, "kafka-ui", 8081 },
{ "kafka-ui", "kafka-ui", null },
{ null, "kafka1-kafka-ui", null },
{ null, "kafka-ui", null },
};
}

Expand Down
8 changes: 4 additions & 4 deletions tests/Aspire.Hosting.MySql.Tests/AddMySqlTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,7 @@ public void WithMySqlTwiceEndsUpWithOneAdminContainer()
builder.AddMySql("mySql").WithPhpMyAdmin();
builder.AddMySql("mySql2").WithPhpMyAdmin();

Assert.Single(builder.Resources.OfType<ContainerResource>(), resource => resource.Name == "mySql-phpmyadmin");
Assert.Single(builder.Resources.OfType<ContainerResource>(), resource => resource.Name == "phpmyadmin");
}

[Fact]
Expand All @@ -241,11 +241,11 @@ public async Task SingleMySqlInstanceProducesCorrectMySqlHostsVariable()

await builder.Eventing.PublishAsync<AfterEndpointsAllocatedEvent>(new(app.Services, app.Services.GetRequiredService<DistributedApplicationModel>()));

var myAdmin = builder.Resources.Single(r => r.Name.EndsWith("-phpmyadmin"));
var myAdmin = builder.Resources.Single(r => r.Name.Equals("phpmyadmin"));

var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(myAdmin, DistributedApplicationOperation.Run, TestServiceProvider.Instance);

var container = builder.Resources.Single(r => r.Name == "mySql-phpmyadmin");
var container = builder.Resources.Single(r => r.Name == "phpmyadmin");
Assert.Empty(container.Annotations.OfType<ContainerMountAnnotation>());

Assert.Equal($"{mysql.Resource.Name}:{mysql.Resource.PrimaryEndpoint.TargetPort}", config["PMA_HOST"]);
Expand Down Expand Up @@ -273,7 +273,7 @@ public void WithPhpMyAdminProducesValidServerConfigFile()

builder.Eventing.PublishAsync<AfterEndpointsAllocatedEvent>(new(app.Services, app.Services.GetRequiredService<DistributedApplicationModel>()));

var myAdmin = builder.Resources.Single(r => r.Name.EndsWith("-phpmyadmin"));
var myAdmin = builder.Resources.Single(r => r.Name.Equals("phpmyadmin"));
var volume = myAdmin.Annotations.OfType<ContainerMountAnnotation>().Single();

using var stream = File.OpenRead(volume.Source!);
Expand Down
2 changes: 1 addition & 1 deletion tests/Aspire.Hosting.MySql.Tests/MySqlFunctionalTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -508,7 +508,7 @@ public async Task MySql_WithPersistentLifetime_ReusesContainers(bool useMultiple
mySqlId2 = GetContainerId(resourceEvent);
}

resourceEvent = await rns.WaitForResourceHealthyAsync("resource-phpmyadmin", cts.Token);
resourceEvent = await rns.WaitForResourceHealthyAsync("phpmyadmin", cts.Token);
var phpMyAdminId = GetContainerId(resourceEvent);

await app.StopAsync(cts.Token).WaitAsync(cts.Token);
Expand Down
10 changes: 5 additions & 5 deletions tests/Aspire.Hosting.PostgreSQL.Tests/AddPostgresTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -380,7 +380,7 @@ public async Task WithPgAdminAddsContainer()
// The mount annotation is added in the AfterEndpointsAllocatedEvent.
await builder.Eventing.PublishAsync<AfterEndpointsAllocatedEvent>(new(app.Services, app.Services.GetRequiredService<DistributedApplicationModel>()));

var container = builder.Resources.Single(r => r.Name == "mypostgres-pgadmin");
var container = builder.Resources.Single(r => r.Name == "pgadmin");
var createFile = container.Annotations.OfType<ContainerFileSystemCallbackAnnotation>().Single();

Assert.Equal("/pgadmin4", createFile.DestinationPath);
Expand Down Expand Up @@ -434,7 +434,7 @@ public void WithPgAdminWithCallbackMutatesImage()
using var builder = TestDistributedApplicationBuilder.Create();
builder.AddPostgres("mypostgres").WithPgAdmin(pga => pga.WithImageTag("8.3"));

var container = builder.Resources.Single(r => r.Name == "mypostgres-pgadmin");
var container = builder.Resources.Single(r => r.Name == "pgadmin");
var imageAnnotation = container.Annotations.OfType<ContainerImageAnnotation>().Single();

Assert.Equal("8.3", imageAnnotation.Tag);
Expand All @@ -447,7 +447,7 @@ public void WithPostgresTwiceEndsUpWithOneContainer()
builder.AddPostgres("mypostgres1").WithPgAdmin(pga => pga.WithHostPort(8081));
builder.AddPostgres("mypostgres2").WithPgAdmin(pga => pga.WithHostPort(8081));

Assert.Single(builder.Resources, r => r.Name.EndsWith("-pgadmin"));
Assert.Single(builder.Resources, r => r.Name.Equals("pgadmin"));
}

[Fact]
Expand All @@ -470,7 +470,7 @@ public async Task WithPostgresProducesValidServersJsonFile()

await builder.Eventing.PublishAsync<AfterEndpointsAllocatedEvent>(new(app.Services, app.Services.GetRequiredService<DistributedApplicationModel>()));

var pgadmin = builder.Resources.Single(r => r.Name.EndsWith("-pgadmin"));
var pgadmin = builder.Resources.Single(r => r.Name.Equals("pgadmin"));

var createServers = pgadmin.Annotations.OfType<ContainerFileSystemCallbackAnnotation>().Single();

Expand Down Expand Up @@ -542,7 +542,7 @@ public async Task WithPgwebProducesValidBookmarkFiles()

await builder.Eventing.PublishAsync<AfterEndpointsAllocatedEvent>(new(app.Services, app.Services.GetRequiredService<DistributedApplicationModel>()));

var pgweb = builder.Resources.Single(r => r.Name.EndsWith("-pgweb"));
var pgweb = builder.Resources.Single(r => r.Name.Equals("pgweb"));
var createBookmarks = pgweb.Annotations.OfType<ContainerFileSystemCallbackAnnotation>().Single();

Assert.Equal("/", createBookmarks.DestinationPath);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -485,10 +485,10 @@ public async Task Postgres_WithPersistentLifetime_ReusesContainers()
var resourceEvent = await rns.WaitForResourceHealthyAsync("resource", cts.Token);
var postgresId = GetContainerId(resourceEvent);

resourceEvent = await rns.WaitForResourceHealthyAsync("resource-pgweb", cts.Token);
resourceEvent = await rns.WaitForResourceHealthyAsync("pgweb", cts.Token);
var pgWebId = GetContainerId(resourceEvent);

resourceEvent = await rns.WaitForResourceHealthyAsync("resource-pgadmin", cts.Token);
resourceEvent = await rns.WaitForResourceHealthyAsync("pgadmin", cts.Token);
var pgadminId = GetContainerId(resourceEvent);

await app.StopAsync(cts.Token).WaitAsync(TimeSpan.FromMinutes(1), cts.Token);
Expand Down
10 changes: 6 additions & 4 deletions tests/Aspire.Hosting.Redis.Tests/AddRedisTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -251,7 +251,9 @@ public void WithRedisInsightAddsWithRedisInsightResource()
builder.AddRedis("myredis1").WithRedisInsight();
builder.AddRedis("myredis2").WithRedisInsight();

Assert.Single(builder.Resources.OfType<RedisInsightResource>());
var redisinsight = builder.Resources.Single(r => r.Name.Equals("redisinsight"));

Assert.NotNull(redisinsight);
}

[Fact]
Expand Down Expand Up @@ -425,7 +427,7 @@ public async Task SingleRedisInstanceWithoutPasswordProducesCorrectRedisHostsVar

await builder.Eventing.PublishAsync<AfterEndpointsAllocatedEvent>(new(app.Services, app.Services.GetRequiredService<DistributedApplicationModel>()));

var commander = builder.Resources.Single(r => r.Name.EndsWith("-commander"));
var commander = builder.Resources.Single(r => r.Name.Equals("rediscommander"));

var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(
commander,
Expand All @@ -449,7 +451,7 @@ public async Task SingleRedisInstanceWithPasswordProducesCorrectRedisHostsVariab

await builder.Eventing.PublishAsync<AfterEndpointsAllocatedEvent>(new(app.Services, app.Services.GetRequiredService<DistributedApplicationModel>()));

var commander = builder.Resources.Single(r => r.Name.EndsWith("-commander"));
var commander = builder.Resources.Single(r => r.Name.Equals("rediscommander"));

var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(commander);

Expand All @@ -470,7 +472,7 @@ public async Task MultipleRedisInstanceProducesCorrectRedisHostsVariable()

await builder.Eventing.PublishAsync<AfterEndpointsAllocatedEvent>(new(app.Services, app.Services.GetRequiredService<DistributedApplicationModel>()));

var commander = builder.Resources.Single(r => r.Name.EndsWith("-commander"));
var commander = builder.Resources.Single(r => r.Name.Equals("rediscommander"));

var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(
commander,
Expand Down