13 implementations of Name
Aspire.Hosting (1)
ApplicationModel\Resource.cs (1)
17public virtual string Name { get; }
Aspire.Hosting.Azure.EventHubs (1)
AzureEventHubsEmulatorResource.cs (1)
24public override string Name => _innerResource.Name;
Aspire.Hosting.Azure.PostgreSQL (1)
AzurePostgresResource.cs (1)
31public override string Name => _innerResource.Name;
Aspire.Hosting.Azure.Redis (1)
AzureRedisResource.cs (1)
31public override string Name => _innerResource.Name;
Aspire.Hosting.Azure.Storage (1)
AzureStorageEmulatorResource.cs (1)
17public override string Name => _innerResource.Name;
Aspire.Hosting.CodeGeneration.Python.Tests (2)
AtsPythonCodeGeneratorTests.cs (2)
901public string Name => nameof(CollidingAlphaResource); 908public string Name => nameof(CollidingBetaResource);
Aspire.Hosting.Tests (4)
DistributedApplicationBuilderTests.cs (1)
966public string Name => nameof(TestResource);
DistributedApplicationModelExtensionsTests.cs (1)
73public string Name { get; set; } = "CustomResource";
Eventing\DistributedApplicationBuilderEventingTests.cs (1)
533public string Name { get; } = name;
Utils\VolumeNameGeneratorTests.cs (1)
49public string Name { get; } = name;
Aspire.Hosting.Yarp.Tests (2)
AddYarpTests.cs (1)
480public string Name => name;
YarpClusterTests.cs (1)
323public string Name => name;
1049 references to Name
Aspire.Hosting (329)
ApplicationModel\CertificateTrustExecutionConfigurationGatherer.cs (2)
82resourceLogger.LogInformation("No custom certificate authorities to configure for '{ResourceName}'. Default certificate authority trust behavior will be used.", resource.Name); 126resourceLogger.LogInformation("Resource '{ResourceName}' has a certificate trust scope of '{Scope}'. Automatically including system root certificates in the trusted configuration.", resource.Name, Enum.GetName(additionalData.Scope));
ApplicationModel\CommandsConfigurationExtensions.cs (2)
202return new ExecuteCommandResult { Success = false, Message = string.Format(CultureInfo.InvariantCulture, CommandStrings.RebuilderResourceNotFound, projectResource.Name) }; 342return await FinishAsync(new ExecuteCommandResult { Success = true, Message = string.Format(CultureInfo.InvariantCulture, CommandStrings.ResourceRebuilt, projectResource.Name) }).ConfigureAwait(false);
ApplicationModel\ConnectionStringReference.cs (1)
41internal void ThrowConnectionStringUnavailableException() => throw new DistributedApplicationException($"The connection string for the resource '{Resource.Name}' is not available.");
ApplicationModel\ContainerImageReference.cs (2)
32public string ValueExpression => $"{{{Resource.Name}.containerImage}}"; 62var imageName = buildOptionsContext.LocalImageName ?? Resource.Name.ToLowerInvariant();
ApplicationModel\ContainerPortReference.cs (1)
20public string ValueExpression => $"{{{Resource.Name}.containerPort}}";
ApplicationModel\CustomResourceSnapshot.cs (2)
570relationships.Add(new(resourceWithParent.Parent.Name, KnownRelationshipTypes.Parent)); 575relationships.Add(new(annotation.Resource.Name, annotation.Type));
ApplicationModel\DebugSupportExtensions.cs (3)
174$"The launch configuration callback context belongs to resource '{context.Resource.Name}', " + 175$"but launch configuration was requested for resource '{resource.Name}'.", 182$"Resource '{resource.Name}' does not declare debug launch support. " +
ApplicationModel\Docker\ContainerFilesExtensions.cs (4)
38logger?.LogWarning("Cannot get container image name for source resource {SourceName}, skipping", source.Name); 97logger?.LogWarning("Cannot get container image name for source resource {SourceName}, skipping", source.Name); 123private static string GetSourceImageArgName(IResource source) => $"{source.Name.Replace("-", "_").ToUpperInvariant()}_IMAGENAME"; 126private static string GetSourceStageName(IResource source) => $"{source.Name.Replace("-", "_")}_stage";
ApplicationModel\EndpointReference.cs (4)
37return $"The endpoint `{EndpointName}` is not defined for the resource `{Resource.Name}`. The resource has no endpoints defined."; 41return $"The endpoint `{EndpointName}` is not defined for the resource `{Resource.Name}`. Available endpoints: {formattedNames}."; 151string Binding(string prop) => $"{{{Resource.Name}.bindings.{EndpointName}.{prop}}}"; 222?? throw new InvalidOperationException($"The endpoint `{EndpointName}` is not allocated for the resource `{Resource.Name}`.");
ApplicationModel\ExecutableLaunchRecipe.cs (3)
381$"Resource '{context.Resource.Name}' declares \"{debugSupport.LaunchConfigurationType}\" debug launch support (WithDebugSupport) but has no project metadata. " + 416$"Failed to produce launch configuration type '{debugSupport.LaunchConfigurationType}' for resource '{context.Resource.Name}'.", 562context.Resource.Name);
ApplicationModel\ExecutionConfigurationGathererContext.cs (2)
74resourceLogger.LogError(ex, "Failed to resolve environment variable '{EnvironmentVariable}' for resource '{ResourceName}'. A dependency may have failed to start.", kvp.Key, resource.Name); 123resourceLogger.LogError(ex, "Failed to resolve argument for resource '{ResourceName}'. A dependency may have failed to start.", resource.Name);
ApplicationModel\IResourceCollection.cs (1)
26if (string.Equals(item.Name, name, StringComparisons.ResourceName))
ApplicationModel\IResourceWithConnectionString.cs (1)
19string IManifestExpressionProvider.ValueExpression => $"{{{Name}.connectionString}}";
ApplicationModel\ProjectLaunchConfigurationFactory.cs (1)
19$"Resource '{resource.Name}' cannot produce a \"{KnownLaunchConfigurationTypes.Project}\" launch configuration because it has no project metadata. " +
ApplicationModel\ProjectLaunchDefaultsAnnotation.cs (1)
64$"Resource '{resource.Name}' project metadata was replaced after project defaults were applied. " +
ApplicationModel\ProjectResourceExtensions.cs (2)
51throw new InvalidOperationException($"Resource '{projectResource.Name}' does not carry an {nameof(IProjectMetadata)} annotation."); 66$"Resource '{projectResource.Name}' carries more than one {nameof(IProjectMetadata)} annotation. " +
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\ResourceCollection.cs (14)
23if (!_resourcesByName.TryAdd(resource.Name, resource)) 25ThrowDuplicateResource(resource, _resourcesByName[resource.Name]); 40if (!StringComparers.ResourceName.Equals(old.Name, value.Name) && 41_resourcesByName.TryGetValue(value.Name, out var existing)) 47_resourcesByName.Remove(old.Name); 48_resourcesByName[value.Name] = value; 57if (!_resourcesByName.TryAdd(item.Name, item)) 59ThrowDuplicateResource(item, _resourcesByName[item.Name]); 78if (!_resourcesByName.TryAdd(item.Name, item)) 80ThrowDuplicateResource(item, _resourcesByName[item.Name]); 90_resourcesByName.Remove(item.Name); 101_resourcesByName.Remove(item.Name); 120throw new DistributedApplicationException($"Cannot add resource of type '{newResource.GetType()}' with name '{newResource.Name}' because resource of type '{existingResource.GetType()}' with that name already exists. Resource names are case-insensitive.");
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,
ApplicationModel\VolumeMountBindingAnnotation.cs (3)
84$"Volume '{VolumeName}' on resource '{context.Resource.Name}' does not declare a mount path."); 144$"Resource '{context.Resource.Name}' binds volume '{VolumeName}' to environment variable " + 145$"'{EnvironmentVariableName}', but compute environment '{environment.Name}' does not support volume " +
Ats\CoreExports.cs (1)
177return resource.Resource.Name;
Ats\ModelExports.cs (1)
52return model.Resources.SingleOrDefault(resource => StringComparers.ResourceName.Equals(resource.Name, name));
Ats\NotificationExports.cs (1)
153ResourceName = resourceEvent.Resource.Name,
Backchannel\AppHostRpcTarget.cs (4)
127if (string.Equals(resourceEvent.Resource.Name, KnownResourceNames.AspireDashboard, StringComparisons.ResourceName)) 135logger.LogTrace("Resource {ResourceName} does not have endpoints.", resourceEvent.Resource.Name); 149Resource = resourceEvent.Resource.Name, 334ResourceName = step.Resource?.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))
Backchannel\DashboardUrlsHelper.cs (1)
39r => string.Equals(r.Name, KnownResourceNames.AspireDashboard, StringComparisons.ResourceName)) as IResourceWithEndpoints;
BuiltInDistributedApplicationEventSubscriptionHandlers.cs (2)
48if (beforeStartEvent.Model.Resources.SingleOrDefault(r => string.Equals(r.Name, KnownResourceNames.AspireDashboard, StringComparisons.ResourceName)) is { } dashboardResource) 103logger.LogWarning(MessageStrings.PersistentContainerWithoutUserSecrets, resource.Name);
ConnectionStringBuilderExtensions.cs (2)
62if (resourceNames.Add(resource.Name)) 72if (resourceNames.Add(innerRef.Name))
ContainerResourceBuilderExtensions.cs (4)
699context.LocalImageName = dockerfileAnnotation.ImageName ?? context.Resource.Name; 704context.LocalImageName = context.Resource.Name; 852context.LocalImageName = dockerfileAnnotation.ImageName ?? context.Resource.Name; 857context.LocalImageName = context.Resource.Name;
Dashboard\DashboardEventHandlers.cs (3)
65if (@event.Model.Resources.SingleOrDefault(r => string.Equals(r.Name, KnownResourceNames.AspireDashboard, StringComparisons.ResourceName)) is { } dashboardResource) 866.Where(r => !string.Equals(r.Name, KnownResourceNames.AspireDashboard, StringComparisons.ResourceName)) 914if (string.Equals(notification.Resource.Name, KnownResourceNames.AspireDashboard, StringComparisons.ResourceName) && !dashboardResourceTasks.ContainsKey(notification.ResourceId))
Dashboard\DashboardServiceData.cs (2)
77DisplayName = resource.Name, 112logger.LogError(ex, "Error updating resource snapshot for {Name}", @event.Resource.Name);
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))
Dcp\DcpModelUtilities.cs (5)
33var modelResourceName = modelResource.Name ?? "(unknown)"; 57var modelResourceName = modelResource.Name ?? "(unknown)"; 237$"{sp.ModelResource.Name}.dev.internal", 291string.Equals(ts.ResourceName, res.Name, StringComparisons.ResourceName) && 310string.Equals(swr.ModelResource.Name, ts.ResourceName, StringComparisons.ResourceName) &&
Dcp\DcpNameGenerator.cs (3)
81throw new InvalidOperationException($"Resource '{resource.Name}' uses multiple replicas and a persistent lifetime. These features do not work together."); 173return maybeWithSuffix(resource.Name, suffix, options.ResourceNameSuffix); 177=> $"{resource.Name}|{endpoint.Name}|{targetNetworkId.Value}";
Dcp\DcpResourceWatcher.cs (5)
101_resourceState = new(model.Resources.ToDictionary(r => r.Name), appResources.Get()); 301_logger.LogTrace("Deleting application model resource {AppResourceName} with {ResourceKind} resource {DcpResourceName}", appModelResource.Name, resourceKind, resource.Metadata.Name); 308_logger.LogTrace("Updating application model resource {AppResourceName} with {ResourceKind} resource {DcpResourceName}", appModelResource.Name, resourceKind, resource.Metadata.Name); 902StringComparers.ResourceName.Equals(e.Resource.Name, endpointOwnerResourceName) && 912StringComparers.ResourceName.Equals(reference.ModelResource.Name, resourceName))
Dcp\ExecutableCreator.cs (9)
64$"Failed to apply configuration to executable {renderedResource.ModelResource.Name}", 92$"Failed to apply launch configuration for resource '{renderedResource.ModelResource.Name}'. " + 102$"Failed to create executable launch plan for resource '{renderedResource.ModelResource.Name}'. " + 130$"Resource '{resource.Name}' must have exactly one executable launch recipe, but {recipes.Length} were found."); 147$"The executable launch recipe for resource '{resource.Name}' returned a {plan.Mechanism} plan after {decision.Mechanism} was selected."); 153$"The executable launch recipe for resource '{resource.Name}' selected IDE execution without producing a launch configuration."); 257executable.Annotate(CustomResource.OtelServiceNameAnnotation, resource.Name); 259executable.Annotate(CustomResource.ResourceNameAnnotation, resource.Name); 317resource.Name);
Dcp\ResourceSnapshotBuilder.cs (3)
312&& u.Endpoint?.Resource.Name == appModelResource.Name) 343var endpointOwnerResourceName = endpointUrl.Endpoint!.Resource.Name;
Devcontainers\DevcontainerPortForwardingEventingSubscriber.cs (1)
47$"{@event.Resource.Name}-{endpoint.Name}");
Diagnostics\ProfilingTelemetry.cs (4)
424var activity = StartActivity(configuration, $"{Activities.ResourceStartup} {resource.Name}", ActivityKind.Internal, startTime); 997SetTag(Tags.ResourceWaitDependencyName, dependency.Name); 1019SetTag(Tags.ResourceName, resource.Name); 1101[Tags.ResourceName] = resourceEvent.Resource.Name,
DistributedApplication.cs (1)
851var value = $@"Type = {Resource.GetType().Name}, Name = ""{Resource.Name}"", State = {Snapshot?.State?.Text ?? "(null)"}";
DistributedApplicationBuilder.cs (3)
687missingResourceHealthCheck.Resource.Name); 861foreach (var duplicateResourceName in Resources.GroupBy(r => r.Name, StringComparers.ResourceName) 969ModelName.ValidateName(nameof(Aspire.Hosting.ApplicationModel.Resource), resource.Name, policy.MaxLength, policy.ValidateStartsWithLetter, policy.ValidateAllowedCharacters, policy.ValidateNoConsecutiveHyphens, policy.ValidateNoTrailingHyphen);
DistributedApplicationBuilderExtensions.cs (2)
67var resource = builder.Resources.FirstOrDefault(r => string.Equals(r.Name, name, StringComparison.OrdinalIgnoreCase)); 100var resource = builder.Resources.FirstOrDefault(r => string.Equals(r.Name, name, StringComparison.OrdinalIgnoreCase));
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;
Lifecycle\TerminalHostEventingSubscriber.cs (3)
75host.Parent.Name, host.ParentReplicaIndex); 84host.Parent.Name, host.ParentReplicaIndex); 107host.Parent.Name,
Lifecycle\TerminalHostFailureDiagnosticService.cs (1)
127host.Parent.Name,
McpServerResourceBuilderExtensions.cs (2)
63$"Could not create MCP server for resource '{resource.Name}' as no endpoint was found with name '{endpointName}'."); 80$"Could not create MCP server for resource '{resource.Name}' as no endpoint was found matching one of the specified names: {string.Join(", ", s_httpSchemes)}");
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);
ParameterResourceBuilderExtensions.cs (1)
387var parameter = new ParameterResource(builder.Resource.Name, _ => "", secret: true);
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})");
Pipelines\PipelineOutputService.cs (2)
80return Path.Combine(baseOutputDir, resource.Name); 95return Path.Combine(baseTempDir, resource.Name);
Pipelines\PipelineStepHelpers.cs (10)
43resource.Name, buildOptionsContext.Destination); 69new MarkdownString($"Tagging **{resource.Name}** for local use"), 78throw new InvalidOperationException($"Failed to get target tag for {resource.Name}"); 84: resource.Name.ToLowerInvariant(); 91new MarkdownString($"Successfully tagged **{resource.Name}** as `{targetTag}`"), 98new MarkdownString($"Failed to tag **{resource.Name}**: {ex.Message}"), 115new MarkdownString($"Pushing **{resource.Name}** to **{registryName}**"), 124throw new InvalidOperationException($"Failed to get target tag for {resource.Name}"); 131new MarkdownString($"Successfully pushed **{resource.Name}** to `{targetTag}`"), 138new MarkdownString($"Failed to push **{resource.Name}**: {ex.Message}"),
ProjectResourceBuilderExtensions.cs (3)
502$"Project defaults have already been applied to resource '{builder.Resource.Name}'. " + 551if (!string.Equals(builder.Resource.Name, KnownResourceNames.AspireDashboard, StringComparisons.ResourceName)) 1069var rebuilderName = $"{projectResource.Name}-rebuilder";
Publishing\ContainerRuntimeBase.cs (1)
83: resource.Name.ToLowerInvariant();
Publishing\ManifestPublishingContext.cs (6)
85_manifestResourceNames.Add(resource.Name); 149Writer.WriteStartObject(resource.Name); 234Writer.WriteStartObject(source.Name); 679if (_referencedResources.TryAdd(resource.Name, resource)) 681_manifestResourceNames.Add(resource.Name); 914_referencedResources.Remove(existingResource.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);
ResourceBuilderExtensions.cs (34)
135throw new InvalidOperationException($"Resource '{builder.Resource.Name}' does not support lifetime configuration."); 207throw new InvalidOperationException($"Resource '{builder.Resource.Name}' does not support lifetime configuration."); 447throw new DistributedApplicationException($"The URL parameter '{externalService.Resource.UrlParameter.Name}' for source resource '{externalService.Resource.Name}' is invalid while configuring target resource '{builder.Resource.Name}': {message}"); 808var serviceName = name ?? annotation.Resource.Name; 1018throw new InvalidOperationException($"The resource '{source.Resource.Name}' can't be used with withReference because it doesn't provide a connection string, service discovery, or a custom withReference implementation."); 1113connectionName ??= resource.Name; 1265throw new InvalidOperationException($"The URI for service reference '{name}' is invalid while configuring target resource '{builder.Resource.Name}': it must be absolute."); 1270throw new InvalidOperationException($"The URI for service reference '{name}' is invalid while configuring target resource '{builder.Resource.Name}': it cannot contain a fragment."); 1275throw new InvalidOperationException($"The URI for service reference '{name}' is invalid while configuring target resource '{builder.Resource.Name}': it cannot contain a query string."); 1352throw new DistributedApplicationException($"The URL parameter '{externalService.Resource.UrlParameter.Name}' for source resource '{externalService.Resource.Name}' is invalid while configuring target resource '{builder.Resource.Name}': {message}"); 2195context.Logger.LogWarning("Could not execute callback to customize endpoint URL as no endpoint with name '{EndpointName}' could be found on resource '{ResourceName}'.", endpointName, builder.Resource.Name); 2243context.Logger.LogWarning("Could not execute callback to add an endpoint URL as no endpoint with name '{EndpointName}' could be found on resource '{ResourceName}'.", endpointName, builder.Resource.Name); 2436throw new DistributedApplicationException($"The '{builder.Resource.Name}' resource cannot wait for itself."); 2441throw new DistributedApplicationException($"The '{builder.Resource.Name}' resource cannot wait for its parent '{dependency.Resource.Name}'."); 2559throw new DistributedApplicationException($"The '{builder.Resource.Name}' resource cannot wait for itself."); 2564throw new DistributedApplicationException($"The '{builder.Resource.Name}' resource cannot wait for its parent '{dependency.Resource.Name}'."); 2662throw new DistributedApplicationException($"The '{builder.Resource.Name}' resource cannot wait for itself."); 2667throw new DistributedApplicationException($"The '{builder.Resource.Name}' resource cannot wait for its parent '{dependency.Resource.Name}'."); 2722throw new DistributedApplicationException($"Resource '{builder.Resource.Name}' already has a health check with key '{key}'."); 2809?? throw new DistributedApplicationException($"Could not create HTTP health check for resource '{builder.Resource.Name}' as the endpoint selector returned null."); 2813throw new DistributedApplicationException($"Could not create HTTP health check for resource '{builder.Resource.Name}' as the endpoint with name '{endpoint.EndpointName}' and scheme '{endpoint.Scheme}' is not an HTTP endpoint."); 2826throw new DistributedApplicationException($"The endpoint '{endpointName}' does not exist on the resource '{builder.Resource.Name}'."); 2832var healthCheckKey = $"{builder.Resource.Name}_{endpointName}_{path}_{statusCode}_check"; 3684?? throw new DistributedApplicationException($"Could not create HTTP command for resource '{builder.Resource.Name}' as the endpoint selector returned null."); 3688throw new DistributedApplicationException($"Could not create HTTP command for resource '{builder.Resource.Name}' as the endpoint with name '{endpoint.EndpointName}' and scheme '{endpoint.Scheme}' is not an HTTP endpoint."); 3696commandName ??= $"{endpoint.Resource.Name}-{endpoint.EndpointName}-http-{commandOptions.Method.Method.ToLowerInvariant()}-{path}"; 4382throw new DistributedApplicationException($"Could not create {errorDisplayNoun} for resource '{builder.Resource.Name}' as the endpoint with name '{matchingEndpoint.EndpointName}' and scheme '{matchingEndpoint.Scheme}' is not an HTTP endpoint."); 4390throw new DistributedApplicationException($"Could not create {errorDisplayNoun} for resource '{builder.Resource.Name}' as no endpoint was found matching one of the specified names: {endpointNamesString}"); 4410throw new DistributedApplicationException($"Could not create HTTP command for resource '{builder.Resource.Name}' as it has no HTTP endpoints."); 5010builder.Resource.Name, 5115var endpoint = endpointSelector() ?? throw new DistributedApplicationException($"Could not create HTTP probe for resource '{builder.Resource.Name}' as the endpoint selector returned null.");
ResourceLoggerForwarderService.cs (1)
66var logger = loggerFactory.CreateLogger($"{applicationName}.Resources.{resource.Name}");
src\Shared\LaunchProfiles\LaunchProfileExtensions.cs (1)
30return projectMetadata.GetLaunchSettings(projectResource.Name);
src\Shared\ResourceNameComparer.cs (3)
17return x.Name.Equals(y.Name, StringComparison.Ordinal); 21obj?.Name.GetHashCode(StringComparison.Ordinal) ?? 0;
src\Shared\VolumeMountPathResolver.cs (1)
34GetStablePathSegment(resource.Name),
TerminalResourceBuilderExtensions.cs (3)
78$"Resource '{builder.Resource.Name}' already has a terminal configured. Call WithTerminal() only once per resource."); 216var terminalHostName = $"{parent.Name}-terminalhost-{i.ToString(CultureInfo.InvariantCulture)}"; 253ResourceName = parent.Name,
Utils\DockerfileHelper.cs (1)
49resource.Name,
Utils\ImageNameGenerator.cs (1)
18return builder.Resource.Name.ToLowerInvariant();
VolumeNameGenerator.cs (1)
33var resourceName = builder.Resource.Name;
VolumeResourceBuilderExtensions.cs (1)
82$"Resource '{builder.Resource.Name}' does not support environment variables and cannot use the '{env}' volume path variable.");
Aspire.Hosting.Azure (38)
AzureEnvironmentResourceExtensions.cs (1)
153while (builder.Resources.Any(resource => StringComparers.ResourceName.Equals(resource.Name, name)))
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));
AzurePublishingContext.cs (5)
429var resourceDockerfilePath = Path.Combine(outputPath, $"{resource.Name}.Dockerfile"); 434$"Processing deployment target {resource.Name}", 439var moduleDirectory = outputDirectory.CreateSubdirectory(resource.Name); 441var modulePath = Path.Combine(moduleDirectory.FullName, $"{resource.Name}.bicep"); 450$"Wrote bicep module for deployment target {resource.Name} to {modulePath}",
AzureResourceExtensions.cs (1)
41Infrastructure.NormalizeBicepIdentifier(resource.Name);
AzureResourcePreparer.cs (5)
90executeCommand: context => command.ExecuteCommand(context.Services.GetRequiredService<AzureProvisioningController>(), resource.Resource.Name, context), 102UpdateState = context => context.Services.GetRequiredService<AzureProvisioningController>().GetResourceCommandState(resource.Resource.Name, command.Command, context) 109=> resource.AzureResource is AzureBicepResource bicepResource ? bicepResource.Name : resource.Resource.Name; 409identityResource = new AzureUserAssignedIdentityResource($"{resource.Name}-identity") 428$"{resource.Name}-roles-{targetResource.Name}",
Aspire.Hosting.Azure.AppContainers (31)
AzureContainerAppEnvironmentResource.cs (2)
352builder.AppendLiteral(resource.Name.ToLowerInvariant()); 402var normalizedResourceName = Infrastructure.NormalizeBicepIdentifier(resource.Name);
AzureContainerAppExtensions.cs (5)
87throw new InvalidOperationException($"Resource '{r.Name}' is configured to publish as an Azure Container App, but there are no '{nameof(AzureContainerAppEnvironmentResource)}' resources. Ensure you have added one by calling '{nameof(AddAzureContainerAppEnvironment)}'."); 496$"{BicepFunction.ToLower(output.resource.Name)}-{BicepFunction.ToLower(volumeName)}"), 501$"{BicepFunction.ToLower(output.resource.Name)}-{BicepFunction.ToLower(volumeName)}"), 520$"{BicepFunction.ToLower(output.resource.Name)}-{BicepFunction.ToLower(volumeName)}"), 525$"{BicepFunction.ToLower(output.resource.Name)}-{BicepFunction.ToLower(volumeName)}-{resourceToken}"),
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.",
BaseContainerAppContext.cs (1)
26public string NormalizedContainerAppName => resource.Name.ToLowerInvariant();
ContainerAppContext.cs (2)
102var containerApp = new ContainerApp(Infrastructure.NormalizeBicepIdentifier(Resource.Name)) 242_containerAppEnvironmentContext.RecordHttpsUpgrade(Resource.Name, upgradedEndpoints);
ContainerAppEnvironmentContext.cs (3)
66throw new InvalidOperationException($"Container app context not found for resource {resource.Name}."); 80var provisioningResource = new AzureContainerAppResource(resource.Name + "-containerapp", context.BuildContainerApp, resource) 104throw new InvalidOperationException($"Resource '{resource.Name}' cannot have both AzureContainerAppCustomizationAnnotation and AzureContainerAppJobCustomizationAnnotation.");
ContainerAppJobContext.cs (1)
88var containerApp = new ContainerAppJob(Infrastructure.NormalizeBicepIdentifier(Resource.Name))
src\Shared\CrossScopeAcrPullIdentityPreparer.cs (4)
58Name = $"prepare-cross-scope-acr-pull-identity-{builder.Resource.Name}", 59Description = $"Prepares the ACR pull identity for {builder.Resource.Name}.", 119var identityName = $"{builder.Resource.Name}-mi"; 123$"Cannot create the cross-scope ACR pull identity '{identityName}' for environment '{builder.Resource.Name}' because a resource with that name already exists. Call 'WithAcrPullIdentity' on the environment to select an existing identity, or use a different resource name.");
src\Shared\ResourceNameComparer.cs (3)
17return x.Name.Equals(y.Name, StringComparison.Ordinal); 21obj?.Name.GetHashCode(StringComparison.Ordinal) ?? 0;
Aspire.Hosting.Azure.AppService (26)
AzureAppServiceEnvironmentContext.cs (2)
66throw new InvalidOperationException($"App Service context not found for resource {resource.Name}."); 80var provisioningResource = new AzureAppServiceWebSiteResource(resource.Name + "-website", context.BuildWebSite, resource)
AzureAppServiceEnvironmentExtensions.cs (1)
60throw new InvalidOperationException($"Resource '{r.Name}' is configured to publish as an Azure AppService Website, but there are no '{nameof(AzureAppServiceEnvironmentResource)}' resources. Ensure you have added one by calling '{nameof(AddAzureAppServiceEnvironment)}'.");
AzureAppServiceEnvironmentResource.cs (2)
337sb.AppendLine("Resource '" + resource.Name + "' cannot be published to Azure App Service because it has environment variables with '-' in the name."); 511return ReferenceExpression.Create($"{resource.Name.ToLowerInvariant()}-{WebSiteSuffix}.azurewebsites.net");
AzureAppServiceWebsiteContext.cs (7)
40BicepFunction.Interpolate($"{BicepFunction.ToLower(resource.Name)}-{AzureAppServiceEnvironmentResource.GetWebSiteSuffixBicep()}"), 60); 50BicepFunction.Interpolate($"{BicepFunction.ToLower(resource.Name)}-{AzureAppServiceEnvironmentResource.GetWebSiteSuffixBicep()}"), AzureAppServiceWebSiteResource.MaxWebSiteNamePrefixLengthWithSlot); 107throw new NotSupportedException($"The endpoint(s) {string.Join(", ", unsupportedEndpoints.Select(r => $"'{r.Endpoint.Name}'"))} on resource '{resource.Name}' specifies an unsupported scheme. Only http and https are supported in App Service."); 130throw new NotSupportedException($"The endpoint '{endpoint.Name}' on resource '{resource.Name}' is not external. App Service only supports external endpoints."); 157environmentContext.RecordHttpsUpgrade(resource.Name, upgradedEndpoints); 896var otelServiceName = isSlot ? BicepFunction.Interpolate($"{resource.Name}-{deploymentSlot}") : resource.Name;
AzureAppServiceWebSiteResource.cs (7)
44Name = $"print-{targetResource.Name}-summary", 45Description = $"Prints the deployment summary and URL for {targetResource.Name}.", 64ctx.ReportingStep.Log(LogLevel.Information, new MarkdownString($"Successfully deployed **{targetResource.Name}** to {summaryValue}")); 65ctx.Summary.Add(targetResource.Name, new MarkdownString(summaryValue)); 73Name = $"deploy-{targetResource.Name}", 74Description = $"Aggregation step for deploying {targetResource.Name} to Azure App Service.", 115return TruncateToMaxLength($"{TargetResource.Name.ToLowerInvariant()}-{websiteSuffix}", 60);
src\Shared\CrossScopeAcrPullIdentityPreparer.cs (4)
58Name = $"prepare-cross-scope-acr-pull-identity-{builder.Resource.Name}", 59Description = $"Prepares the ACR pull identity for {builder.Resource.Name}.", 119var identityName = $"{builder.Resource.Name}-mi"; 123$"Cannot create the cross-scope ACR pull identity '{identityName}' for environment '{builder.Resource.Name}' because a resource with that name already exists. Call 'WithAcrPullIdentity' on the environment to select an existing identity, or use a different resource name.");
src\Shared\ResourceNameComparer.cs (3)
17return x.Name.Equals(y.Name, StringComparison.Ordinal); 21obj?.Name.GetHashCode(StringComparison.Ordinal) ?? 0;
Aspire.Hosting.Azure.ContainerRegistry (2)
AzureContainerRegistryExtensions.cs (2)
118var containerRegistry = builder.Resource.ContainerRegistry ?? throw new InvalidOperationException($"The resource '{builder.Resource.Name}' does not have an associated Azure Container Registry."); 119var registry = containerRegistry as AzureContainerRegistryResource ?? throw new InvalidOperationException($"The Container Registry associated with resource '{builder.Resource.Name}' is not an Azure Container Registry.");
Aspire.Hosting.Azure.EventHubs (2)
AzureEventHubsExtensions.cs (2)
307context.EnvironmentVariables["BLOB_SERVER"] = $"{blobEndpoint.Resource.Name}:{blobEndpoint.TargetPort}"; 308context.EnvironmentVariables["METADATA_SERVER"] = $"{tableEndpoint.Resource.Name}:{tableEndpoint.TargetPort}";
Aspire.Hosting.Azure.FrontDoor (6)
AzureFrontDoorExtensions.cs (6)
85var originBicepId = Infrastructure.NormalizeBicepIdentifier(originResource.Name); 197.Any(a => a.Resource.Name == resource.Resource.Name)) 200$"Origin resource '{resource.Resource.Name}' has already been added to Azure Front Door resource '{builder.Resource.Name}'. " + 215$"Resource '{resource.Name}' does not have a compute environment. " + 231$"Resource '{resource.Name}' does not have an external HTTP or HTTPS endpoint. " +
Aspire.Hosting.Azure.Functions (3)
AzureFunctionsProjectResourceExtensions.cs (2)
352connectionName ??= source.Resource.Name; 383connectionName ??= source.Resource.Name;
src\Shared\LaunchProfiles\LaunchProfileExtensions.cs (1)
30return projectMetadata.GetLaunchSettings(projectResource.Name);
Aspire.Hosting.Azure.Kubernetes (6)
AzureKubernetesEnvironmentExtensions.cs (1)
126var resourceName = pushStep.Resource?.Name;
AzureKubernetesEnvironmentResource.AksPipeline.cs (5)
89var saName = $"{r.Name}-sa"; 100$"{{{{ .Values.parameters.{r.Name}.identityClientId }}}}"; 108$"{{{{ .Values.parameters.{r.Name}.identityClientId }}}}", 133r.Name, 139WorkloadIdentities[r.Name] = appIdentity.IdentityResource;
Aspire.Hosting.Azure.Network (3)
AzureNetworkSecurityPerimeterExtensions.cs (1)
144associationName ??= $"{target.Resource.Name}-assoc";
AzurePrivateEndpointExtensions.cs (1)
58var name = $"{subnet.Resource.Name}-{target.Resource.Name}-pe";
AzureVirtualNetworkExtensions.cs (1)
323$"The resource '{target.Name}' is already associated with a different delegated subnet. A resource can use only one delegated subnet.");
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;
AzureSandboxEndpointPropertyValueProvider.cs (5)
35throw new InvalidOperationException($"Endpoint '{endpointReferenceExpression.Endpoint.EndpointName}' on resource '{resource.TargetResource.Name}' does not have a target port."); 101throw new InvalidOperationException($"Azure sandbox deployment state for resource '{_resource.TargetResource.Name}' endpoint '{_endpointReferenceExpression.Endpoint.EndpointName}' contains invalid URL '{url}'."); 118new($"Azure sandbox endpoint '{_endpointReferenceExpression.Endpoint.EndpointName}' on resource '{_resource.TargetResource.Name}' does not have a deployed URL yet. Runtime sandbox URLs cannot be used as first-pass Azure provisioning values; deploy the producing sandbox before resolving this reference."); 124throw new InvalidOperationException($"Endpoint '{_endpointReferenceExpression.Endpoint.EndpointName}' on resource '{_resource.TargetResource.Name}' is not exposed by the Azure sandbox deployment target."); 184throw new InvalidOperationException($"Endpoint '{endpointName}' on resource '{resource.TargetResource.Name}' is not exposed by the Azure sandbox deployment target. Configure it as an external HTTP endpoint before referencing its sandbox URL.");
AzureSandboxesExtensions.cs (3)
482$"Resource '{resource.Name}' is configured to publish as an Azure sandbox, but there are no '{nameof(AzureSandboxGroupResource)}' resources. " + 492$"Resource '{resource.Name}' is configured to publish as an Azure sandbox, but it is assigned to compute environment '{computeEnvironment.Name}', which is not an active Azure sandbox group. " +
AzureSandboxGroupResource.cs (5)
236$"Compute resource '{resource.Name}' uses an application identity type that Azure sandboxes do not support."); 242$"Compute resource '{resource.Name}' uses managed identity '{userAssignedIdentity.Name}', but workload identities are not supported when publishing to existing Azure sandbox group '{Name}'."); 248$"Azure sandbox group '{Name}' uses identity '{userAssignedIdentity.Name}' for both image pulls and workload '{resource.Name}'. " + 268$"{resource.Name}-sandbox-container", 310throw new InvalidOperationException($"Resource '{resource.Name}' is not deployed to Azure sandbox group '{Name}'.");
src\Shared\CrossScopeAcrPullIdentityPreparer.cs (4)
58Name = $"prepare-cross-scope-acr-pull-identity-{builder.Resource.Name}", 59Description = $"Prepares the ACR pull identity for {builder.Resource.Name}.", 119var identityName = $"{builder.Resource.Name}-mi"; 123$"Cannot create the cross-scope ACR pull identity '{identityName}' for environment '{builder.Resource.Name}' because a resource with that name already exists. Call 'WithAcrPullIdentity' on the environment to select an existing identity, or use a different resource name.");
Aspire.Hosting.Azure.ServiceBus (1)
AzureServiceBusExtensions.cs (1)
448context.EnvironmentVariables["SQL_SERVER"] = $"{sqlEndpoint.Resource.Name}:{sqlEndpoint.TargetPort}";
Aspire.Hosting.Azure.Tests (61)
AzureContainerAppEnvironmentExtensionsTests.cs (1)
598var api = model.Resources.First(r => r.Name == "api");
AzureContainerAppsTests.cs (11)
747.Where(resource => resource.Name is "project" or "executable") 748.OrderBy(resource => resource.Name)) 2427var funcjob = model.Resources.Single(r => r.Name == "funcjob"); 2471var batch = containers.First(c => c.Name == "batch"); 2472var web = containers.First(c => c.Name == "web"); 2702var container = model.Resources.Single(r => r.Name == "api"); 2706var buildOnly = model.Resources.Single(r => r.Name == "build-only"); 2950var webappAcaResource = model.Resources.First(r => r.Name == "webappaca"); 2956var webappServiceResource = model.Resources.First(r => r.Name == "webappservice"); 2962var containerAcaResource = model.Resources.First(r => r.Name == "containeraca"); 2970var containerAppServiceResource = model.Resources.First(r => r.Name == "containerappservice");
AzureDeployerTests.cs (7)
190Assert.Equal("exe", builtImage.Name); 376resource.Name == "api"); 442resource.Name == "api"); 675resource.Name == "api-service"); 677resource.Name == "python-app"); 680Assert.DoesNotContain(mockImageBuilder.PushImageCalls, resource => resource.Name == "cache"); 1196resource.Name == "funcapp");
AzureEventHubsExtensionsTests.cs (2)
524var azurite = builder.Resources.FirstOrDefault(x => x.Name == "eh-storage"); 542var azurite = builder.Resources.FirstOrDefault(x => x.Name == "eh-storage");
AzureFunctionsTests.cs (4)
39resource is AzureStorageResource && resource.Name.StartsWith(AzureFunctionsProjectResourceExtensions.DefaultAzureFunctionsHostStorageName)); 42resource is AzureFunctionsProjectResource && resource.Name == "funcapp"); 657resource is AzureStorageResource && resource.Name.StartsWith(AzureFunctionsProjectResourceExtensions.DefaultAzureFunctionsHostStorageName)); 660resource is AzureFunctionsProjectResource && resource.Name == "funcapp");
AzureManagedRedisExtensionsTests.cs (1)
133var cacheInModel = builder.Resources.Single(r => r.Name == "cache");
AzureManifestUtils.cs (1)
31string manifestDir = Directory.CreateTempSubdirectory(resource.Name).FullName;
AzurePostgresExtensionsTests.cs (2)
297var postgresResourceInModel = builder.Resources.Single(r => r.Name == "postgres-data"); 298var dbResourceInModel = builder.Resources.Single(r => r.Name == "db1");
AzureRedisExtensionsTests.cs (1)
177var cacheInModel = builder.Resources.Single(r => r.Name == "cache");
AzureResourcePreparerTests.cs (3)
490Assert.Collection(model.Resources.Select(r => r.Name), 525Assert.Collection(model.Resources.Select(r => r.Name), 538Assert.DoesNotContain(model.Resources, r => r.Name == "frontend-identity");
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");
AzureServiceBusExtensionsTests.cs (2)
621var sql = builder.Resources.FirstOrDefault(x => x.Name == "sb-mssql"); 639var sql = builder.Resources.FirstOrDefault(x => x.Name == "sb-mssql");
AzureSqlExtensionsTests.cs (2)
217var sqlResourceInModel = builder.Resources.Single(r => r.Name == "sql"); 218var dbResourceInModel = builder.Resources.Single(r => r.Name == "db1");
AzureUserAssignedIdentityTests.cs (6)
82Assert.Equal("myidentity-roles-myregistry", r.Name); 125var computeResource = Assert.Single(model.Resources.OfType<IComputeResource>(), r => r.Name == "myapp"); 172var computeResource = Assert.Single(model.Resources.OfType<IComputeResource>(), r => r.Name == "myapp"); 230var computeResource = Assert.Single(model.Resources.OfType<IComputeResource>(), r => r.Name == "myapp"); 311var computeResource = Assert.Single(model.Resources.OfType<IComputeResource>(), r => r.Name == "myapp"); 313var computeResource2 = Assert.Single(model.Resources.OfType<IComputeResource>(), r => r.Name == "myapp2");
FoundryExtensionsTests.cs (1)
695Assert.DoesNotContain(builder.Resources, r => r.Name == "my-project-acr");
RoleAssignmentTests.cs (4)
247Assert.DoesNotContain(model.Resources, r => r.Name == "api-roles-keyvault"); 279Assert.DoesNotContain(model.Resources, r => r.Name == "api-roles-keyvault"); 280Assert.DoesNotContain(model.Resources, r => r.Name == "api-roles-sb"); 333Assert.DoesNotContain(model.Resources, r => r.Name == "webfrontend-roles-cache");
Aspire.Hosting.Blazor (15)
BlazorGatewayExtensions.cs (5)
248if (!existingGatewayRefs.Contains(endpointRef.Resource.Name)) 320GetBlazorStorePath(gateway.ApplicationBuilder), "gateways", gateway.Resource.Name); 333?? throw new InvalidOperationException($"The gateway '{gateway.Resource.Name}' must define an HTTP or HTTPS endpoint."); 627var service = new GatewayAppService(annotation.Resource.Name); 647.Select(a => a.Resource.Name)
BlazorHostedExtensions.cs (4)
37annotation.Services.Add(new HostedClientService(service.Resource.Name, apiPrefix)); 41if (!existingRefs.Contains(service.Resource.Name)) 106if (!host.ApplicationBuilder.Resources.Any(r => r.Name == debuggerName)) 180.Select(a => a.Resource.Name)
BrowserDebuggerHelper.cs (5)
70? $"{parentResource.Name}-{commandTarget.Resource.Name}-debugger" 71: $"{parentResource.Name}-wasm-debugger"; 111$"Resource '{parentResource.Name}' does not have an HTTP or HTTPS endpoint. " + 348return resource.Name;
GatewayOriginReference.cs (1)
14public string ValueExpression => $"{{{endpoint.Resource.Name}.bindings.{endpoint.EndpointName}.url}}";
Aspire.Hosting.Blazor.Tests (22)
AddDotnetProjectBlazorGatewayTests.cs (1)
56.Select(r => r.Resource.Name)
BlazorHostedExtensionsTests.cs (14)
28var blazorApp = builder.Resources.Single(r => r.Name == "blazorapp"); 49var blazorApp = builder.Resources.Single(r => r.Name == "blazorapp"); 70var blazorApp = builder.Resources.Single(r => r.Name == "blazorapp"); 88var blazorApp = builder.Resources.Single(r => r.Name == "blazorapp"); 111var blazorApp = builder.Resources.Single(r => r.Name == "blazorapp"); 140var blazorApp = builder.Resources.Single(r => r.Name == "blazorapp"); 295var blazorApp = builder.Resources.Single(r => r.Name == "blazorapp"); 315var blazorApp = builder.Resources.Single(r => r.Name == "blazorapp"); 342.SingleOrDefault(a => a.Resource.Name == "weatherapi"); 360var blazorApp = builder.Resources.Single(r => r.Name == "blazorapp"); 393.Count(a => a.Resource.Name == "weatherapi"); 415.Select(a => a.Resource.Name) 432var blazorApp = builder.Resources.Single(r => r.Name == "blazorapp"); 451var blazorApp = builder.Resources.Single(r => r.Name == "blazorapp");
BrowserDebuggerHelperTests.cs (1)
146Assert.True(notificationService.TryGetCurrentState(resource.Name, out var currentState));
WithBlazorAppTests.cs (6)
99.Select(r => r.Resource.Name) 126.Count(r => r.Resource.Name == "weatherapi"); 154.Where(r => r.Resource.Name == "weatherapi" && r.Type == "Reference") 399.SingleOrDefault(a => a.Resource.Name == "weatherapi"); 428.SingleOrDefault(a => a.Resource.Name == "weatherapi"); 469.SingleOrDefault(a => a.Resource.Name == "weatherapi");
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));
BrowserLogsConfigurationManager.cs (6)
39var parentResourceName = resource.ParentResource.Name; 162? resource.ParentResource.Name 341var (resourceConfiguration, globalConfiguration) = configurationStore.GetConfigurations(resource.ParentResource.Name); 353resource.ParentResource.Name, 371? $"{BrowserLogsBuilderExtensions.BrowserLogsConfigurationSectionName}:{resource.ParentResource.Name}" 393configurationStore.Set(selected.Scope, resource.ParentResource.Name, ToBrowserConfiguration(selected));
BrowserLogsResource.cs (2)
24var (resourceConfiguration, globalConfiguration) = configurationStore?.GetConfigurations(ParentResource.Name) ?? default; 27ParentResource.Name,
Aspire.Hosting.Browsers.Tests (18)
BrowserLogsBuilderExtensionsTests.cs (4)
49Assert.Equal(web.Resource.Name, browserLogsResource.ParentResource.Name); 56Assert.Equal(web.Resource.Name, parentRelationship.Resource.Name); 701var webBrowserLogsResource = browserLogsResources.Single(resource => resource.ParentResource.Name == "web"); 702var adminBrowserLogsResource = browserLogsResources.Single(resource => resource.ParentResource.Name == "admin");
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));
src\Aspire.Hosting.Browsers\BrowserLogsConfigurationManager.cs (6)
39var parentResourceName = resource.ParentResource.Name; 162? resource.ParentResource.Name 341var (resourceConfiguration, globalConfiguration) = configurationStore.GetConfigurations(resource.ParentResource.Name); 353resource.ParentResource.Name, 371? $"{BrowserLogsBuilderExtensions.BrowserLogsConfigurationSectionName}:{resource.ParentResource.Name}" 393configurationStore.Set(selected.Scope, resource.ParentResource.Name, ToBrowserConfiguration(selected));
src\Aspire.Hosting.Browsers\BrowserLogsResource.cs (2)
24var (resourceConfiguration, globalConfiguration) = configurationStore?.GetConfigurations(ParentResource.Name) ?? default; 27ParentResource.Name,
Aspire.Hosting.Containers.Tests (6)
ContainerResourceTests.cs (5)
25Assert.Equal("container", containerResource.Name); 44Assert.Equal("container", containerResource.Name); 63Assert.Equal("container", containerResource.Name); 83Assert.Equal("container", containerResource.Name); 337Assert.Equal("containerwithbindmounts", containerResource.Name);
ResourceFailureLoggingTests.cs (1)
118var category = $"{builder.ApplicationBuilder.Environment.ApplicationName}.Resources.{builder.Resource.Name}";
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);
src\Shared\ResourceNameComparer.cs (3)
17return x.Name.Equals(y.Name, StringComparison.Ordinal); 21obj?.Name.GetHashCode(StringComparison.Ordinal) ?? 0;
Aspire.Hosting.Docker (25)
DockerComposeEnvironmentContext.cs (3)
19logger.LogInformation("Creating Docker Compose resource for {ResourceName}", resource.Name); 21var serviceResource = new DockerComposeServiceResource(resource.Name, resource, environment); 60serviceResource.TargetResource.Name,
DockerComposeEnvironmentExtensions.cs (1)
48throw new InvalidOperationException($"Resource '{r.Name}' is configured to publish as a Docker Compose service, but there are no '{nameof(DockerComposeEnvironmentResource)}' resources. Ensure you have added one by calling '{nameof(AddDockerComposeEnvironment)}'.");
DockerComposeEnvironmentResource.cs (2)
269return ReferenceExpression.Create($"{resource.Name.ToLowerInvariant()}"); 404context.EnvironmentVariables[KnownOtelConfigNames.ServiceName] = resource.Name;
DockerComposePublishingContext.cs (1)
97var resourceDockerfilePath = Path.Combine(OutputPath, $"{serviceResource.TargetResource.Name}.Dockerfile");
DockerComposeServiceExtensions.cs (5)
119var imageEnvName = $"{resourceInstance.Name.ToUpperInvariant().Replace("-", "_")}_IMAGE"; 123description: $"Container image name for {resourceInstance.Name}", 124defaultValue: $"{resourceInstance.Name}:latest", 133var containerPortEnv = $"{resourceInstance.Name.ToUpperInvariant().Replace("-", "_")}_PORT"; 137description: $"Default container port for {resourceInstance.Name}",
DockerComposeServiceResource.cs (10)
46Name = $"print-{_targetResource.Name}-summary", 116Name = TargetResource.Name.ToLowerInvariant(), 193composeService.DependsOn[waitAnnotation.Resource.Name.ToLowerInvariant()] = new() 332new MarkdownString($"Successfully deployed **{TargetResource.Name}** to Docker Compose environment **{environment.Name}**. No public endpoints were configured.")); 333context.Summary.Add(TargetResource.Name, "No public endpoints"); 349context.ReportingStep.Log(LogLevel.Information, new MarkdownString($"Successfully deployed **{TargetResource.Name}** to {endpointList}.")); 350context.Summary.Add(TargetResource.Name, string.Join(", ", endpoints)); 356new MarkdownString($"Successfully deployed **{TargetResource.Name}** to Docker Compose environment **{environment.Name}**.")); 357context.Summary.Add(TargetResource.Name, "No public endpoints"); 370var serviceName = TargetResource.Name.ToLowerInvariant();
src\Shared\ResourceNameComparer.cs (3)
17return x.Name.Equals(y.Name, StringComparison.Ordinal); 21obj?.Name.GetHashCode(StringComparison.Ordinal) ?? 0;
Aspire.Hosting.Docker.Tests (6)
DockerComposePublisherTests.cs (1)
1098kv.Value.Resource?.Name == "yarp" &&
DockerComposeTests.cs (5)
888var containerDockerResource = model.Resources.First(r => r.Name == "containerdocker"); 894var containerK8sResource = model.Resources.First(r => r.Name == "containerk8s"); 900var projectDockerResource = model.Resources.First(r => r.Name == "projectdocker"); 906var projectK8sResource = model.Resources.First(r => r.Name == "projectk8s"); 939var containerDockerResource = model.Resources.First(r => r.Name == "containerdocker");
Aspire.Hosting.Dotnet (9)
DotnetProjectBuildCoordinator.cs (7)
741candidate.Name == $"{resource.Name}-rebuilder" && 833resource.Name, 913context.Resource.Name, 1135resource.Name, 1150resource.Name); 1167resource.Name, 1184resource.Name);
DotnetProjectHostingExtensions.cs (1)
161$"The .NET resource '{resource.Name}' uses WithBuildEnvironment, which is supported only for project files.");
src\Shared\LaunchProfiles\LaunchProfileExtensions.cs (1)
30return projectMetadata.GetLaunchSettings(projectResource.Name);
Aspire.Hosting.EntityFrameworkCore (3)
EFMigrationResourceBuilderExtensions.cs (3)
336?? ConnectionStringEnvVarPrefix + connectionStringResource.Name; 396var unrelated = string.Join(", ", leaves.Select(l => $"'{l.Name}'")); 522?? ConnectionStringEnvVarPrefix + primary.Name;
Aspire.Hosting.EntityFrameworkCore.Tests (1)
EFMigrationPipelineTests.cs (1)
243Assert.Equal("mydb", waitedResource.Name);
Aspire.Hosting.Foundry (26)
HostedAgent\AzureHostedAgentResource.cs (11)
43var deploymentAnnotation = Target.GetDeploymentTargetAnnotation() ?? throw new InvalidOperationException($"Deployment target annotation is required on resource '{Target.Name}' to deploy as hosted agent."); 45?? throw new InvalidOperationException($"Compute environment for resource '{Target.Name}' must be an AzureCognitiveServicesProjectResource to deploy as hosted agent."); 142ctx.Writer.WriteString("target", Target.Name); 166var options = def.ToProjectsAgentVersionCreationOptions(Target.Name); 326logger.LogDebug("Environment variable '{Key}' for resource '{Name}' is reserved by Foundry Hosted Agents and will be skipped.", key, resource.Name); 335logger.LogDebug("Environment variable '{Key}' for resource '{Name}' references the hosted agent target port and will be skipped.", key, resource.Name); 354logger.LogWarning("Environment variable '{Key}' for resource '{Name}' has unknown value of type '{type}' and will be skipped.", key, resource.Name, value.GetType().FullName); 403throw new DistributedApplicationException($"The connection string for the resource '{connectionStringReference.Resource.Name}' is not available."); 474var reason = $"Resource '{endpointReference.Resource.Name}' does not have a compute environment deployment target."; 499$"Unable to resolve environment variable '{environmentVariableName}' for Foundry hosted agent '{hostedAgent.Name}' from target resource '{resource.Name}'. " + 500$"Endpoint '{endpointReference.EndpointName}' on resource '{endpointReference.Resource.Name}' cannot be used. {reason}");
HostedAgent\HostedAgentBuilderExtension.cs (9)
282.AddFoundry($"{builder.Resource.Name}-proj-foundry") 283.AddProject($"{builder.Resource.Name}-proj"); 407ctx.EnvironmentVariables.Add("OTEL_GENAI_AGENT_NAME", ctx.Resource.Name); 408ctx.EnvironmentVariables.Add("OTEL_GENAI_AGENT_ID", ctx.Resource.Name); 457var agentName = $"{resource.Name}-ha"; 472else if (builder.ApplicationBuilder.TryCreateResourceBuilder<ContainerResource>(resource.Name, out var containerResourceBuilder)) 483if (builder.ApplicationBuilder.TryCreateResourceBuilder(resource.Name, out containerResourceBuilder)) 489throw new InvalidOperationException($"Unable to create hosted agent for resource '{resource.Name}' because it could not be converted to a container resource."); 498throw new InvalidOperationException($"Unable to create hosted agent for resource '{resource.Name}' because it is not a container, executable, or project resource.");
Project\ProjectResource.cs (1)
254: resource.Name;
Toolbox\FoundryToolboxResource.cs (5)
494resource.Name, 500$"MCP dependency '{resource.Name}' entered terminal state '{state}' before it became ready."); 510model.Resources.Select(resource => resource.Name), 519modelResourceNames.Contains(referencedResource.Name) && 520seenResourceNames.Add(referencedResource.Name))
Aspire.Hosting.Foundry.Tests (6)
HostedAgentExtensionTests.cs (4)
80var resource = builder.Resources.Single(r => r.Name == "agent"); 105var resource = builder.Resources.Single(r => r.Name == "agent"); 135var resource = builder.Resources.Single(r => r.Name == "agent"); 674Assert.DoesNotContain(builder.Resources, r => r.Name == "my-project-acr");
ProjectResourceTests.cs (1)
47Assert.DoesNotContain(builder.Resources, r => r.Name == "my-project-acr");
PromptAgentTests.cs (1)
76var resource = builder.Resources.Single(r => r.Name == "my-agent");
Aspire.Hosting.GitHub.Models.Tests (5)
GitHubModelsExtensionTests.cs (5)
265Assert.NotNull(builder.Resources.FirstOrDefault(r => r.Name == "github-gh-apikey")); 269Assert.Null(builder.Resources.FirstOrDefault(r => r.Name == "github-gh-apikey")); 270Assert.NotNull(builder.Resources.FirstOrDefault(r => r.Name == "secret-key1")); 274Assert.NotNull(builder.Resources.FirstOrDefault(r => r.Name == "secret-key1")); 275Assert.NotNull(builder.Resources.FirstOrDefault(r => r.Name == "secret-key2"));
Aspire.Hosting.Go (4)
GoHostingExtensions.cs (4)
184var binaryName = ctx.Resource.Name; 282.CopyFrom("build", $"/app/{ctx.Resource.Name}", $"/app/{ctx.Resource.Name}") 284.Entrypoint([$"/app/{ctx.Resource.Name}"]);
Aspire.Hosting.Go.Tests (14)
AddGoAppTests.cs (6)
1102var tidyResource = builder.Resources.First(r => r.Name == "api-mod-tidy"); 1103var vendorResource = builder.Resources.First(r => r.Name == "api-mod-vendor"); 1120var tidyResource = builder.Resources.First(r => r.Name == "api-mod-tidy"); 1121var downloadResource = builder.Resources.First(r => r.Name == "api-mod-download"); 1137var vendorResource = builder.Resources.First(r => r.Name == "api-mod-vendor"); 1138var downloadResource = builder.Resources.First(r => r.Name == "api-mod-download");
GoPublicApiTests.cs (8)
300var tidyResources = builder.Resources.Where(r => r.Name == "api-mod-tidy").ToList(); 310Assert.Contains(builder.Resources, r => r.Name == "api-mod-tidy"); 334var vendorResources = builder.Resources.Where(r => r.Name == "api-mod-vendor").ToList(); 344Assert.Contains(builder.Resources, r => r.Name == "api-mod-vendor"); 368var downloadResources = builder.Resources.Where(r => r.Name == "api-mod-download").ToList(); 378Assert.Contains(builder.Resources, r => r.Name == "api-mod-download"); 402var vetResources = builder.Resources.Where(r => r.Name == "api-vet-tool").ToList(); 412Assert.Contains(builder.Resources, r => r.Name == "api-vet-tool");
Aspire.Hosting.Java (1)
JavaHostingExtensions.cs (1)
1158$"Resource '{resource.Name}' has no Maven or Gradle build configured, so the OpenTelemetry agent location cannot be inferred. " +
Aspire.Hosting.Java.Tests (14)
AddJavaAppPublishTests.cs (1)
2388Resource = model.Resources.Single(resource => resource.Name == "api"),
AddJavaAppTests.cs (11)
1034Assert.Contains(builder.Resources, r => r.Name == "api-maven-build"); 1035Assert.Equal(JavaBuildTool.Maven, Assert.IsType<JavaBuildResource>(builder.Resources.First(r => r.Name == "api-maven-build")).Tool); 1047var buildResource = builder.Resources.First(r => r.Name == "api-maven-build"); 1060Assert.Contains(builder.Resources, r => r.Name == "api-gradle-build"); 1061Assert.Equal(JavaBuildTool.Gradle, Assert.IsType<JavaBuildResource>(builder.Resources.First(r => r.Name == "api-gradle-build")).Tool); 1073var buildResource = builder.Resources.First(r => r.Name == "api-gradle-build"); 1086Assert.DoesNotContain(builder.Resources, r => r.Name == "api-maven-build"); 1098Assert.DoesNotContain(builder.Resources, r => r.Name == "api-gradle-build"); 1152var buildResource = builder.Resources.First(r => r.Name == "api-maven-build"); 1166var buildResource = builder.Resources.First(r => r.Name == "api-gradle-build"); 1260Assert.Equal(["api"], builder.Resources.Select(resource => resource.Name).Order());
AddSpringBootAppTests.cs (2)
384Assert.DoesNotContain(builder.Resources, r => r.Name == "catalog-maven-build"); 388var buildResource = Assert.Single(builder.Resources, r => r.Name == "catalog-maven-build");
Aspire.Hosting.JavaScript (2)
DenoHostingExtensions.cs (1)
1065throw new InvalidOperationException($"Deno command-line options configured with the WithDeno* methods cannot be combined with package manager '{packageManager.ExecutableName}' on resource '{resource.Name}'. Remove the WithDeno* options or use WithDeno().");
JavaScriptHostingExtensions.cs (1)
3151return $"{scheme}://{resource.Name}";
Aspire.Hosting.JavaScript.Tests (1)
PackageInstallationTests.cs (1)
67var nodeResource = Assert.Single(appModel.Resources, r => r.Name == "test-app");
Aspire.Hosting.Kafka (2)
KafkaBuilderExtensions.cs (2)
144? ReferenceExpression.Create($"{endpoint.Resource.Name}:{endpoint.Property(EndpointProperty.TargetPort)}") 147context.EnvironmentVariables[$"KAFKA_CLUSTERS_{index}_NAME"] = endpoint.Resource.Name;
Aspire.Hosting.Kafka.Tests (1)
AddKafkaTests.cs (1)
236var kafkaUiResource = Assert.Single(builder.Resources, r => r.Name == expectedContainerName);
Aspire.Hosting.Keycloak.Tests (2)
KeycloakPublicApiTests.cs (2)
161var keycloakResource = builder.Resources.Single(r => r.Name.Equals(resourceName, StringComparison.Ordinal)); 186var keycloakResource = builder.Resources.Single(r => r.Name.Equals(resourceName, StringComparison.Ordinal));
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);
Extensions\EndpointRoutingValidation.cs (1)
51$"Resource '{endpoint.Resource.Name}' endpoint '{endpoint.EndpointName}' is not marked as external " +
Extensions\ResourceExtensions.cs (9)
20Name = resource.Name.ToDeploymentName(), 49Name = resource.Name.ToStatefulSetName(), 74Name = resource.Name.ToSecretName(), 108Name = resource.Name.ToConfigMapName(), 140Name = resource.Name.ToServiceName(), 299Name = resource.Name, 409Name = context.TargetResource.Name.ToConfigMapName(), 426Name = context.TargetResource.Name.ToSecretName(), 466var pvcName = context.TargetResource.Name.ToPvcName(volume.Name);
KubernetesEnvironmentContext.cs (2)
22logger.LogInformation("Creating Kubernetes resource for {ResourceName}", resource.Name); 24var serviceResource = new KubernetesResource(resource.Name, resource, environment);
KubernetesEnvironmentExtensions.cs (7)
58throw new InvalidOperationException($"Resource '{r.Name}' is configured to publish as a Kubernetes service, but there are no '{nameof(KubernetesEnvironmentResource)}' resources or Kubernetes-backed compute environments. Ensure you have added one by calling '{nameof(AddKubernetesEnvironment)}'."); 119$"Resource '{resource.Name}' cannot resolve the '{environmentVariableName}' persistent-volume path in run mode. " + 152$"Resource '{resourceGroup.Key.Name}' binds {volumes.Length} different Kubernetes persistent volumes named '{nameGroup.Key}' (from environments {environmentNames}). " + 188var resourceNames = string.Join(", ", containers.Concat(hostProcesses).Select(item => $"'{item.Resource.Name}'")); 242var targetName = targetEnvironment?.Name ?? "<none>"; 243var supportedTargetName = (volumeEnvironment.OwningComputeEnvironment ?? volumeEnvironment).Name; 245$"Resource '{resource.Name}' is assigned to compute environment '{targetName}' but binds " +
KubernetesEnvironmentResource.cs (9)
405return ReferenceExpression.Create($"{resource.Name.ToServiceName()}"); 567context.EnvironmentVariables[KnownOtelConfigNames.ServiceName] = resource.Name; 938ingressName, targetResource.Name); 947ingressName, endpointName, targetResource.Name); 955Name = k8sResource.Service?.Metadata.Name ?? targetResource.Name.ToServiceName(), 1247gatewayName, targetResource.Name); 1256gatewayName, endpointName, targetResource.Name); 1268Name = k8sResource.Service?.Metadata.Name ?? targetResource.Name.ToServiceName(), 2179tlsSecret.Owner.Name);
KubernetesPersistentVolumeExtensions.cs (1)
421$"Resource '{builder.Resource.Name}' does not support environment variables and cannot use the '{env}' volume path variable.");
KubernetesPublishingContext.cs (11)
96var resourceDockerfilePath = Path.Combine(OutputPath, $"{serviceResource.TargetResource.Name}.Dockerfile"); 216var resourceKey = resource.Name.ToHelmValuesSectionName(); 246$"Resource '{resource.Name}' maps both {origins[valuesKey]} and {origin} " + 284resource.Name.ToHelmValuesSectionName(), 312captured.ResourceKey == resource.Name.ToHelmValuesSectionName() && 318resource.Name.ToHelmValuesSectionName(), 337resource.Name.ToHelmValuesSectionName(), 354resource.Name.ToHelmValuesSectionName(), 362helmSection[resource.Name.ToHelmValuesSectionName()] = paramValues; 368var templatesFolder = Path.Combine(OutputPath, "templates", resource.Name); 373var fileName = GetFilename(resource.Name, templatedItem);
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);
src\Shared\ResourceNameComparer.cs (3)
17return x.Name.Equals(y.Name, StringComparison.Ordinal); 21obj?.Name.GetHashCode(StringComparison.Ordinal) ?? 0;
src\Shared\VolumeMountPathResolver.cs (1)
34GetStablePathSegment(resource.Name),
Aspire.Hosting.Kubernetes.Tests (7)
KubernetesDeployTests.cs (1)
1187c.Resource.Name == "api");
KubernetesEnvironmentResourceTests.cs (6)
169var containerK8sResource = model.Resources.First(r => r.Name == "containerk8s"); 175var containerDockerResource = model.Resources.First(r => r.Name == "containerdocker"); 181var projectK8sResource = model.Resources.First(r => r.Name == "projectk8s"); 187var projectDockerResource = model.Resources.First(r => r.Name == "projectdocker"); 248var containerK8sResource = model.Resources.First(r => r.Name == "containerk8s"); 249var containerDockerResource = model.Resources.First(r => r.Name == "containerdocker");
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);
MauiOtlpExtensions.cs (3)
139string.Equals(resource.Name, KnownResourceNames.AspireDashboard, StringComparisons.ResourceName)); 268if (!string.Equals(resource.Name, KnownResourceNames.AspireDashboard, StringComparisons.ResourceName) || resource is not IResourceWithEndpoints dashboardResource) 409var resourceName = endpointReference.Resource.Name;
Utilities\MauiEnvironmentHelper.cs (2)
61var sanitizedName = SanitizeFileName(resource.Name + "-android"); 202var sanitizedName = SanitizeFileName(resource.Name + "-ios");
Aspire.Hosting.Maui.Tests (26)
MauiBuildQueueTests.cs (21)
131if (evt.Resource.Name == env.MacCatalyst.Name && evt.Snapshot.State?.Text == "Queued") 165if (evt.Resource.Name == env.Android.Name && evt.Snapshot.State?.Text == "Building") 1165if (evt.Resource.Name == resource.Name && evt.Snapshot.State?.Text == state) 1209return GetOrCreateStarted(resource.Name).Task.DefaultTimeout(timeout ?? TimeSpan.FromSeconds(30)); 1215GetOrCreateCompletion(resource.Name).TrySetResult(); 1221GetOrCreateCompletion(resource.Name).TrySetResult(); 1226return _releaseOnRunningValues[resource.Name]; 1231return _launchCancellationTokens[resource.Name]; 1237_buildFailures[resource.Name] = new InvalidOperationException(message); 1238GetOrCreateCompletion(resource.Name).TrySetResult(); 1244_buildFailures[resource.Name] = exception; 1245GetOrCreateCompletion(resource.Name).TrySetResult(); 1252GetOrCreateStarted(resource.Name).TrySetResult(); 1257var tcs = GetOrCreateCompletion(resource.Name); 1262GetOrCreateStarted(resource.Name).TrySetResult(); 1267if (_buildFailures.TryRemove(resource.Name, out var ex)) 1275_buildCompletions.TryRemove(resource.Name, out _); 1276_buildStarted.TryRemove(resource.Name, out _); 1285_launchCancellationTokens[resource.Name] = cancellationToken; 1292_releaseOnRunningValues[resource.Name] = releaseOnRunning;
MauiPlatformExtensionsTests.cs (4)
109Assert.Equal(config.ExpectedDefaultName, platform.Resource.Name); 132Assert.Equal(customName, platform.Resource.Name); 267Assert.NotEqual(platform1.Resource.Name, platform2.Resource.Name);
MauiWithArgsTests.cs (1)
235Assert.True(args.Count > 0, $"Expected args for {builder.Resource.Name}");
Aspire.Hosting.Milvus.Tests (2)
AddMilvusTests.cs (2)
28Assert.Equal("my-milvus", containerResource.Name); 58Assert.Equal("my-milvus", containerResource.Name);
Aspire.Hosting.MySql (2)
MySqlBuilderExtensions.cs (2)
281context.EnvironmentVariables["PMA_HOST"] = $"{endpoint.Resource.Name}:{endpoint.TargetPort}"; 429writer.WriteLine($"$cfg['Servers'][$i]['host'] = '{endpoint.Resource.Name}:{endpoint.TargetPort}';");
Aspire.Hosting.MySql.Tests (4)
AddMySqlTests.cs (4)
86Assert.Equal("mysql", containerResource.Name); 242var myAdmin = builder.Resources.Single(r => r.Name.Equals("phpmyadmin")); 248var container = builder.Resources.Single(r => r.Name == "phpmyadmin"); 274var myAdmin = builder.Resources.Single(r => r.Name.Equals("phpmyadmin"));
Aspire.Hosting.OpenAI.Tests (5)
OpenAIExtensionTests.cs (5)
209Assert.NotNull(builder.Resources.FirstOrDefault(r => r.Name == "openai-openai-apikey")); 214Assert.Null(builder.Resources.FirstOrDefault(r => r.Name == "openai-openai-apikey")); 215Assert.NotNull(builder.Resources.FirstOrDefault(r => r.Name == "secret-key1")); 219Assert.NotNull(builder.Resources.FirstOrDefault(r => r.Name == "secret-key1")); 220Assert.NotNull(builder.Resources.FirstOrDefault(r => r.Name == "secret-key2"));
Aspire.Hosting.Oracle.Tests (3)
AddOracleTests.cs (3)
45Assert.Equal("orcl", containerResource.Name); 84Assert.Equal("orcl", containerResource.Name); 166Assert.Equal("oracle", containerResource.Name);
Aspire.Hosting.Orleans (4)
OrleansServiceExtensions.cs (3)
143=> WithGrainStorage(orleansServiceBuilder, provider.Resource.Name, provider); 200=> WithStreaming(orleansServiceBuilder, provider.Resource.Name, provider); 328=> WithGrainDirectory(orleansServiceBuilder, provider.Resource.Name, provider);
ProviderConfiguration.cs (1)
49var serviceKey = resourceBuilder.Resource.Name;
Aspire.Hosting.PostgreSQL (2)
PostgresBuilderExtensions.cs (2)
92if (builder.Resources.FirstOrDefault(n => string.Equals(n.Name, name, StringComparisons.ResourceName)) is PostgresDatabaseResource postgreDatabase) 665writer.WriteString("Host", endpoint.Resource.Name);
Aspire.Hosting.PostgreSQL.Tests (8)
AddPostgresTests.cs (8)
56Assert.Equal("myPostgres", containerResource.Name); 110Assert.Equal("myPostgres", containerResource.Name); 226Assert.Equal("postgres", containerResource.Name); 405var container = builder.Resources.Single(r => r.Name == "pgadmin"); 459var container = builder.Resources.Single(r => r.Name == "pgadmin"); 472Assert.Single(builder.Resources, r => r.Name.Equals("pgadmin")); 493var pgadmin = builder.Resources.Single(r => r.Name.Equals("pgadmin")); 558var pgweb = builder.Resources.Single(r => r.Name.Equals("pgweb"));
Aspire.Hosting.Qdrant (1)
QdrantBuilderExtensions.cs (1)
171connectionName ??= resource.Name;
Aspire.Hosting.Qdrant.Tests (4)
AddQdrantTests.cs (3)
55Assert.Equal("my-qdrant", containerResource.Name); 94Assert.Equal("my-qdrant", containerResource.Name); 127Assert.Equal("my-qdrant", containerResource.Name);
QdrantFunctionalTests.cs (1)
234var qdrantResource = builder.Resources.Single(r => r.Name.Equals("qdrant"));
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);
Publishing\RadiusServiceDiscovery.cs (1)
46public static string GetServiceName(IResource resource) => GetServiceName(resource.Name);
RadiusInfrastructure.cs (1)
116resource.Name,
ResourceMapping\ResourceTypeMapper.cs (2)
145resource.Name, 160resource.Name,
Aspire.Hosting.Radius.Tests (9)
InnerLoop\GracefulDegradationTests.cs (2)
35var apiResource = model.Resources.First(r => r.Name == "api"); 90var apiResource = model.Resources.First(r => r.Name == "api");
InnerLoop\MultiEnvironmentTests.cs (3)
67var apiResource = model.Resources.First(r => r.Name == "api"); 93var allResourceNames = model.Resources.Select(r => r.Name).ToArray(); 96var apiResource = model.Resources.First(r => r.Name == "api");
InnerLoop\RadiusInfrastructureInitializationTests.cs (4)
29var apiResource = model.Resources.First(r => r.Name == "api"); 68var paramResource = model.Resources.First(r => r.Name == "my-param"); 86var apiResource = model.Resources.First(r => r.Name == "api"); 103var projectResource = model.Resources.First(r => r.Name == "webapp");
Aspire.Hosting.Redis.Tests (6)
AddRedisTests.cs (6)
265var redisinsight = builder.Resources.Single(r => r.Name.Equals("redisinsight")); 309Assert.Equal(insight.Name, managementUrl.Endpoint?.Resource.Name); 334Assert.Equal(commander.Name, managementUrl.Endpoint?.Resource.Name); 559var commander = builder.Resources.Single(r => r.Name.Equals("rediscommander")); 585var commander = builder.Resources.Single(r => r.Name.Equals("rediscommander")); 606var commander = builder.Resources.Single(r => r.Name.Equals("rediscommander"));
Aspire.Hosting.RemoteHost.Tests (1)
CapabilityDispatcherTests.cs (1)
2251$"Endpoint with name 'http' already exists on resource '{builder.Resource.Name}'. Endpoint name may not have been explicitly specified and was derived automatically from scheme argument (e.g. 'http', 'https', or 'tcp'). Multiple calls to WithEndpoint (and related methods) may result in a conflict if name argument is not specified. Each endpoint must have a unique name. For more information on networking in Aspire see: https://aka.ms/aspire/networking");
Aspire.Hosting.Testing.Tests (2)
tests\Aspire.Hosting.TestUtilities\Utils\LoggerNotificationExtensions.cs (2)
36await rns.WaitForResourceHealthyAsync(resource.Resource.Name, cancellationToken); 134if (resourceName != null && !string.Equals(resourceEvent.Resource.Name, resourceName, StringComparison.OrdinalIgnoreCase))
Aspire.Hosting.Tests (65)
ApplicationModel\Docker\DockerfileBuilderCallbackContextTests.cs (1)
134Assert.Equal("mycontainer", context.Resource.Name);
ApplicationModel\ResourceCollectionTests.cs (1)
233Assert.Equal("test", result.Name);
Backchannel\AuxiliaryBackchannelRpcTargetTests.cs (1)
2164var dashboard = Assert.Single(model.Resources, r => r.Name == KnownResourceNames.AspireDashboard);
ComputeEnvironmentEndpointResolverTests.cs (1)
161ReferenceExpression.Create($"{endpointReference.Resource.Name}.example.com");
ComputeEnvironmentValidationTests.cs (1)
110ReferenceExpression.Create($"{endpointReference.Resource.Name}.example.com");
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);
Dashboard\DashboardResourceTests.cs (8)
81r => Assert.Equal("aspire-dashboard", r.Name), 82r => Assert.Equal("my-container", r.Name) 498var container = Assert.Single(model.Resources, r => r.Name == "my-container"); 502var dashboard = Assert.Single(model.Resources, r => r.Name == "aspire-dashboard"); 544var container = Assert.Single(model.Resources, r => r.Name == "my-container"); 548var dashboard = Assert.Single(model.Resources, r => r.Name == "aspire-dashboard"); 592var dashboard = Assert.Single(model.Resources, r => r.Name == "aspire-dashboard"); 624var dashboard = Assert.Single(model.Resources, r => r.Name == "aspire-dashboard");
Dcp\DcpExecutorTests.cs (14)
2667if (context.Resource.Name == "database") 2720if (context.Resource.Name == "database") 2776if (context.Resource.Name == "database") 2994if (context.Resource.Name == "database") 3863if (@event.Resource.Name == "database") 3878if (context.Resource.Name == "database") 3888if (context.Resource.Name == "database") 3937if (context.Resource.Name == "database") 4101if (@event.Resource.Name == "database") 8979.Where(x => x.AppModelResourceName == resource.Name 9085failedResources.Add(context.Resource.Name); 9656failedResources.Add(c.Resource.Name); 9693failedResources.Add(c.Resource.Name); 10355return new(new DcpResourceState(model.Resources.ToDictionary(r => r.Name), []));
DistributedApplicationBuilderTests.cs (1)
934Assert.Contains(appBuilder.Resources, r => r.Name == longName);
DistributedApplicationTests.cs (1)
1360var aspireDashboard = model.Resources.Single(r => r.Name == KnownResourceNames.AspireDashboard);
Pipelines\DistributedApplicationPipelineTests.cs (6)
1022Assert.Equal("test-resource", capturedResource.Name); 1573var resource2Instance = configContext.Model.Resources.FirstOrDefault(r => r.Name == "resource2"); 1613var resource1Instance = configContext.Model.Resources.FirstOrDefault(r => r.Name == "resource1"); 1679capturedResource = configContext.Model.Resources.FirstOrDefault(r => r.Name == "test-resource"); 1687Assert.Equal("test-resource", capturedResource.Name); 2541var transient = model.Resources.Single(r => r.Name == "transient-resource");
ProjectResourceTests.cs (1)
944Assert.Equal("projectName", builtImage.Name);
Publishing\ResourceContainerImageManagerTests.cs (1)
1234context.LocalImageName = dockerfileAnnotation.ImageName ?? context.Resource.Name;
RequiredCommandAnnotationTests.cs (17)
153var resource = appModel.Resources.Single(r => r.Name == "test"); 169var resource = appModel.Resources.Single(r => r.Name == "test"); 187var resource = appModel.Resources.Single(r => r.Name == "test"); 212var resource = appModel.Resources.Single(r => r.Name == "test"); 239var resource = appModel.Resources.Single(r => r.Name == "test"); 263var resource = appModel.Resources.Single(r => r.Name == "test"); 284var resource = appModel.Resources.Single(r => r.Name == "test"); 304var resource1 = appModel.Resources.Single(r => r.Name == "test1"); 305var resource2 = appModel.Resources.Single(r => r.Name == "test2"); 336var resource1 = appModel.Resources.Single(r => r.Name == "test1"); 337var resource2 = appModel.Resources.Single(r => r.Name == "test2"); 371var resource1 = appModel.Resources.Single(r => r.Name == "test1"); 372var resource2 = appModel.Resources.Single(r => r.Name == "test2"); 396var resource = appModel.Resources.Single(r => r.Name == "test"); 428var resource = appModel.Resources.Single(r => r.Name == "test"); 453var resource1 = appModel.Resources.Single(r => r.Name == "test1"); 454var resource2 = appModel.Resources.Single(r => r.Name == "test2");
ResourceExtensionsTests.cs (1)
452context.Options.RemoteImageName = $"myrepo/{context.Resource.Name}";
ResourceFailureLoggingTests.cs (1)
76var category = $"{builder.ApplicationBuilder.Environment.ApplicationName}.Resources.{builder.Resource.Name}";
ResourceNotificationTests.cs (1)
1415Assert.True(notificationService.TryGetCurrentState(resourceBuilder.Resource.Name, out var resourceEvent));
WithHttpCommandTests.cs (1)
1068resource.Name,
Aspire.Hosting.TestUtilities (5)
Utils\LoggerNotificationExtensions.cs (2)
36await rns.WaitForResourceHealthyAsync(resource.Resource.Name, cancellationToken); 134if (resourceName != null && !string.Equals(resourceEvent.Resource.Name, resourceName, StringComparison.OrdinalIgnoreCase))
Utils\ManifestUtils.cs (2)
41var resourceNode = obj[resource.Name]; 88var resourceNode = obj[r.Name];
Utils\OtlpExporterActivationTestExtensions.cs (1)
16throw new InvalidOperationException($"Resource '{builder.Resource.Name}' does not have an OTLP exporter annotation.");
Aspire.Hosting.Yarp (5)
ConfigurationBuilder\YarpCluster.cs (5)
31: this(endpoint.Resource.Name, endpoint) 43return $"{endpoint.Scheme}://{endpoint.Resource.Name}"; 46return $"{endpoint.Scheme}://_{endpoint.EndpointName}.{endpoint.Resource.Name}"; 54: this(resource.Name, resource) 126var resourceName = resource.Name;
Aspire.Playground.Tests (4)
Infrastructure\DistributedApplicationExtensions.cs (2)
107return Task.WhenAll(applicationModel.Resources.Select(r => app.ResourceNotifications.WaitForResourceAsync(r.Name, r => targetStates?.Contains(r.Snapshot.State?.Text, StringComparer.OrdinalIgnoreCase) is true || r.Snapshot.IsHidden, cancellationToken))); 135var assertableResourceLogNames = applicationModel.Resources.Where(ShouldAssertErrorsForResource).Select(r => $"{environment.ApplicationName}.Resources.{r.Name}").ToList();
tests\Aspire.Hosting.TestUtilities\Utils\LoggerNotificationExtensions.cs (2)
36await rns.WaitForResourceHealthyAsync(resource.Resource.Name, cancellationToken); 134if (resourceName != null && !string.Equals(resourceEvent.Resource.Name, resourceName, StringComparison.OrdinalIgnoreCase))
Stress.AppHost (4)
CommandResources.cs (1)
1409.Where(r => r.Name != KnownResourceNames.AspireDashboard)
TestResource.cs (3)
43new(KnownProperties.Resource.ParentName, parent.Name) 60new(KnownProperties.Resource.ParentName, parent.Name) 77new(KnownProperties.Resource.ParentName, parent.Name)