Skip to content
Closed
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
5 changes: 0 additions & 5 deletions src/Aspire.Hosting.Milvus/Aspire.Hosting.Milvus.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
<ItemGroup>
<Compile Include="$(SharedDir)StringComparers.cs" Link="Utils\StringComparers.cs" />
<Compile Include="$(SharedDir)VolumeNameGenerator.cs" Link="Utils\VolumeNameGenerator.cs" />
<Compile Include="$(ComponentsDir)Aspire.Milvus.Client\MilvusHealthCheck.cs" Link="MilvusHealthCheck.cs"></Compile>
</ItemGroup>

<ItemGroup>
Expand All @@ -31,8 +30,4 @@
<ItemGroup>
<InternalsVisibleTo Include="Aspire.Hosting.Milvus.Tests"></InternalsVisibleTo>
</ItemGroup>

<ItemGroup>
<PackageReference Include="Milvus.Client" />
</ItemGroup>
</Project>
26 changes: 1 addition & 25 deletions src/Aspire.Hosting.Milvus/MilvusBuilderExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,9 @@
using Aspire.Hosting.ApplicationModel;
using Aspire.Hosting.Milvus;
using Aspire.Hosting.Utils;
using Aspire.Milvus.Client;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Diagnostics.HealthChecks;
using Microsoft.Extensions.Logging;
using Milvus.Client;

Check failure on line 10 in src/Aspire.Hosting.Milvus/MilvusBuilderExtensions.cs

View check run for this annotation

Azure Pipelines / dotnet.aspire (Build Linux)

src/Aspire.Hosting.Milvus/MilvusBuilderExtensions.cs#L10

src/Aspire.Hosting.Milvus/MilvusBuilderExtensions.cs(10,7): error CS0246: (NETCORE_ENGINEERING_TELEMETRY=Build) The type or namespace name 'Milvus' could not be found (are you missing a using directive or an assembly reference?)

Check failure on line 10 in src/Aspire.Hosting.Milvus/MilvusBuilderExtensions.cs

View check run for this annotation

Azure Pipelines / dotnet.aspire (Build Linux_helix_tests)

src/Aspire.Hosting.Milvus/MilvusBuilderExtensions.cs#L10

src/Aspire.Hosting.Milvus/MilvusBuilderExtensions.cs(10,7): error CS0246: (NETCORE_ENGINEERING_TELEMETRY=Build) The type or namespace name 'Milvus' could not be found (are you missing a using directive or an assembly reference?)

Check failure on line 10 in src/Aspire.Hosting.Milvus/MilvusBuilderExtensions.cs

View check run for this annotation

Azure Pipelines / dotnet.aspire

src/Aspire.Hosting.Milvus/MilvusBuilderExtensions.cs#L10

src/Aspire.Hosting.Milvus/MilvusBuilderExtensions.cs(10,7): error CS0246: (NETCORE_ENGINEERING_TELEMETRY=Build) The type or namespace name 'Milvus' could not be found (are you missing a using directive or an assembly reference?)

Check failure on line 10 in src/Aspire.Hosting.Milvus/MilvusBuilderExtensions.cs

View check run for this annotation

Azure Pipelines / dotnet.aspire

src/Aspire.Hosting.Milvus/MilvusBuilderExtensions.cs#L10

src/Aspire.Hosting.Milvus/MilvusBuilderExtensions.cs(10,7): error CS0246: (NETCORE_ENGINEERING_TELEMETRY=Build) The type or namespace name 'Milvus' could not be found (are you missing a using directive or an assembly reference?)

namespace Aspire.Hosting;

Expand Down Expand Up @@ -56,27 +54,6 @@
ParameterResourceBuilderExtensions.CreateDefaultPasswordParameter(builder, $"{name}-key");

var milvus = new MilvusServerResource(name, apiKeyParameter);

MilvusClient? milvusClient = null;

builder.Eventing.Subscribe<ConnectionStringAvailableEvent>(milvus, async (@event, ct) =>
{
var connectionString = await milvus.ConnectionStringExpression.GetValueAsync(ct).ConfigureAwait(false)
?? throw new DistributedApplicationException($"ConnectionStringAvailableEvent was published for the '{milvus.Name}' resource but the connection string was null.");
milvusClient = CreateMilvusClient(@event.Services, connectionString);
});

var healthCheckKey = $"{name}_check";
// TODO: Use health check from AspNetCore.Diagnostics.HealthChecks once it's implemented via this issue:
// https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/issues/2214
builder.Services.AddHealthChecks()
.Add(new HealthCheckRegistration(
healthCheckKey,
sp => new MilvusHealthCheck(milvusClient!),
failureStatus: default,
tags: default,
timeout: default));

return builder.AddResource(milvus)
.WithImage(MilvusContainerImageTags.Image, MilvusContainerImageTags.Tag)
.WithImageRegistry(MilvusContainerImageTags.Registry)
Expand All @@ -93,8 +70,7 @@
{
ctx.EnvironmentVariables["COMMON_SECURITY_DEFAULTROOTPASSWORD"] = milvus.ApiKeyParameter;
})
.WithArgs("milvus", "run", "standalone")
.WithHealthCheck(healthCheckKey);
.WithArgs("milvus", "run", "standalone");
}

/// <summary>
Expand Down Expand Up @@ -217,7 +193,7 @@
// This will need to be refactored once updated service discovery APIs are available
context.EnvironmentVariables.Add("MILVUS_URL", $"{resource.PrimaryEndpoint.Scheme}://{resource.Name}:{resource.PrimaryEndpoint.TargetPort}");
}
internal static MilvusClient CreateMilvusClient(IServiceProvider sp, string? connectionString)

Check failure on line 196 in src/Aspire.Hosting.Milvus/MilvusBuilderExtensions.cs

View check run for this annotation

Azure Pipelines / dotnet.aspire (Build Linux)

src/Aspire.Hosting.Milvus/MilvusBuilderExtensions.cs#L196

src/Aspire.Hosting.Milvus/MilvusBuilderExtensions.cs(196,21): error CS0246: (NETCORE_ENGINEERING_TELEMETRY=Build) The type or namespace name 'MilvusClient' could not be found (are you missing a using directive or an assembly reference?)

Check failure on line 196 in src/Aspire.Hosting.Milvus/MilvusBuilderExtensions.cs

View check run for this annotation

Azure Pipelines / dotnet.aspire (Build Linux_helix_tests)

src/Aspire.Hosting.Milvus/MilvusBuilderExtensions.cs#L196

src/Aspire.Hosting.Milvus/MilvusBuilderExtensions.cs(196,21): error CS0246: (NETCORE_ENGINEERING_TELEMETRY=Build) The type or namespace name 'MilvusClient' could not be found (are you missing a using directive or an assembly reference?)

Check failure on line 196 in src/Aspire.Hosting.Milvus/MilvusBuilderExtensions.cs

View check run for this annotation

Azure Pipelines / dotnet.aspire

src/Aspire.Hosting.Milvus/MilvusBuilderExtensions.cs#L196

src/Aspire.Hosting.Milvus/MilvusBuilderExtensions.cs(196,21): error CS0246: (NETCORE_ENGINEERING_TELEMETRY=Build) The type or namespace name 'MilvusClient' could not be found (are you missing a using directive or an assembly reference?)

Check failure on line 196 in src/Aspire.Hosting.Milvus/MilvusBuilderExtensions.cs

View check run for this annotation

Azure Pipelines / dotnet.aspire

src/Aspire.Hosting.Milvus/MilvusBuilderExtensions.cs#L196

src/Aspire.Hosting.Milvus/MilvusBuilderExtensions.cs(196,21): error CS0246: (NETCORE_ENGINEERING_TELEMETRY=Build) The type or namespace name 'MilvusClient' could not be found (are you missing a using directive or an assembly reference?)
{
if (connectionString is null)
{
Expand Down
42 changes: 0 additions & 42 deletions tests/Aspire.Hosting.Milvus.Tests/MilvusFunctionalTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,9 @@
// The .NET Foundation licenses this file to you under the MIT license.

using Aspire.Components.Common.Tests;
using Aspire.Hosting.ApplicationModel;
using Aspire.Hosting.Tests.Utils;
using Aspire.Hosting.Utils;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Diagnostics.HealthChecks;
using Microsoft.Extensions.Hosting;
using Milvus.Client;
using Xunit;
Expand Down Expand Up @@ -201,44 +199,4 @@ public async Task WithDataShouldPersistStateBetweenUsages(bool useVolume)
}
}
}

[Fact]
[RequiresDocker]
public async Task VerifyWaitForOnMilvusBlocksDependentResources()
{
var cts = new CancellationTokenSource(TimeSpan.FromMinutes(3));
using var builder = TestDistributedApplicationBuilder.CreateWithTestContainerRegistry(testOutputHelper);

var healthCheckTcs = new TaskCompletionSource<HealthCheckResult>();
builder.Services.AddHealthChecks().AddAsyncCheck("blocking_check", () =>
{
return healthCheckTcs.Task;
});

var resource = builder.AddMilvus("resource")
.WithHealthCheck("blocking_check");

var dependentResource = builder.AddMilvus("dependentresource")
.WaitFor(resource);

using var app = builder.Build();

var pendingStart = app.StartAsync(cts.Token);

var rns = app.Services.GetRequiredService<ResourceNotificationService>();

await rns.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running, cts.Token);

await rns.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting, cts.Token);

healthCheckTcs.SetResult(HealthCheckResult.Healthy());

await rns.WaitForResourceHealthyAsync(resource.Resource.Name, cts.Token);

await rns.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running, cts.Token);

await pendingStart;

await app.StopAsync();
}
}
Loading