13 implementations of Name
Aspire.Hosting (1)
Aspire.Hosting.Azure.EventHubs (1)
Aspire.Hosting.Azure.PostgreSQL (1)
Aspire.Hosting.Azure.Redis (1)
Aspire.Hosting.Azure.Storage (1)
Aspire.Hosting.CodeGeneration.Python.Tests (2)
Aspire.Hosting.Tests (4)
Aspire.Hosting.Yarp.Tests (2)
1049 references to Name
Aspire.Hosting (329)
ApplicationModel\RequiredCommandValidator.cs (5)
58throw new InvalidOperationException($"Required command on resource '{resource.Name}' cannot be null or empty.");
71_logger.LogWarning("Resource '{ResourceName}' may fail to start: {Message}", resource.Name, state.ErrorMessage);
78_logger.LogDebug("Required command '{Command}' for resource '{ResourceName}' already validated, resolved to '{ResolvedPath}'.", command, resource.Name, state.ResolvedPath);
118_logger.LogWarning("{Message}", string.Format(CultureInfo.CurrentCulture, MessageStrings.ResourceMayFailToStart, resource.Name, message));
147_logger.LogDebug("Required command '{Command}' for resource '{ResourceName}' resolved to '{ResolvedPath}'.", command, resource.Name, resolved);
ApplicationModel\ResourceExtensions.cs (19)
667logger.LogInformation("Waiting for value from resource '{ResourceName}'", providerResource.Name);
671logger.LogInformation("Waiting for value for environment variable value '{Name}' from resource '{ResourceName}'", key, providerResource.Name);
676logger.LogInformation("Waiting for value for connection string from resource '{ResourceName}'", cs.Name);
683endpointReference.Resource.Name,
1081var computeEnvironmentNames = string.Join(", ", annotations.Select(a => a.ComputeEnvironment?.Name));
1082throw new InvalidOperationException($"Resource '{resource.Name}' has multiple compute environments - '{computeEnvironmentNames}'. Please specify a single compute environment using 'WithComputeEnvironment'.");
1117throw new InvalidOperationException($"A circular lifetime reference was detected for resource '{resource.Name}'.");
1128: throw new InvalidOperationException($"Resource '{resource.Name}' has a resource persistence mode but no source resource."),
1178throw new InvalidOperationException($"A circular lifetime reference was detected for resource '{resource.Name}'.");
1190throw new InvalidOperationException($"Resource '{resource.Name}' has a parent process persistence mode but no parent process identity.");
1194: throw new InvalidOperationException($"Resource '{resource.Name}' has a resource persistence mode but no source resource.");
1257throw new InvalidOperationException($"Resource '{resource.Name}' has no resolved names.");
1261throw new InvalidOperationException($"Resource '{resource.Name}' has multiple resolved names: {string.Join(", ", names)}.");
1274return resource.GetReplicaCount() > 1 ? resourceId : resource.Name;
1308return [resource.Name];
1325RemoteImageName = resource.Name.ToLowerInvariant(),
1385var registryNames = string.Join(", ", registryTargetAnnotations.Select(a => a.Registry is IResource res ? res.Name : a.Registry.ToString()));
1387$"Resource '{resource.Name}' has multiple container registries available - '{registryNames}'. " +
1391throw new InvalidOperationException($"Resource '{resource.Name}' does not have a container registry reference.");
ApplicationModel\ResourceNotificationService.cs (21)
156dependency.Name,
166dependency.Name,
249if (appModel is not null && !appModel.Resources.Any(r => string.Equals(r.Name, resourceName, StringComparisons.ResourceName)))
307resourceLogger.LogInformation("Waiting for resource '{ResourceName}' to complete.", dependency.Name);
311var displayName = names.Length > 1 ? names[i] : dependency.Name;
328dependency.Name,
342throw new DistributedApplicationException($"Resource '{resource.Name}' stopped waiting for dependency resource '{displayName}' because it failed to start.");
355$"Resource '{resource.Name}' stopped waiting for dependency resource '{displayName}' because it entered the '{snapshot.State.Text}' state with exit code '{snapshot.ExitCode}', expected '{exitCode}'."
376resourceLogger.LogInformation("Waiting for resource '{ResourceName}' to enter the '{State}' state.", dependency.Name, KnownResourceStates.Running);
383var displayName = names.Length > 1 ? names[i] : dependency.Name;
392dependency.Name,
408throw new DistributedApplicationException($"Resource '{resource.Name}' stopped waiting for dependency resource '{displayName}' because it failed to start.");
421$"Resource '{resource.Name}' stopped waiting for dependency resource '{displayName}' because it entered the '{snapshot.State.Text}' state prematurely."
585$"Resource '{resource.Name}' failed to wait for dependencies before the operation was cancelled.",
586resource.Name);
674if (!string.Equals(resourceName, resourceEvent.Resource.Name, StringComparisons.ResourceName))
733foreach (var matchingResource in _resourceNotificationStates.Where(s => string.Equals(s.Value.Resource.Name, resourceId, StringComparisons.ResourceName)))
875_logger.LogTrace("Resource {ResourceName}/{ResourceId} update skipped because the snapshot is unchanged.", resource.Name, resourceId);
896_logger.LogDebug("Resource {ResourceName}/{ResourceId} changed state: {PreviousState} -> {NewState}", resource.Name, resourceId, previousStateText, newStateText);
901_logger.LogDebug("Resource {ResourceName}/{ResourceId} changed state: {NewState}", resource.Name, resourceId, newStateText);
925resource.Name,
Backchannel\AuxiliaryBackchannelRpcTarget.cs (11)
438var resource = appModel.Resources.FirstOrDefault(r => string.Equals(r.Name, request.ResourceName, StringComparisons.ResourceName));
603resource.Name,
609ResourceName = resource.Name,
610DisplayName = resource.Name,
786var matchingResource = appModel.Resources.SingleOrDefault(resource => string.Equals(resource.Name, requestedResourceName, StringComparisons.ResourceName));
807resolvedMatches[0].ResolvedResourceNames.Length == 1 ? resolvedMatches[0].Resource.Name : requestedResourceName,
822? matchingResource.Resource.Name
831|| (ResourceName is not null && string.Equals(resourceEvent.Resource.Name, ResourceName, StringComparisons.ResourceName));
1188DisplayName = resource.Name,
1788.FirstOrDefault(r => string.Equals(r.Name, resourceName, StringComparisons.ResourceName));
1989if (string.Equals(resource.Name, resourceName, StringComparisons.ResourceName))
Dcp\ContainerCreator.cs (17)
169_ => throw new InvalidOperationException($"Unknown pull policy '{Enum.GetName(typeof(ImagePullPolicy), pullPolicy)}' for container '{container.Name}'")
173ctr.Annotate(CustomResource.ResourceNameAnnotation, container.Name);
174ctr.Annotate(CustomResource.OtelServiceNameAnnotation, container.Name);
190.Prepend($"{container.Name}.dev.internal")
191.Prepend(container.Name)
228if (IsContainerTunnelContainerName(container.Name))
230throw new DistributedApplicationException($"Container resource name '{container.Name}' conflicts with the Aspire container tunnel container name '{ContainerTunnelContainerName}'. Rename the resource or disable the Aspire container tunnel.");
236throw new DistributedApplicationException($"Container resource '{container.Name}' uses container name '{containerNameAnnotation.Name}', which conflicts with the Aspire container tunnel container name '{ContainerTunnelContainerName}'. Rename the container or disable the Aspire container tunnel.");
243throw new DistributedApplicationException($"Container resource '{container.Name}' uses network alias '{aliasAnnotation.Alias}', which conflicts with the Aspire container tunnel container name '{ContainerTunnelContainerName}'. Rename the alias or disable the Aspire container tunnel.");
322throw new FailedToApplyEnvironmentException($"Failed to apply configuration to container {cr.ModelResource.Name}", configuration.Exception);
382modelContainer.Name);
433resourceLogger.LogWarning("Host endpoint '{EndpointName}' on resource '{HostResource}' is referenced by a container resource, but the endpoint is using a network protocol '{Protocol}' other than TCP. Only TCP is supported for container-to-host references.", endpoint.Name, re.Resource.Name, endpoint.Protocol);
442StringComparers.ResourceName.Equals(swr.ModelResource.Name, re.Resource.Name) &&
447throw new InvalidDataException($"Host endpoint '{endpoint.Name}' on resource '{re.Resource.Name}' should have an associated DCP Service resource already set up");
463svc.Annotate(CustomResource.ResourceNameAnnotation, re.Resource.Name);
916_logger.LogDebug(ex, "Failed to apply argument value '{ArgKey}' to '{ResourceName}'. A dependency may have failed to start.", a, modelResource.Name);
Dcp\DcpExecutor.cs (15)
696_logger.LogWarning("Encountered the same service-endpoint combination more than once for {EndpointName} on resource {ResourceName} when creating default endpoint services. This should never happen.", endpoint.Name, sp.ModelResource.Name);
725svc.Annotate(CustomResource.ResourceNameAnnotation, sp.ModelResource.Name);
864_logger.LogDebug("Using persisted public port {Port} for proxyless endpoint '{EndpointName}' on persistent resource '{ResourceName}'.", persistedPort, endpoint.Name, resource.Name);
869_logger.LogDebug("Allocated public port {Port} for proxyless endpoint '{EndpointName}' on resource '{ResourceName}'.", publicPort, endpoint.Name, resource.Name);
876_logger.LogWarning("Failed to persist public port {Port} for proxyless endpoint '{EndpointName}' on persistent resource '{ResourceName}'. Enable user secrets, set a fixed public port, or configure the endpoint to use a proxy to avoid recreating the persistent resource each run.", publicPort, endpoint.Name, resource.Name);
918_logger.LogDebug("Ignoring invalid persisted public port value '{Port}' for proxyless endpoint '{EndpointName}' on persistent resource '{ResourceName}'.", configuredPort, endpoint.Name, resource.Name);
926return $"Resources:{resource.Name}:{endpoint.Name}:port";
1069resourceLogger.LogError(ex, "Failed to create resource {ResourceName}", modelResource.Name);
1111resourceLogger.LogError(ex, "Failed to create resource {ResourceName}", er.ModelResource.Name);
1134throw new DistributedApplicationException($"Couldn't find required {nameof(DcpInstancesAnnotation)} annotation on resource {resource.Name}.");
1145throw new DistributedApplicationException($"Couldn't find required instance ID for index {instanceIndex} on resource {resource.Name}.");
1317_logger.LogError(ex, "Failed to start resource {ResourceName}", resourceReference.ModelResource.Name);
1417_connectionStringsAdvertised.Remove(resource.Name);
1425if (!_endpointsAdvertised.Add(resource.Name))
1445if (!_connectionStringsAdvertised.Add(resource.Name))
Health\ResourceHealthCheckService.cs (13)
31var resourceName = resourceEvent.Resource.Name;
127logger.LogDebug("Resource '{ResourceName}' has no health checks to monitor.", resource.Name);
134logger.LogDebug("Resource '{ResourceName}' health checks to monitor: {HeathCheckKeys}", resource.Name, string.Join(", ", registrationKeysToCheck));
173logger.LogTrace("Health report status for '{ResourceName}' is {HealthReportStatus}.", resource.Name, report.Status);
193logger.LogTrace("Health reports for '{ResourceName}' have changed.", resource.Name);
216resource.Name
228logger.LogTrace("Resource '{ResourceName}' health check monitoring loop starting delay of {DelayInterval}.", resource.Name, delayInterval);
257logger.LogDebug("Resource '{ResourceName}' is ready.", resource.Name);
264logger.LogDebug("Publishing ResourceReadyEvent for '{ResourceName}'.", resource.Name);
269logger.LogDebug("Waiting for ResourceReadyEvent for '{ResourceName}'.", resource.Name);
274logger.LogDebug("ResourceReadyEvent for '{ResourceName}' completed.", resource.Name);
276logger.LogDebug("Publishing the result of ResourceReadyEvent for '{ResourceName}'.", resource.Name);
333_resourceName = initialEvent.Resource.Name;
Orchestrator\ApplicationOrchestrator.cs (21)
100_logger.LogWarning(ex, "Failed to resolve connection property {ConnectionPropertyName} for resource {ResourceName}.", property.Key, resourceWithConnectionString.Name);
154@event.Resource.Name,
326_logger.LogTrace("Setting primary launch profile endpoint to '{EndpointName}' for resource '{ResourceName}'.", endpoint.Name, resource.Name);
392Url = $"{allocatedEndpoint.UriScheme}://{resource.Name.ToLowerInvariant()}-{subdomainSuffix}.dev.localhost:{allocatedEndpoint.Port}",
418_logger.LogTrace("Added URL '{Url}' for endpoint '{EndpointName}' on resource '{ResourceName}'.", url.Url, endpoint.Name, resource.Name);
425_logger.LogTrace("Added additional URL '{Url}' for endpoint '{EndpointName}' on resource '{ResourceName}'.", additionalUrl.Url, endpoint.Name, resource.Name);
439_logger.LogTrace("Added static URL '{Url}' for resource '{ResourceName}'.", staticUrl.Url, resource.Name);
452_logger.LogTrace("Running {CallbackCount} URL callbacks for resource '{ResourceName}'.", callbacks.Count(), resource.Name);
463_logger.LogTrace("Invoking URL callback '{CallbackIndex}' for resource '{ResourceName}'.", index, resource.Name);
468_logger.LogTrace("{UrlCount} URLs after callback '{CallbackIndex}' for resource '{ResourceName}'.", urlsCallbackContext.Urls.Count, index, resource.Name);
474_logger.LogTrace("{UrlCount} URLs after calling '{CallbackIndex}' callback(s) for resource '{ResourceName}'.", urls.Count, index, resource.Name);
494_logger.LogTrace("Applying path '{Path}' from URL '{Url}' for primary launch profile endpoint '{EndpointName}' to other launch profile endpoints for resource '{ResourceName}'.", primaryPath, primaryUrl.Url, primaryLaunchProfileEndpoint.Name, resource.Name);
504_logger.LogTrace("Updating URL '{Url}' with path '{Path}' for launch profile endpoint '{EndpointName}' for resource '{ResourceName}'.", url.Url, primaryPath, url.Endpoint.EndpointName, resource.Name);
510_logger.LogTrace("Updated URL to '{Url}' for launch profile endpoint '{EndpointName}' on resource '{ResourceName}'.", url.Url, url.Endpoint.EndpointName, resource.Name);
519_logger.LogTrace("URL '{Url}' for primary launch profile endpoint '{EndpointName}' for resource '{ResourceName}' does not have a path to apply to other launch profile endpoints.", primaryUrl.Url, primaryLaunchProfileEndpoint.Name, resource.Name);
527_logger.LogTrace("Could not find URL for primary launch profile endpoint '{EndpointName}' for resource '{ResourceName}'.", primaryLaunchProfileEndpoint.Name, resource.Name);
535_logger.LogTrace("Converting relative endpoint URLs to absolute URLs for resource '{ResourceName}'.", resource.Name);
546_logger.LogTrace("Converted relative URL to absolute URL '{Url}' for endpoint '{EndpointName}' on resource '{ResourceName}'.", url.Url, endpoint.EndpointName, resource.Name);
560_logger.LogTrace("Added URL annotation '{Url}' to resource '{ResourceName}'.", url.Url, resource.Name);
565_logger.LogTrace("Added total of {UrlCount} URLs to resource '{ResourceName}'", count, resource.Name);
571resourceLogger.LogError(ex, "An error occurred while processing URLs for resource '{ResourceName}': {Message}", resource.Name, ex.Message);
Pipelines\DistributedApplicationPipeline.cs (12)
254$"Resource '{resource.Name}' has Destination set to Archive but OutputPath is not configured. " +
280var registryNames = string.Join(", ", registryTargetAnnotations.Select(a => a.Registry is IResource res ? res.Name : a.Registry.ToString()));
282$"Resource '{resource.Name}' requires image push but has multiple container registries available - '{registryNames}'. " +
290$"Resource '{resource.Name}' requires image push but no container registry is available. " +
405var resourceNames = string.Join("', '", unboundResources.Select(resource => resource.Name));
406var environmentNames = string.Join("', '", computeEnvironments.Select(environment => environment.Name));
434if (!string.Equals(resource.Name, annotation.Source.Name, StringComparison.OrdinalIgnoreCase))
436consumedBuildOnlyContainerNames.Add(annotation.Source.Name);
442.Where(resource => !consumedBuildOnlyContainerNames.Contains(resource.Name))
447var resourceNames = string.Join("', '", unconsumedBuildOnlyContainers.Select(resource => resource.Name));
1240sb.AppendLine(CultureInfo.InvariantCulture, $" Resource: {step.Resource.Name} ({step.Resource.GetType().Name})");
Publishing\ResourceContainerImageManager.cs (13)
190LocalImageName = resource.Name,
243logger.LogInformation("Building container image for resource {ResourceName}", resource.Name);
277throw new InvalidOperationException($"The container image name for resource '{resource.Name}' could not be determined.");
292logger.LogDebug("Resource {ResourceName} already has a container image associated and no build annotation. Skipping build.", resource.Name);
297throw new NotSupportedException($"The resource '{resource.Name}' of type '{resource.GetType().Name}' is not supported.");
307logger.LogInformation("Building image: {ResourceName}", resource.Name);
311logger.LogInformation("Building image for {ResourceName} completed", resource.Name);
319logger.LogError(ex, "Building image for {ResourceName} failed", resource.Name);
333throw new DistributedApplicationException($"The resource '{resource.Name}' does not have a project metadata annotation.");
421$"Failed to build container image for resource '{resource.Name}' from project '{projectMetadata.ProjectPath}' with exit code {processResult.ExitCode}.",
455logger.LogInformation("Building image: {ResourceName}", resource.Name);
511logger.LogInformation("Building image for {ResourceName} completed", resource.Name);
515logger.LogError(ex, "Failed to build container image from Dockerfile for {ResourceName}", resource.Name);
Aspire.Hosting.Azure (38)
AzureProvisioningController.cs (26)
1100.Select(static resource => resource.Resource.Name)
1238string.Equals(resource.Resource.Name, resourceName, StringComparisons.ResourceName) ||
1239string.Equals(resource.AzureResource.Name, resourceName, StringComparisons.ResourceName));
1296if (visitedResources.Add(resource.Resource.Name))
1385activeOperation.Operation.ResourceNames.Contains(resource.Resource.Name) ||
1386activeOperation.Operation.ResourceNames.Contains(resource.AzureResource.Name)).ToList();
2196driftedResources.Add(resource.Resource.Name);
2290? [resource.Resource.Name]
2291: new[] { resource.Resource.Name, resource.AzureResource.Name })
2785=> resource.AzureResource is AzureBicepResource bicepResource ? bicepResource.Name : resource.Resource.Name;
2827var resourceName = requiredDeploymentResourceName ?? (targetResources.Count == 1 ? targetResources.Single().Resource.Name : string.Join(", ", targetResources.Select(static resource => resource.Resource.Name)));
3380if (!notificationService.TryGetCurrentState(resource.Name, out var resourceEvent))
3615resource is not AzureEnvironmentResource && !activeOperation.AffectsResource(resource.Name))
3666if (seenNames.Add(resource.Name))
3793if (TryGetPublishedTerminalDeploymentState(resource.Resource.Name, out var publishedTerminalState) ||
3807if (!IsResourceInState(resource.Resource.Name, CancelingState) &&
3926resourceLogger.LogInformation("Skipping {resourceName} because it is not a Bicep resource.", resource.AzureResource.Name);
3935resourceLogger.LogInformation("Skipping {resourceName} because it is not configured to be provisioned.", resource.AzureResource.Name);
3947resourceLogger.LogWarning("Cached Azure deployment state for {resourceName} points to a missing Azure resource. Reprovisioning.", resource.AzureResource.Name);
3963resourceLogger.LogInformation("Using connection information stored in user secrets for {resourceName}.", resource.AzureResource.Name);
3970resourceLogger.LogInformation("Resolving {resourceName} as existing resource...", resource.AzureResource.Name);
3974resourceLogger.LogInformation("Provisioning {resourceName}...", resource.AzureResource.Name);
4011resourceLogger.LogError(ex, "Error provisioning {ResourceName}.", resource.AzureResource.Name);
4012FailProvisioning(resource.AzureResource, new InvalidOperationException($"Unable to provision {resource.AzureResource.Name}.", ex));
Aspire.Hosting.Azure.AppContainers (31)
AzureContainerAppResource.cs (10)
44Name = $"print-{targetResource.Name}-summary",
45Description = $"Prints the deployment summary and URL for {targetResource.Name}.",
51var portalLink = await ContainerAppUrls.GetPortalLinkAsync(containerAppEnv, targetResource.Name.ToLowerInvariant(), ctx.CancellationToken).ConfigureAwait(false);
55var endpoint = $"https://{targetResource.Name.ToLowerInvariant()}.{domainValue}";
58ctx.ReportingStep.Log(LogLevel.Information, new MarkdownString($"Successfully deployed **{targetResource.Name}** to {summaryValue}"));
59ctx.Summary.Add(targetResource.Name, new MarkdownString(summaryValue));
65ctx.ReportingStep.Log(LogLevel.Information, new MarkdownString($"Successfully deployed **{targetResource.Name}** to Azure Container Apps environment **{containerAppEnv.Name}**. {summaryValue}"));
66ctx.Summary.Add(targetResource.Name, new MarkdownString(summaryValue));
75Name = $"deploy-{targetResource.Name}",
76Description = $"Aggregation step for deploying {targetResource.Name} to Azure Container Apps.",
Aspire.Hosting.Azure.AppService (26)
Aspire.Hosting.Azure.ContainerRegistry (2)
Aspire.Hosting.Azure.EventHubs (2)
Aspire.Hosting.Azure.FrontDoor (6)
Aspire.Hosting.Azure.Functions (3)
Aspire.Hosting.Azure.Kubernetes (6)
Aspire.Hosting.Azure.Network (3)
Aspire.Hosting.Azure.Sandboxes (39)
AzureSandboxContainerDeployment.cs (22)
69Description = $"Deploys compute resource '{resource.TargetResource.Name}' to ACA sandbox '{resource.Name}'.",
170$"Azure sandbox resource '{resource.TargetResource.Name}' in sandbox group '{resource.Parent.Name}' references resource '{dependency.Name}' in sandbox group '{producer.Parent.Name}', but cross-group sandbox references are not supported. Deploy both resources to the same sandbox group.");
181$"Azure sandbox resources '{resource.TargetResource.Name}' and '{producer.TargetResource.Name}' have a circular deployment dependency.");
299var diskImageName = CreateSandboxResourceName(targetResource.Name, deployId);
301var diskTask = await context.ReportingStep.CreateTaskAsync($"Creating sandbox disk image for {targetResource.Name}", context.CancellationToken).ConfigureAwait(false);
328var createTask = await context.ReportingStep.CreateTaskAsync($"Creating sandbox for {targetResource.Name}", context.CancellationToken).ConfigureAwait(false);
406stateSection.Data["SourceResourceName"] = targetResource.Name;
501context.Summary.Add(resource.TargetResource.Name, new MarkdownString(CreateSandboxUrlSummary(publicUrl, retainedUrl)));
505context.Summary.Add(resource.TargetResource.Name, new MarkdownString($"Sandbox `{sandboxId}`"));
573["aspire-source"] = resource.TargetResource.Name,
927throw new NotSupportedException($"Resource '{resource.Name}' configures container mounts, but Azure sandbox volume provisioning is not supported by this preview integration.");
980?? throw new InvalidOperationException($"Could not resolve the pushed container image for resource '{resource.TargetResource.Name}'.");
988throw new NotSupportedException($"Resource '{resource.TargetResource.Name}' cannot be deployed to Azure sandbox group '{resource.Parent.Name}' because it does not produce or reference a container image.");
1498$"Endpoint '{resolvedEndpoint.Endpoint.Name}' on project resource '{resource.TargetResource.Name}' is exposed through Azure sandbox ingress, which terminates TLS and forwards plaintext HTTP. " +
1506throw new InvalidOperationException($"Endpoint '{resolvedEndpoint.Endpoint.Name}' on resource '{resource.TargetResource.Name}' does not have a target port. Configure a target port before deploying it to an Azure sandbox.");
1525throw new NotSupportedException($"Endpoint '{resolvedEndpoint.Endpoint.Name}' on resource '{resource.TargetResource.Name}' shares target port {resolvedTargetPort} with endpoint '{existingEndpoint.Name}' but uses a different transport. Azure sandbox ports support a single HTTP protocol per target port.");
1532throw new NotSupportedException($"Endpoint '{resolvedEndpoint.Endpoint.Name}' on resource '{resource.TargetResource.Name}' shares target port {resolvedTargetPort} with endpoint '{existingEndpoint.Name}' but configures a different anonymous-access policy. Azure sandbox ports support a single access policy per target port.");
1550throw new InvalidOperationException($"Resource '{resource.TargetResource.Name}' has Azure sandbox endpoint options for endpoint(s) that are not exposed by EndpointAnnotation: {string.Join(", ", unmatchedEndpointOptions)}.");
1582_ => throw new NotSupportedException($"Endpoint '{endpoint.Name}' on resource '{resource.Name}' uses transport '{endpoint.Transport}'. Azure sandbox ports currently support only HTTP and HTTP/2 endpoints.")
2103stateSection.Data["SourceResourceName"] ??= resource.TargetResource.Name;
Aspire.Hosting.Azure.ServiceBus (1)
Aspire.Hosting.Azure.Tests (61)
AzureSandboxesTests.cs (13)
478var computeResource = Assert.Single(model.GetComputeResources(), resource => resource.Name == "frontend");
481Assert.DoesNotContain(model.Resources, resource => resource.Name == "sandboxes-acr");
2019var computeResource = Assert.Single(model.GetComputeResources(), resource => resource.Name == "frontend");
2185var computeResource = Assert.Single(model.GetComputeResources(), resource => resource.Name == "frontend");
2247var computeResource = Assert.Single(model.GetComputeResources(), resource => resource.Name == "frontend");
2286var computeResource = Assert.Single(model.GetComputeResources(), resource => resource.Name == "frontend");
2310var computeResource = Assert.Single(model.GetComputeResources(), resource => resource.Name == "cache");
2353var computeResource = Assert.Single(model.GetComputeResources(), resource => resource.Name == "frontend");
2354var explicitComputeResource = Assert.Single(model.GetComputeResources(), resource => resource.Name == "backend");
2457var cleanupResource = Assert.Single(model.Resources, resource => resource.Name == "azure-sandbox-cleanup");
2510Assert.Single(model.Resources, resource => resource.Name == "azure-sandbox-cleanup");
2535var computeResource = Assert.Single(model.GetComputeResources(), resource => resource.Name == "frontend");
2792var computeResource = Assert.Single(model.GetComputeResources(), resource => resource.Name == "frontend");
Aspire.Hosting.Blazor (15)
Aspire.Hosting.Blazor.Tests (22)
Aspire.Hosting.Browsers (14)
BrowserLogsBuilderExtensions.cs (6)
132var initialConfiguration = BrowserConfiguration.Resolve(builder.ApplicationBuilder.Configuration, parentResource.Name, explicitConfigurationValues);
134$"{parentResource.Name}-browser-logs",
149Properties = CreateInitialProperties(parentResource.Name, initialConfiguration)
186if (resourceNotifications.TryGetCurrentState(parentResource.Name, out var resourceEvent))
330throw new InvalidOperationException(string.Format(CultureInfo.CurrentCulture, BrowserMessageStrings.BrowserLogsResourceMissingHttpEndpoint, resource.Name));
336throw new InvalidOperationException(string.Format(CultureInfo.CurrentCulture, BrowserMessageStrings.BrowserLogsEndpointNotAllocated, endpointAnnotation.Name, resource.Name));
Aspire.Hosting.Browsers.Tests (18)
src\Aspire.Hosting.Browsers\BrowserLogsBuilderExtensions.cs (6)
132var initialConfiguration = BrowserConfiguration.Resolve(builder.ApplicationBuilder.Configuration, parentResource.Name, explicitConfigurationValues);
134$"{parentResource.Name}-browser-logs",
149Properties = CreateInitialProperties(parentResource.Name, initialConfiguration)
186if (resourceNotifications.TryGetCurrentState(parentResource.Name, out var resourceEvent))
330throw new InvalidOperationException(string.Format(CultureInfo.CurrentCulture, BrowserMessageStrings.BrowserLogsResourceMissingHttpEndpoint, resource.Name));
336throw new InvalidOperationException(string.Format(CultureInfo.CurrentCulture, BrowserMessageStrings.BrowserLogsEndpointNotAllocated, endpointAnnotation.Name, resource.Name));
Aspire.Hosting.Containers.Tests (6)
Aspire.Hosting.DevTunnels (16)
DevTunnelResourceBuilderExtensions.cs (13)
215portLogger.LogInformation("Created dev tunnel port '{Port}' on tunnel '{Tunnel}' targeting endpoint '{Endpoint}' on resource '{TargetResource}'", tunnelPort, portResource.DevTunnel.TunnelId, portResource.TargetEndpoint.EndpointName, portResource.TargetEndpoint.Resource.Name);
483ErrorMessage = $"The dev tunnel '{tunnelResource.Name}' has not been associated with '{endpointName}' on resource '{targetResource.Name}'. Use 'WithReference({targetResource.Name})' on the dev tunnel to expose this endpoint."
528var serviceName = targetResource.Resource.Name;
578throw new ArgumentException($"Target endpoint '{targetEndpoint.EndpointName}' on resource '{targetEndpoint.Resource.Name}' has already been added to dev tunnel '{tunnel.Name}'.", nameof(targetEndpoint));
588throw new ArgumentException($"Cannot tunnel endpoint '{targetEndpointAnnotation.Name}' with host '{targetEndpointAnnotation.TargetHost}' on resource '{targetResource.Name}' because it is not a localhost endpoint.", nameof(targetEndpoint));
600_ => throw new ArgumentException($"Cannot tunnel endpoint '{targetEndpoint.EndpointName}' on resource '{targetResource.Name}' because it uses the unsupported scheme '{targetEndpoint.Scheme}'. Only 'http' and 'https' endpoints can be tunneled."),
602portOptions.Description ??= $"{targetResource.Name}/{targetEndpoint.EndpointName}";
604var portName = $"{tunnel.Name}-{targetResource.Name}-{targetEndpoint.EndpointName}";
606portOptions.Labels.Add(targetResource.Name);
713new(CustomResourceKnownProperties.Source, $"{targetResource.Name}/{targetEndpoint.EndpointName}"),
714new("TargetResource", targetResource.Name),
784portLogger.LogInformation("Forwarding from {PortUrl} to {TargetUrl} ({TargetResourceName}/{TargetEndpointName})", tunnelPortStatus.PortUri.ToString().TrimEnd('/'), portResource.TargetEndpoint.Url, portResource.TargetEndpoint.Resource.Name, portResource.TargetEndpoint.EndpointName);
Aspire.Hosting.Docker (25)
Aspire.Hosting.Docker.Tests (6)
Aspire.Hosting.Dotnet (9)
Aspire.Hosting.EntityFrameworkCore (3)
Aspire.Hosting.EntityFrameworkCore.Tests (1)
Aspire.Hosting.Foundry (26)
Aspire.Hosting.Foundry.Tests (6)
Aspire.Hosting.GitHub.Models.Tests (5)
Aspire.Hosting.Go (4)
Aspire.Hosting.Go.Tests (14)
Aspire.Hosting.Java (1)
Aspire.Hosting.Java.Tests (14)
Aspire.Hosting.JavaScript (2)
Aspire.Hosting.JavaScript.Tests (1)
Aspire.Hosting.Kafka (2)
Aspire.Hosting.Kafka.Tests (1)
Aspire.Hosting.Keycloak.Tests (2)
Aspire.Hosting.Kubernetes (70)
Deployment\HelmDeploymentEngine.cs (5)
529var endpoints = await GetServiceEndpointsAsync(computeResource.Name.ToServiceName(), @namespace, environment.KubeConfigPath, context.Logger, context.CancellationToken).ConfigureAwait(false);
534context.Summary.Add(computeResource.Name, endpointText);
535context.Logger.LogInformation("Resource {ResourceName}: {Endpoints}", computeResource.Name, endpointText);
539context.Logger.LogDebug("No external endpoints found for {ResourceName}", computeResource.Name);
544context.Logger.LogWarning(ex, "Failed to retrieve endpoints for {ResourceName}", computeResource.Name);
KubernetesResource.cs (21)
36Name = $"print-{resource.Name}-summary",
37Description = $"Retrieves deployment status for {resource.Name}.",
164["app.kubernetes.io/component"] = resource.Name,
208var imageEnvName = $"{resourceInstance.Name.ToHelmValuesSectionName()}_image";
209var value = $"{resourceInstance.Name}:latest";
210var expression = new HelmValue(imageEnvName.ToHelmParameterExpression(resource.Name), value)
256EndpointMappings[endpoint.Name] = new(endpoint.UriScheme, GetKubernetesProtocolName(endpoint.Protocol), resource.Name.ToServiceName(), httpMapping.Port, endpoint.Name);
276EndpointMappings[endpoint.Name] = new(endpoint.UriScheme, GetKubernetesProtocolName(endpoint.Protocol), resource.Name.ToServiceName(), HelmValue.Literal(portValue), endpoint.Name, ServicePort: servicePort);
287paramName.ToHelmParameterExpression(resource.Name),
291EndpointMappings[endpoint.Name] = new(endpoint.UriScheme, GetKubernetesProtocolName(endpoint.Protocol), resource.Name.ToServiceName(), helmValue, endpoint.Name);
430ProcessEnvironmentStringValue(stringValue, key, resource.Name);
433ProcessEnvironmentDefaultValue(value, key, resource.Name);
454Secrets[key] = new(key.ToHelmSecretExpression(TargetResource.Name), secretValue);
654var paramExpression = formattedName.ToHelmParameterExpression(TargetResource.Name);
739var resourceKey = TargetResource.Name.ToHelmValuesSectionName();
742$"Resource '{TargetResource.Name}' maps multiple distinct {sourceKind} sources named '{parameter.Name}' " +
806formattedName.ToHelmSecretExpression(resource.Name) :
807formattedName.ToHelmConfigExpression(resource.Name);
829formattedName.ToHelmSecretExpression(resource.Name) :
830formattedName.ToHelmConfigExpression(resource.Name);
873var helmExpression = key.ToHelmConfigExpression(TargetResource.Name);
Aspire.Hosting.Kubernetes.Tests (7)
Aspire.Hosting.Maui (31)
Lifecycle\MauiBuildQueueEventSubscriber.cs (26)
86if (_nextStartSignals.TryGetValue(resource.Name, out var nextStartSignal))
100queueAnnotation.ResourceCancellations[resource.Name] = resourceCts;
123logger.LogInformation("Building project '{ProjectName}' for {ResourceName}.", parent.Name, resource.Name);
152logger.LogInformation("Build cancelled for resource '{ResourceName}'.", resource.Name);
160logger.LogDebug("Released build lock (resource '{ResourceName}').", resource.Name);
163queueAnnotation.ResourceCancellations.TryRemove(resource.Name, out _);
174logger.LogWarning("No build info annotation found for resource '{ResourceName}'. Startup cannot proceed.", resource.Name);
176$"Resource '{resource.Name}' is missing MauiBuildInfoAnnotation. " +
236$"Build for resource '{resource.Name}' timed out after {BuildTimeout:c}.");
253$"Build failed for resource '{resource.Name}' with exit code {process.ExitCode}.");
256logger.LogInformation("Build succeeded for resource '{ResourceName}'.", resource.Name);
325resource.Name,
333resource.Name,
341logger.LogWarning(ex, "Timed out waiting for resource '{ResourceName}' to reach a launch handoff state after {Timeout}; releasing build lock.", resource.Name, LaunchHandoffTimeout);
348logger.LogWarning(ex, "Timed out waiting for Android resource '{ResourceName}' to finish its launch work after {Timeout}; stopping the resource before releasing the build lock.", resource.Name, LaunchHandoffTimeout);
355logger.LogError("Failed to stop Android resource '{ResourceName}' after its launch handoff timed out. Holding the build lock until the launch terminates, a replacement start takes over, or the application stops.", resource.Name);
371logger.LogError(stopException, "Failed to stop Android resource '{ResourceName}' after its launch handoff timed out. The build lock will remain held until the application stops.", resource.Name);
377logger.LogDebug("Application stopping while waiting for MAUI resource '{ResourceName}' to reach a launch handoff state; releasing build lock.", resource.Name);
381logger.LogWarning(ex, "Failed to wait for resource '{ResourceName}' to reach a stable state; releasing build lock.", resource.Name);
386.Remove(new(resource.Name, nextStartSignal));
391logger.LogDebug("Released build lock (resource '{ResourceName}').", resource.Name);
404resource.Name,
542var wasCancelled = !_isLaunchTimeoutStop.Value && queueAnnotation.CancelResource(resource.Name);
559resource.Name,
573if (queueAnnotation.ResourceCancellations.ContainsKey(resource.Name))
597logger.LogDebug(ex, "Failed to override state to Exited for resource '{ResourceName}'.", resource.Name);
Aspire.Hosting.Maui.Tests (26)
Aspire.Hosting.Milvus.Tests (2)
Aspire.Hosting.MySql (2)
Aspire.Hosting.MySql.Tests (4)
Aspire.Hosting.OpenAI.Tests (5)
Aspire.Hosting.Oracle.Tests (3)
Aspire.Hosting.Orleans (4)
Aspire.Hosting.PostgreSQL (2)
Aspire.Hosting.PostgreSQL.Tests (8)
Aspire.Hosting.Qdrant (1)
Aspire.Hosting.Qdrant.Tests (4)
Aspire.Hosting.Radius (19)
Publishing\RadiusInfrastructureBuilder.cs (15)
251var identifier = BicepPostProcessor.SanitizeIdentifier(resource.Name);
259identifier, resource.Name, resourceType, apiVersion,
262typeInstancesByResourceName[resource.Name] = typeInstance;
279var identifier = BicepPostProcessor.SanitizeIdentifier(resource.Name);
282WarnIfImageMayNotPull(resource.Name, image);
292identifier, resource.Name, image, appConstruct!, envConstruct, connectionTargets, env, ports);
295containerPortSnapshots[resource.Name] = ports.ToDictionary(
665if (!seen.Add(resource.Name))
974$"Project resource '{resource.Name}' cannot be published to Radius because no container image " +
985return $"{resource.Name}:latest";
1011if (radiusResources.Any(p => p.Name == referencedResource.Name)
1012&& typeInstancesByResourceName.TryGetValue(referencedResource.Name, out var targetConstruct))
1014connections[referencedResource.Name] = targetConstruct;
1163_logger.LogDebug(ex, "Skipping environment variable '{Key}' on resource '{Resource}': value could not be resolved at publish time.", key, resource.Name);
Aspire.Hosting.Radius.Tests (9)
Aspire.Hosting.Redis.Tests (6)
Aspire.Hosting.RemoteHost.Tests (1)
Aspire.Hosting.Testing.Tests (2)
Aspire.Hosting.Tests (65)
Dashboard\DashboardEventHandlersTests.cs (7)
53var dashboardResource = model.Resources.Single(r => string.Equals(r.Name, KnownResourceNames.AspireDashboard, StringComparisons.ResourceName));
102var dashboardResource = model.Resources.Single(r => string.Equals(r.Name, KnownResourceNames.AspireDashboard, StringComparisons.ResourceName));
194var dashboardResource = model.Resources.Single(r => string.Equals(r.Name, KnownResourceNames.AspireDashboard, StringComparisons.ResourceName));
247var dashboardResource = (IResourceWithEndpoints)model.Resources.Single(r => string.Equals(r.Name, KnownResourceNames.AspireDashboard, StringComparisons.ResourceName));
451var dashboardResource = model.Resources.Single(r => string.Equals(r.Name, KnownResourceNames.AspireDashboard, StringComparisons.ResourceName));
534var dashboardResource = model.Resources.Single(r => string.Equals(r.Name, KnownResourceNames.AspireDashboard, StringComparisons.ResourceName));
609Assert.Equal(KnownResourceNames.AspireDashboard, dashboardResource.Name);
Aspire.Hosting.TestUtilities (5)
Aspire.Hosting.Yarp (5)
Aspire.Playground.Tests (4)
Stress.AppHost (4)