1 implementation of Resource
Aspire.Hosting.Native.Client (1)
Authoring\DistributedApplicationBuilder.cs (1)
193public T Resource { get; } = resource;
63 references to Resource
Aspire.Hosting.Native.Client (22)
Authoring\NativeApplication.cs (2)
286if (!await _execution.WaitResourceCompletionAsync(_context.Declaration(resource.Resource), 60000, operation.Token).ConfigureAwait(false)) 288throw new InvalidOperationException($"The executable '{resource.Resource.Name}' failed.");
Authoring\Publishing.cs (5)
122builder.ApplicationBuilder.Record(context => context.Declaration(builder.Resource) 123.WithComputeEnvironmentAsync(context.Declaration(environment.Resource), context.Token)); 142var declaration = context.Declaration(builder.Resource); 162await context.Declaration(builder.Resource).WithExternalHttpEndpointsAsync(context.Token).ConfigureAwait(false)); 178await context.Declaration(builder.Resource).WithBindMountAsync(source, target, readOnly, context.Token).ConfigureAwait(false));
Authoring\ResourceBuilderExtensions.cs (15)
20context.BindConnection(resource.Resource, connection); 38new(context => context.Parameter(parameter.Resource)); 47resource.ApplicationBuilder.Record(async context => await context.Declaration(resource.Resource) 74resource.ApplicationBuilder.Record(async context => await context.Declaration(resource.Resource) 90resource.ApplicationBuilder.Record(context => context.Declaration(resource.Resource).WithEndpointAsync(new() 103new(resource.Resource, name); 111resource.ApplicationBuilder.Record(context => context.Declaration(resource.Resource).WithEntrypointAsync(entrypoint, context.Token)); 123resource.ApplicationBuilder.Record(context => context.Declaration(resource.Resource).WithVolumeAsync(name, target, false, context.Token)); 137consumer.ApplicationBuilder.Record(async context => await context.Declaration(consumer.Resource) 138.WithReferenceAsync($"ConnectionStrings__{producer.Resource.Name}", 139await context.Value(context.Connection(producer.Resource)).ConfigureAwait(false), context.Token).ConfigureAwait(false)); 153consumer.ApplicationBuilder.Record(context => context.Declaration(consumer.Resource) 154.WaitForAsync(context.Declaration(dependency.Resource), context.Token)); 170await context.Declaration(resource.Resource).SetSymbolicConfigurationAsync($"health.env.{name}", 173await context.Declaration(resource.Resource).WithLifecycleExecutableAsync("health", captured.Launch(),
Aspire.Hosting.Native.Core.Tests (15)
NativeBuilderAuthoringTests.cs (14)
67Assert.Equal(expected, first.GetDefaultDataVolumeName(cache.Resource)); 71Assert.Equal(expected, rerun.GetDefaultDataVolumeName(rerun.AddRedis("cache").WithDataVolume().Resource)); 74Assert.Equal(expected, revision.GetDefaultDataVolumeName(revision.AddRedis("cache").WithDataVolume().Resource)); 79other.GetDefaultDataVolumeName(other.AddRedis("cache").WithDataVolume().Resource)); 82var namedVolume = named.GetDefaultDataVolumeName(named.AddRedis("cache").WithDataVolume().Resource); 96explicitPrefix.GetDefaultDataVolumeName(explicitPrefix.AddRedis("cache").WithDataVolume().Resource)); 127var volume = builder.GetDefaultDataVolumeName(cache.Resource); 171Assert.IsType<RedisContainerResource>(cache.Resource); 172Assert.IsType<ExecutableResource>(consumer.Resource); 177Assert.False(typeof(NativeRemoteObject).IsAssignableFrom(cache.Resource.GetType())); 229var consumerValues = (await bound.Declaration(consumer.Resource).InspectSymbolicConfigurationAsync()).Properties; 232Assert.Empty((await bound.Declaration(waiter.Resource).InspectSymbolicConfigurationAsync()).Properties); 233Assert.True((await bound.Declaration(cache.Resource).InspectSymbolicConfigurationAsync()).Properties 235Assert.Equal("[native reference expression]", cache.Resource.ConnectionStringExpression.ToString());
NativeComposeCSharpTests.cs (1)
191Assert.Equal("compose", target.Parent.Resource.Name);
NativeIntegrations.DockerCompose (22)
DockerComposeBuilderExtensions.cs (20)
36!Strings(context.Model["parameters"]).Contains(parameter.Resource.Name, StringComparer.Ordinal)) 40var variable = ParameterVariable(parameter.Resource.Name); 42if (Objects(parameters).Any(entry => Text(entry, "environmentVariable") == variable && Text(entry, "name") != parameter.Resource.Name)) 46if (!Objects(parameters).Any(entry => Text(entry, "name") == parameter.Resource.Name)) 52parameters.Add(new JsonObject { ["name"] = parameter.Resource.Name, ["environmentVariable"] = variable }); 63public string Name => environment.Resource.Name + "-dashboard"; 70environment.Resource.DashboardHostPort = port; 76environment.Resource.DashboardForwardedHeaders = enabled; 80public Uri PrimaryEndpoint => new($"http://{(environment.Resource.DashboardHostPort is null ? ServiceName(Name) : "127.0.0.1")}:{environment.Resource.DashboardHostPort ?? 18888}"); 92result.WithPublishConfiguration("dockerComposeEnvironment", result.Resource.Configuration); 99state.Targets.Add(result.Resource, target); 142if (!state.ServiceCallbacks.TryGetValue(builder.Resource, out var callbacks)) 144state.ServiceCallbacks.Add(builder.Resource, callbacks = []); 155configure(builder.Resource); 163builder.Resource.DashboardEnabled = enabled; 171builder.Resource.DashboardEnabled = true; 184builder.Resource.FileCallbacks.Add(configure); 193builder.Resource.EnvironmentCallbacks.Add(configure); 203Infrastructure(builder.ApplicationBuilder).Targets[builder.Resource].WithRunner(runner);
DockerComposeEnvironment.cs (2)
103foreach (var configure in _builder!.Resource.FileCallbacks) 166foreach (var configure in _builder.Resource.EnvironmentCallbacks)
NativeIntegrations.DockerCompose.AppHost.Sample (1)
Program.cs (1)
20cache.WithVolume(builder.GetDefaultDataVolumeName(cache.Resource), "/data");
NativeIntegrations.Redis (3)
RedisContainerResource.cs (1)
20string? name = null) => cache.WithVolume(name ?? cache.ApplicationBuilder.GetDefaultDataVolumeName(cache.Resource), "/data");
RedisExtensions.cs (2)
23return new RedisResource(native.Declaration(cache.Resource), 24await native.Value(cache.Resource.ConnectionStringExpression).ConfigureAwait(false));