Implemented interface member:
property
Name
Aspire.Hosting.ApplicationModel.IResource.Name
4 overrides of Name
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;
1 write to Name
Aspire.Hosting (1)
ApplicationModel\Resource.cs (1)
32Name = name;
2440 references to Name
Aspire.Hosting (71)
ApplicationModel\ContainerResource.cs (1)
40return $@"Type = {GetType().Name}, Name = ""{Name}"", Image = ""{imageName}""";
ApplicationModel\ExecutableLaunchRecipe.cs (1)
438throw new InvalidOperationException($"Project resource '{resource.Name}' is missing required metadata.");
ApplicationModel\ParameterResource.cs (6)
77public string ValueExpression => $"{{{Name}.value}}"; 85get => _configurationKey ?? (IsConnectionString ? $"ConnectionStrings:{Name}" : $"Parameters:{Name}"); 168Name = name ?? Name, 170Label = Name, 175Placeholder = string.Format(CultureInfo.CurrentCulture, InteractionStrings.ParametersInputsParameterPlaceholder, Name)
ApplicationModel\ProjectResource.cs (1)
43return $@"Type = {GetType().Name}, Name = ""{Name}"", Path = ""{path}""";
ApplicationModel\Resource.cs (1)
37return $@"Type = {GetType().Name}, Name = ""{Name}"", Annotations = {Annotations.Count}";
ConnectionStringBuilderExtensions.cs (1)
108evt.Logger.LogError(ex, "Failed to resolve connection string for resource '{ResourceName}'", r.Name);
ConnectionStringParameterResource.cs (1)
19string IManifestExpressionProvider.ValueExpression => $"{{{Name}.connectionString}}";
ContainerResourceBuilderExtensions.cs (7)
67Name = $"build-{builder.Resource.Name}", 87Name = $"push-{builder.Resource.Name}", 620throw new InvalidOperationException($"The resource '{builder.Resource.Name}' does not have a container image specified. Use WithImage to specify the container image and tag."); 1155throw new InvalidOperationException($"The resource '{builder.Resource.Name}' does not have a Dockerfile build annotation. Call WithDockerfile before calling WithBuildArg."); 1205throw new InvalidOperationException($"Cannot add secret parameter '{value.Resource.Name}' as build argument '{name}' while configuring resource '{builder.Resource.Name}'. Use WithBuildSecret instead."); 1286throw new InvalidOperationException($"The resource '{builder.Resource.Name}' does not have a Dockerfile build annotation. Call WithDockerfile before calling WithBuildSecret.");
Dcp\ContainerCreator.cs (2)
196containerExec.Annotate(CustomResource.OtelServiceNameAnnotation, containerExecutable.Name); 198containerExec.Annotate(CustomResource.ResourceNameAnnotation, containerExecutable.Name);
Dcp\ExecutableCreator.cs (2)
286throw new InvalidOperationException($"Project resource '{project.Name}' is missing required metadata."); 317throw new DistributedApplicationException($"Couldn't find required {nameof(DcpInstancesAnnotation)} annotation on resource {resource.Name}.");
ExecutableResourceBuilderExtensions.cs (4)
136if (builder.ApplicationBuilder.TryCreateResourceBuilder<ExecutableContainerResource>(builder.Resource.Name, out var existingBuilder)) 159cb.WithImage(builder.Resource.Name); 241throw new InvalidOperationException($"The resource '{builder.Resource.Name}' is missing the ExecutableAnnotation"); 245private sealed class ExecutableContainerResource(ExecutableResource er) : ContainerResource(er.Name)
ExternalServiceBuilderExtensions.cs (7)
143e.Logger.LogError(ex, "Failed to get value for URL parameter '{ParameterName}'", resource.UrlParameter?.Name); 155e.Logger.LogError("The value for URL parameter '{ParameterName}' is invalid: {Error}", resource.UrlParameter?.Name, message); 231throw new ArgumentException($"The URL for external service '{builder.Resource.Name}' is null.", nameof(builder)); 235throw new ArgumentException($"The URL '{builder.Resource.Uri}' for external service '{builder.Resource.Name}' cannot be used for HTTP health checks because it has a non-HTTP scheme.", nameof(builder)); 244var healthCheckKey = $"{builder.Resource.Name}_external{pathKey}_{statusCode}_check"; 419return HealthCheckResult.Unhealthy($"The URL from parameter '{_urlParameter.Name}' is invalid: {message}"); 425return HealthCheckResult.Unhealthy($"The URL from parameter '{_urlParameter.Name}' cannot be used for HTTP health checks because it has a non-HTTP scheme.");
Lifecycle\TerminalHostEventingSubscriber.cs (1)
106host.Name,
Lifecycle\TerminalHostFailureDiagnosticService.cs (1)
114logger.LogDebug(ex, "Failed to unhide terminal host '{HostName}' after failure.", host.Name);
Orchestrator\ParameterProcessor.cs (16)
146referencedParameters.TryAdd(parameter.Name, parameter); 179.LogWarning("Parameter resource {ResourceName} could not be initialized. Waiting for user input.", parameterResource.Name); 187.LogError(ex, "Failed to initialize parameter resource {ResourceName}.", parameterResource.Name); 381var message = string.Format(CultureInfo.CurrentCulture, InteractionStrings.DeleteParameterMessage, parameterResource.Name); 443return new ExecuteCommandResult { Success = true, Message = string.Format(CultureInfo.InvariantCulture, CommandStrings.ResourceSetParameter, parameterResource.Name) }; 459logger.LogInformation("Parameter value deleted from deployment state for {ParameterName}.", parameterResource.Name); 462.LogInformation("Parameter resource {ResourceName} value has been deleted from user secrets.", parameterResource.Name); 466logger.LogInformation("Parameter value cleared for {ParameterName} (not deleted from user secrets).", parameterResource.Name); 469.LogInformation("Parameter resource {ResourceName} value has been cleared.", parameterResource.Name); 491logger.LogWarning(ex, "Failed to delete parameter {ParameterName} from deployment state.", parameterResource.Name); 492return CommandResults.Failure($"Failed to delete parameter '{parameterResource.Name}'."); 495return new ExecuteCommandResult { Success = true, Message = string.Format(CultureInfo.InvariantCulture, CommandStrings.ResourceDeletedParameter, parameterResource.Name) }; 514.LogInformation("Parameter resource {ResourceName} has been resolved via user interaction.", parameterResource.Name); 524logger.LogInformation("Parameter value saved to deployment state for {ParameterName}.", parameterResource.Name); 528logger.LogWarning(ex, "Failed to save parameter {ParameterName} to deployment state.", parameterResource.Name); 691logger.LogWarning(ex, "Failed to save parameter {ParameterName} to deployment state.", parameter.Name);
ParameterResourceBuilderExtensions.cs (3)
266Name = parameter.Name, 268Label = GetOptionalString(options.Label) ?? parameter.Name, 273Placeholder = GetOptionalString(options.Placeholder) ?? string.Format(CultureInfo.CurrentCulture, InteractionStrings.ParametersInputsParameterPlaceholder, parameter.Name),
ProjectResourceBuilderExtensions.cs (3)
1015if (builder.ApplicationBuilder.TryCreateResourceBuilder<ProjectContainerResource>(builder.Resource.Name, out var existingBuilder)) 1034cb.WithImage(builder.Resource.Name); 1257private sealed class ProjectContainerResource(ProjectResource pr) : ContainerResource(pr.Name)
Publishing\ManifestPublishingContext.cs (4)
292Writer.WriteString("value", $"{{{parameter.Name}.inputs.value}}"); 337throw new DistributedApplicationException($"Could not get the container image name for resource '{container.Name}'."); 386var resourceDockerfilePath = Path.Combine(manifestDirectory, $"{container.Name}.Dockerfile"); 792resourceName = CreateFormattedParameterResourceName(parameter.Name, format);
ResourceBuilderExtensions.cs (9)
448throw 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}"); 1382var encodedResourceName = EnvironmentVariableNameEncoder.Encode(externalService.Resource.Name); 1388var envVarName = $"services__{externalService.Resource.Name}__{uri.Scheme}__0"; 1398var encodedResourceName = EnvironmentVariableNameEncoder.Encode(externalService.Resource.Name); 1403discoveryEnvVarName = $"services__{externalService.Resource.Name}__default__0"; 1408discoveryEnvVarName = $"services__{externalService.Resource.Name}__{uri.Scheme}__0"; 1414throw 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}");
Aspire.Hosting.Azure (100)
AzureBicepResource.cs (11)
169? Path.Combine(directory ?? Directory.CreateTempSubdirectory("aspire").FullName, $"{Name.ToLowerInvariant()}.module.bicep") 170: Path.Combine(TempDirectory, $"{Name.ToLowerInvariant()}.module.bicep"); 322context.Logger.LogDebug("Resource {ResourceName} is excluded from publish. Skipping provisioning.", resource.Name); 330context.Logger.LogDebug("Resource {ResourceName} is already provisioned. Skipping provisioning.", resource.Name); 346.CreateTaskAsync(new MarkdownString($"Deploying **{resource.Name}**"), context.CancellationToken) 358new MarkdownString($"Using existing deployment for **{resource.Name}**"), 369new MarkdownString($"Successfully provisioned **{resource.Name}**"), 384new MarkdownString($"Failed to provision **{resource.Name}**: {errorMessage}"), 569public string ValueExpression => $"{{{Resource.Name}.secretOutputs.{Name}}}"; 618throw new InvalidOperationException($"No output for {Name} on resource {Resource.Name}"); 628public string ValueExpression => $"{{{Resource.Name}.outputs.{Name}}}";
AzureEnvironmentResource.cs (4)
95Name = $"publish-{Name}", 96Description = $"Publishes the Azure environment configuration for {Name}.", 146Name = $"destroy-azure-{Name}", 147Description = $"Destroys the Azure resource group and all resources for {Name}.",
AzureProvisioningController.cs (26)
1926await SetResourceLocationOverrideAsync(targetBicepResource.Name, intent.Location, cancellationToken).ConfigureAwait(false); 2160!notificationService.TryGetCurrentState(environmentResource.Name, out var environmentEvent) || 2509var section = await deploymentStateManager.AcquireSectionAsync($"Azure:Deployments:{resource.Name}", cancellationToken).ConfigureAwait(false); 2514var outputs = ParseDeploymentStateJson(resource.Name, "Outputs", section.Data["Outputs"]?.GetValue<string>()); 2527["scope"] = ParseDeploymentStateJson(resource.Name, "Scope", section.Data["Scope"]?.GetValue<string>()) 2744var section = await deploymentStateManager.AcquireSectionAsync($"Azure:Deployments:{bicepResource.Name}", cancellationToken).ConfigureAwait(false); 2785=> resource.AzureResource is AzureBicepResource bicepResource ? bicepResource.Name : resource.Resource.Name; 2802var section = await deploymentStateManager.AcquireSectionAsync($"Azure:Deployments:{bicepResource.Name}", cancellationToken).ConfigureAwait(false); 2820$"Azure:Deployments:{bicepResource.Name}", 2923var section = await deploymentStateManager.AcquireSectionAsync($"Azure:Deployments:{resource.Name}", cancellationToken).ConfigureAwait(false); 2942_logger.LogInformation(ex, "Azure deployment {DeploymentId} was absent while collecting target resources for {ResourceName}.", deploymentId, resource.Name); 3138if (!notificationService.TryGetCurrentState(resource.Name, out var resourceEvent)) 3392var section = await deploymentStateManager.AcquireSectionAsync($"Azure:Deployments:{resource.Name}", cancellationToken).ConfigureAwait(false); 3406_logger.LogDebug(ex, "Unable to parse cached outputs for resource {ResourceName} while checking for Azure drift.", resource.Name); 3460resource.Name, 3481resource.Name, 3494resource.Name, 3502resource.Name, 3511var section = await deploymentStateManager.AcquireSectionAsync($"Azure:Deployments:{resource.Name}", cancellationToken).ConfigureAwait(false); 3530_logger.LogDebug(ex, "Unable to parse persisted parameters while checking whether Azure resource {ResourceName} must be deleted for a location change.", resource.Name); 3561_logger.LogDebug(ex, "Unable to verify cached Azure resource state for {ResourceName} because no Azure credential is available.", resource.Name); 3568_logger.LogDebug(ex, "Unable to verify cached Azure resource state for {ResourceName} because the Azure resource probe failed.", resource.Name); 3581var section = await deploymentStateManager.AcquireSectionAsync($"Azure:Deployments:{resource.Name}", cancellationToken).ConfigureAwait(false); 3794TryGetPublishedTerminalDeploymentState(bicepResource.Name, out publishedTerminalState)) 3808!IsResourceInState(bicepResource.Name, CancelingState)) 3813var section = await deploymentStateManager.AcquireSectionAsync($"Azure:Deployments:{bicepResource.Name}").ConfigureAwait(false);
AzureProvisioningResource.cs (2)
81var infrastructure = new AzureResourceInfrastructure(this, Name); 96var moduleDestinationPath = Path.Combine(directory ?? generationPath, $"{Name}.module.bicep");
AzureProvisioningResourceExtensions.cs (1)
186parameterName ??= Infrastructure.NormalizeBicepIdentifier(parameterResource.Name);
AzurePublishingContext.cs (10)
187var moduleDirectory = outputDirectory.CreateSubdirectory(resource.Name); 189var modulePath = Path.Combine(moduleDirectory.FullName, $"{resource.Name}.bicep"); 193var identifier = Infrastructure.NormalizeBicepIdentifier(resource.Name); 195var module = new ModuleImport(identifier, $"{resource.Name}/{resource.Name}.bicep") 197Name = resource.Name 343$"Processing Azure resource {resource.Name}", 379$"Wrote bicep module for resource {resource.Name} to {module.Path}", 476var identifier = Infrastructure.NormalizeBicepIdentifier($"{output.Resource.Name}_{output.Name}"); 493var pid = Infrastructure.NormalizeBicepIdentifier(p.Name);
AzureResourcePreparer.cs (4)
109=> resource.AzureResource is AzureBicepResource bicepResource ? bicepResource.Name : resource.Resource.Name; 428$"{resource.Name}-roles-{targetResource.Name}", 520if (!appModel.Resources.TryGetByName(roleAssignmentResource.Name, out var existingResource)) 578$"{targetResource.Name}-roles",
AzureUserAssignedIdentityResource.cs (1)
52var identityName = Infrastructure.NormalizeBicepIdentifier(infrastructure.AspireResource.Name);
Provisioning\BicepUtilities.cs (1)
158logger.LogDebug(ex, "Unable to compute current checksum for resource {ResourceName}.", resource.Name);
Provisioning\Provisioners\BicepProvisioner.cs (40)
54var stateSection = await deploymentStateManager.AcquireSectionAsync($"Azure:Deployments:{resource.Name}", cancellationToken).ConfigureAwait(false); 63logger.LogDebug("Cached deployment state for resource {ResourceName} is incomplete because provisioning state is {ProvisioningState}.", resource.Name, provisioningState); 72logger.LogDebug("Cached deployment state for resource {ResourceName} is incomplete because it is missing a checksum.", resource.Name); 78logger.LogDebug("Checksum mismatch for resource {ResourceName}. Expected cached checksum {ExpectedChecksum}, computed checksum {ActualChecksum}", resource.Name, configCheckSum, currentCheckSum); 82logger.LogDebug("Configuring resource {ResourceName} from existing deployment state.", resource.Name); 175var sectionName = $"Azure:Deployments:{resource.Name}"; 207logger.LogDebug(ex, "Unable to reconcile cached deployment state for {ResourceName} because no Azure credential is available.", resource.Name); 212logger.LogDebug(ex, "Unable to reconcile cached deployment state for {ResourceName} because the Azure deployment probe failed.", resource.Name); 220logger.LogInformation("Cached Azure deployment {DeploymentId} for {ResourceName} no longer exists. Reprovisioning.", deploymentId, resource.Name); 242logger.LogInformation("Cached Azure deployment {DeploymentId} for {ResourceName} no longer exists after reconciliation started. Reprovisioning.", deploymentId, resource.Name); 255logger.LogDebug("Cached Azure deployment {DeploymentId} for {ResourceName} has provisioning state {ProvisioningState}. Reprovisioning.", deploymentId, resource.Name, deployment.ProvisioningState); 280logger.LogDebug(ex, "Unable to publish Azure deployment operation progress for cached deployment {DeploymentId} on {ResourceName}.", deploymentId, resource.Name); 284logger.LogDebug(ex, "Unable to publish Azure deployment operation progress for cached deployment {DeploymentId} on {ResourceName} because no Azure credential is available.", deploymentId, resource.Name); 299logger.LogDebug(ex, "Unable to continue reconciling cached Azure deployment {DeploymentId} for {ResourceName}.", deploymentId, resource.Name); 304logger.LogDebug(ex, "Unable to continue reconciling cached Azure deployment {DeploymentId} for {ResourceName} because no Azure credential is available.", deploymentId, resource.Name); 357if (!TryGetDeploymentStateJsonObject(stateSection, BicepUtilities.DeploymentStateParametersKey, resource.Name, out var parameters) || 360logger.LogDebug("Cached deployment state for resource {ResourceName} cannot be reconciled because parameters or checksum are missing.", resource.Name); 371var scope = TryGetDeploymentStateJsonObject(stateSection, BicepUtilities.DeploymentStateScopeKey, resource.Name, out var cachedScope) 424throw new InvalidOperationException($"Azure deployment for {resource.Name} was canceled."); 433throw new InvalidOperationException($"Azure deployment for {resource.Name} failed."); 566logger.LogDebug("Setting parameters and scope for resource {ResourceName}", resource.Name); 579var deploymentName = executionContext.IsPublishMode ? $"{resource.Name}-{_timeProvider.GetUtcNow().ToUnixTimeSeconds()}" : resource.Name; 595resourceLogger.LogInformation("Deploying {Name} to {DeploymentTarget}", resource.Name, deploymentTargetName); 596logger.LogDebug("Starting deployment of resource {ResourceName} to {DeploymentTarget}", resource.Name, deploymentTargetName); 620var sectionName = $"Azure:Deployments:{resource.Name}"; 677var sectionName = $"Azure:Deployments:{resource.Name}"; 763resourceLogger.LogInformation("Deployment of {Name} to {DeploymentTarget} took {Elapsed}", resource.Name, deploymentTargetName, sw.Elapsed); 764logger.LogDebug("Deployment of resource {ResourceName} to {DeploymentTarget} completed in {Elapsed}", resource.Name, deploymentTargetName, sw.Elapsed); 785resourceLogger.LogError("Azure deployment of {Name} to {DeploymentTarget} completed with provisioning state {ProvisioningState}.", resource.Name, deploymentTargetName, provisioningState); 786throw new InvalidOperationException($"Deployment of {resource.Name} to {deploymentTargetName} failed with {provisioningState}"); 795var sectionName = $"Azure:Deployments:{resource.Name}"; 853var sectionName = $"Azure:Deployments:{resource.Name}"; 865logger.LogDebug("Azure deployment {DeploymentId} for {ResourceName} is active, but cached state does not match the current deployment request.", deploymentId, resource.Name); 882logger.LogDebug(ex, "Unable to adopt active Azure deployment {DeploymentId} for {ResourceName} because the Azure deployment probe failed.", deploymentId, resource.Name); 887logger.LogDebug(ex, "Unable to adopt active Azure deployment {DeploymentId} for {ResourceName} because no Azure credential is available.", deploymentId, resource.Name); 896logger.LogDebug("Unable to adopt active Azure deployment {DeploymentId} for {ResourceName} because it could not be found.", deploymentId, resource.Name); 905logger.LogInformation("Azure deployment {DeploymentId} for {ResourceName} is already active. Waiting for the existing deployment to complete.", deploymentId, resource.Name); 918logger.LogDebug("Unable to adopt active Azure deployment {DeploymentId} for {ResourceName} because it disappeared while waiting.", deploymentId, resource.Name); 933logger.LogDebug("Unable to adopt active Azure deployment {DeploymentId} for {ResourceName} because provisioning state is {ProvisioningState}.", deploymentId, resource.Name, deployment.ProvisioningState);
Aspire.Hosting.Azure.AppConfiguration (3)
AzureAppConfigurationEmulatorResource.cs (1)
12public class AzureAppConfigurationEmulatorResource(AzureAppConfigurationResource innerResource) : ContainerResource(innerResource.Name), IResource
AzureAppConfigurationExtensions.cs (2)
64Tags = { { "aspire-resource-name", infrastructure.AspireResource.Name } } 143return builder.WithBindMount(path ?? $".aace/{builder.Resource.Name}", "/app/.aace", isReadOnly: false);
Aspire.Hosting.Azure.AppContainers (20)
AzureContainerAppEnvironmentResource.cs (2)
267$"Azure Container Apps Express environment '{Name}' cannot reference internal endpoint " + 351$"The container registry configured for the Azure Container App Environment '{Name}' is not an Azure Container Registry. " +
AzureContainerAppExtensions.cs (15)
101environments.Select(environment => environment.Name).ToHashSet(StringComparer.Ordinal)); 125.SingleOrDefault(step => step.Name == $"{PrepareContainerAppsStepNamePrefix}{environment.Name}"); 285$"Azure Container Apps Express environment '{appEnvResource.Name}' cannot use {nameof(WithHttpsUpgrade)}(false) because Express requires HTTPS ingress. " + 334newIdentity = new UserAssignedIdentity(Infrastructure.NormalizeBicepIdentifier($"{appEnvResource.Name}_mi")) 356throw new InvalidOperationException($"No container registry associated with environment '{appEnvResource.Name}'. This should have been added automatically."); 378laWorkspace = new OperationalInsightsWorkspace(Infrastructure.NormalizeBicepIdentifier($"{appEnvResource.Name}_law")) 446storageVolume = new StorageAccount(Infrastructure.NormalizeBicepIdentifier($"{appEnvResource.Name}_storageVolume")) 575appEnvResource.Name, 595var sanitizedPrefix = new string(appEnvResource.Name.ToLowerInvariant() 712appEnvResource.Name, 780$"The Azure Container App Environment '{appEnvResource.Name}' is marked as existing but one or more " + 789$"The Azure Container App Environment '{appEnvResource.Name}' is marked as existing but is also " + 798$"The Azure Container App Environment '{appEnvResource.Name}' is marked as existing but is also " + 831newIdentity = new UserAssignedIdentity(Infrastructure.NormalizeBicepIdentifier($"{appEnvResource.Name}_mi")) 852throw new InvalidOperationException($"No container registry associated with environment '{appEnvResource.Name}'. This should have been added automatically.");
AzureContainerAppResource.cs (1)
65ctx.ReportingStep.Log(LogLevel.Information, new MarkdownString($"Successfully deployed **{targetResource.Name}** to Azure Container Apps environment **{containerAppEnv.Name}**. {summaryValue}"));
ContainerAppUrls.cs (1)
18?? throw new InvalidOperationException($"Missing container app environment id output for '{containerAppEnv.Name}'.");
src\Shared\ContainerRegistryInfrastructure.cs (1)
51Tags = { { "aspire-resource-name", infra.AspireResource.Name } }
Aspire.Hosting.Azure.AppService (13)
AppSvcUrls.cs (1)
19?? throw new InvalidOperationException($"Missing app service plan id output for '{computerEnv.Name}'.");
AzureAppServiceEnvironmentExtensions.cs (3)
97var prefix = Infrastructure.NormalizeBicepIdentifier(resource.Name); 148throw new InvalidOperationException($"No container registry associated with environment '{resource.Name}'. This should have been added automatically."); 236Value = BicepFunction.Interpolate($"https://{AzureAppServiceEnvironmentUtility.GetDashboardHostName(resource.Name)}.azurewebsites.net")
AzureAppServiceEnvironmentResource.cs (1)
496$"The container registry configured for the Azure App Service Environment '{Name}' is not an Azure Container Registry. " +
AzureAppServiceEnvironmentUtility.cs (3)
35var prefix = infra.AspireResource.Name; 59Name = GetDashboardHostName(infra.AspireResource.Name), 101dashboard.SiteConfig.AppSettings.Add(new AppServiceNameValuePair { Name = "ASPIRE_ENVIRONMENT_NAME", Value = infra.AspireResource.Name });
AzureAppServiceWebsiteContext.cs (4)
667siteObj.SiteConfig.AppSettings.Add(new AppServiceNameValuePair { Name = "ASPIRE_ENVIRONMENT_NAME", Value = environmentContext.Environment.Name }); 671slot.SiteConfig.AppSettings.Add(new AppServiceNameValuePair { Name = "ASPIRE_ENVIRONMENT_NAME", Value = environmentContext.Environment.Name }); 938? Infrastructure.NormalizeBicepIdentifier($"{Infra.AspireResource.Name}_slot_ra") 939: Infrastructure.NormalizeBicepIdentifier($"{Infra.AspireResource.Name}_ra");
src\Shared\ContainerRegistryInfrastructure.cs (1)
51Tags = { { "aspire-resource-name", infra.AspireResource.Name } }
Aspire.Hosting.Azure.CognitiveServices (3)
AzureOpenAIDeploymentResource.cs (1)
51/// This defaults to <see cref="Resource.Name"/>, but allows for a different deployment name in Azure.
AzureOpenAIExtensions.cs (2)
66CustomSubDomainName = ToLower(Take(Concat(infrastructure.AspireResource.Name, GetUniqueString(GetResourceGroup().Id)), 24)), 73Tags = { { "aspire-resource-name", infrastructure.AspireResource.Name } }
Aspire.Hosting.Azure.ConnectorNamespace (29)
AzureConnectorNamespaceConnectionResource.cs (1)
36BicepIdentifier = ConnectorNamespaceBicepIdentifiers.CreateConnection(parent.Name, name);
AzureConnectorNamespaceExtensions.cs (27)
77gatewayResource.Name); 83new StringLiteralExpression(gatewayResource.Name))}"), 85Tags = { { "aspire-resource-name", infrastructure.AspireResource.Name } } 147$"MCP server configuration '{configResource.Name}' requires a connector. " + 154$"MCP server configuration '{configResource.Name}' requires an access policy. " + 284$"Connector connection '{connectionName}' is already registered on Connector Namespace '{builder.Resource.Name}'."); 326var configurationName = connectionName ?? connection.Resource.Name; 351$"Connector connection '{builder.Resource.Name}' configures a display name and cannot be marked as existing."); 356$"Connector connection '{builder.Resource.Name}' configures access policies and cannot be marked as existing."); 394$"Existing connector connection '{builder.Resource.Name}' is read-only and cannot create an access policy."); 436$"Existing connector connection '{builder.Resource.Name}' is read-only and cannot create an access policy."); 475$"MCP server configuration '{configName}' is already registered on Connector Namespace '{builder.Resource.Name}'."); 502$"MCP server configuration '{builder.Resource.Name}' has connector routes and cannot be marked as existing."); 508$"MCP server configuration '{builder.Resource.Name}' configures a description and cannot be marked as existing."); 514$"MCP server configuration '{builder.Resource.Name}' configures access policies and cannot be marked as existing."); 547$"Existing MCP server configuration '{builder.Resource.Name}' is read-only and cannot create an access policy."); 591$"Existing MCP server configuration '{builder.Resource.Name}' is read-only."); 597$"Connector connection '{connection.Resource.Name}' belongs to a different Connector Namespace."); 603$"MCP server configuration '{builder.Resource.Name}' already has a connector. " + 665connection.Parent.Name, 666connection.Name, 672$"Access policy resource '{name}' is already registered on connector connection '{connection.Name}'."); 679$"Access policy '{policyName}' is already registered on connector connection '{connection.Name}'."); 691config.Parent.Name, 692config.Name, 698$"Access policy resource '{name}' is already registered on MCP server configuration '{config.Name}'."); 705$"An access policy for principal '{objectId}' is already registered on MCP server configuration '{config.Name}'.");
AzureConnectorNamespaceMcpServerConfigResource.cs (1)
30BicepIdentifier = ConnectorNamespaceBicepIdentifiers.CreateMcpServerConfig(parent.Name, name);
Aspire.Hosting.Azure.ContainerRegistry (1)
src\Shared\ContainerRegistryInfrastructure.cs (1)
51Tags = { { "aspire-resource-name", infra.AspireResource.Name } }
Aspire.Hosting.Azure.CosmosDB (18)
AzureCosmosDBContainerResource.cs (1)
114Parent.Parent.GetChildConnectionString(Name, Parent.DatabaseName, ContainerName);
AzureCosmosDBDatabaseResource.cs (1)
40Parent.GetChildConnectionString(Name, DatabaseName, null);
AzureCosmosDBEmulatorResource.cs (1)
13: ContainerResource(innerResource.Name)
AzureCosmosDBExtensions.cs (15)
126throw new DistributedApplicationException($"ConnectionStringAvailableEvent was published for the '{builder.Resource.Name}' resource but the connection string was null."); 185var password = ParameterResourceBuilderExtensions.CreateDefaultPasswordParameter(builder.ApplicationBuilder, $"{builder.Resource.Name}-certificate-passphrase"); 222var healthCheckKey = $"{builder.Resource.Name}_check"; 554var kv = builder.ApplicationBuilder.AddAzureKeyVault($"{builder.Resource.Name}-kv") 601azureResource.ConnectionStringSecretOutput = keyVaultBuilder.Resource.GetSecret($"connectionstrings--{azureResource.Name}"); 602azureResource.PrimaryAccessKeySecretOutput = keyVaultBuilder.Resource.GetSecret($"primaryaccesskey--{azureResource.Name}"); 656Tags = { { "aspire-resource-name", infrastructure.AspireResource.Name } } 670var cosmosSqlDatabase = new CosmosDBSqlDatabase(Infrastructure.NormalizeBicepIdentifier(database.Name)) 683var cosmosContainer = new CosmosDBSqlContainer(Infrastructure.NormalizeBicepIdentifier(container.Name)) 718Name = $"connectionstrings--{azureResource.Name}", 729Name = $"primaryaccesskey--{azureResource.Name}", 739var dbSecret = new KeyVaultSecret(Infrastructure.NormalizeBicepIdentifier(database.Name + "_connectionString")) 742Name = AzureCosmosDBResource.GetKeyValueSecretName(database.Name), 752var containerSecret = new KeyVaultSecret(Infrastructure.NormalizeBicepIdentifier(container.Name + "_connectionString")) 755Name = AzureCosmosDBResource.GetKeyValueSecretName(container.Name),
Aspire.Hosting.Azure.EventHubs (8)
AzureEventHubConsumerGroupResource.cs (2)
50var consumerGroup = new global::Azure.Provisioning.EventHubs.EventHubsConsumerGroup(Infrastructure.NormalizeBicepIdentifier(Name)); 63writer.WriteString(nameof(Name), ConsumerGroupName);
AzureEventHubResource.cs (2)
64var hub = new global::Azure.Provisioning.EventHubs.EventHub(Infrastructure.NormalizeBicepIdentifier(Name)); 84writer.WriteString(nameof(Name), hub.HubName);
AzureEventHubsEmulatorResource.cs (2)
13: ContainerResource(innerResource.Name), IResource 24public override string Name => _innerResource.Name;
AzureEventHubsExtensions.cs (2)
85Tags = { { "aspire-resource-name", infrastructure.AspireResource.Name } } 284.AddAzureStorage($"{builder.Resource.Name}-storage")
Aspire.Hosting.Azure.FrontDoor (2)
AzureFrontDoorExtensions.cs (2)
75Tags = { { "aspire-resource-name", infrastructure.AspireResource.Name } } 200$"Origin resource '{resource.Resource.Name}' has already been added to Azure Front Door resource '{builder.Resource.Name}'. " +
Aspire.Hosting.Azure.Functions (3)
AzureFunctionsProjectResourceExtensions.cs (1)
143.FirstOrDefault(r => r.Name == storageResourceName);
DurableTask\DurableTaskHubResource.cs (1)
56return ReferenceExpression.Create($"{Name}");
DurableTask\DurableTaskSchedulerEmulatorResource.cs (1)
19public sealed class DurableTaskSchedulerEmulatorResource(DurableTaskSchedulerResource scheduler) : ContainerResource(scheduler.Name)
Aspire.Hosting.Azure.KeyVault (3)
AzureKeyVaultResourceExtensions.cs (1)
99Tags = { { "aspire-resource-name", infrastructure.AspireResource.Name } }
AzureKeyVaultSecretReference.cs (2)
30string IManifestExpressionProvider.ValueExpression => $"{{{azureKeyVaultResource.Name}.secrets.{SecretName}}}"; 39throw new InvalidOperationException($"Secret '{secretName}' not found in Key Vault '{azureKeyVaultResource.Name}'.");
Aspire.Hosting.Azure.Kubernetes (47)
AzureKubernetesEnvironmentExtensions.cs (6)
304builder.Resource.AksParent.NodePoolSubnets[builder.Resource.Name] = subnet.Resource.Id; 526DnsPrefix = $"{aksResource.Name}-dns", 527Tags = { { "aspire-resource-name", aksResource.Name } } 748?? throw new InvalidOperationException($"AzureKubernetesLoadBalancerResource '{lb.Name}' is missing its subnet binding."); 755var subnetIdentifier = $"{existingVnet.BicepIdentifier}_{Infrastructure.NormalizeBicepIdentifier(subnet.Name)}_existing"; 770var albSubnetRole = new RoleAssignment($"albSubnetJoin_{Infrastructure.NormalizeBicepIdentifier(lb.Name)}")
AzureKubernetesEnvironmentResource.AksPipeline.cs (16)
56logger.LogInformation("Processing AKS environment '{Name}'", Name); 192.FirstOrDefault(p => p.Name == poolName && p.AksParent == environment); 219?? Name; 237$"Fetching AKS credentials for {Name}", 368.AcquireSectionAsync($"Azure:Deployments:{Name}", context.CancellationToken) 374$"No Azure deployment state was found for AKS environment '{Name}'. " + 393$"The Azure deployment state for AKS environment '{Name}' contains invalid outputs.", 400$"The Azure deployment state for AKS environment '{Name}' does not contain the deployed cluster identity."); 427$"The Azure deployment state for AKS environment '{Name}' contains an invalid scope.", 518$"Applying AGC ApplicationLoadBalancer CR for {lb.Name}", 537displaced, lb.Name, displaced); 544$"Could not resolve subnet ID for AGC load balancer '{lb.Name}'."); 549$"Cannot apply AGC ApplicationLoadBalancer CR for '{lb.Name}': " + 550$"kubeconfig was not set by aks-get-credentials-{Name}."); 646$"☸ ALB {lb.Name}", 656$"Failed to apply AGC ApplicationLoadBalancer for {lb.Name}: {ex.Message}",
AzureKubernetesEnvironmentResource.cs (20)
53Name = $"prepare-aks-{Name}", 54Description = $"Prepares Azure Kubernetes Service environment {Name}.", 63$"prepare-deployment-targets-{k8sEnv.Name}" 69Name = $"aks-get-credentials-{Name}", 70Description = $"Fetches AKS credentials for {Name}", 75RequiredBySteps = [$"prepare-{k8sEnv.Name}"] 80Name = $"aks-get-credentials-for-destroy-{Name}", 81Description = $"Fetches AKS credentials for destroying {Name}", 95.Single(step => step.Name == $"aks-get-credentials-for-destroy-{Name}"); 97.GetSteps(HelmDeploymentEngine.GetKubernetesDestroyTag(k8sEnv.Name)) 102.AcquireSectionAsync($"Azure:Deployments:{Name}") 107$"Azure environment resource required by AKS environment '{Name}' was not found."); 109.SingleOrDefault(step => step.Name == $"destroy-azure-{azureEnvironment.Name}") 111$"Azure destroy step for environment '{azureEnvironment.Name}' was not found."); 156HelmDeploymentEngine.GetHelmUninstallStepName(k8sEnv.Name), 171.AcquireSectionAsync($"Helm:{environment.Name}") 181!string.Equals(chart.Parent.Name, environment.Name, StringComparison.Ordinal)) 187.AcquireSectionAsync($"HelmChart:{environment.Name}:{chart.Name}")
AzureKubernetesLoadBalancerResource.cs (5)
86Name = $"apply-alb-crd-{Name}", 87Description = $"Applies the AGC ApplicationLoadBalancer CR for {Name}.", 90DependsOnSteps = [$"aks-get-credentials-{Parent.Name}"], 92RequiredBySteps = [$"prepare-{Parent.KubernetesEnvironment.Name}"] 134internal string AlbName => $"alb-{Name}";
Aspire.Hosting.Azure.Kubernetes.Tests (14)
AzureKubernetesEnvironmentExtensionsTests.cs (8)
31Assert.Equal("aks", aks.Resource.Name); 55Assert.Equal("gpu", gpuPool.Resource.Name); 115Assert.Equal("aks", aks.Resource.KubernetesEnvironment.Name); 317Assert.Equal("gpu", affinity.NodePool.Name); 335Assert.Equal("cpu", pool1.Resource.Name); 336Assert.Equal("gpu", pool2.Resource.Name); 348Assert.Equal("aks-acr", aks.Resource.DefaultContainerRegistry.Name); 487Assert.Equal("gpu", gpuPool.Resource.Name);
AzureKubernetesHelmChartTests.cs (1)
37Assert.Equal("cert-manager", chart.Resource.Name);
AzureKubernetesInfrastructureTests.cs (5)
50Assert.Equal("workload", affinity.NodePool.Name); 73Assert.Equal("gpu", affinity.NodePool.Name); 94Assert.Equal("cpu", affinity.NodePool.Name); 474.Single(step => step.Name == $"destroy-azure-{azureEnvironment.Name}"); 557.Single(step => step.Name == $"destroy-azure-{azureEnvironment.Name}");
Aspire.Hosting.Azure.Kusto (14)
AzureKustoBuilderExtensions.cs (11)
71Tags = { { "aspire-resource-name", infrastructure.AspireResource.Name } } 128throw new DistributedApplicationException($"ConnectionStringAvailableEvent published for resource '{db.Name}', but the connection string was null."); 133var healthCheckKey = $"{kustoDatabase.Name}_check"; 243throw new DistributedApplicationException($"ConnectionStringAvailableEvent published for resource '{resource.Name}', but the connection string was null."); 248var healthCheckKey = $"{resource.Name}_check"; 259throw new DistributedApplicationException($"Connection string for Kusto resource '{server.Name}' is not set."); 386throw new DistributedApplicationException($"Connection string for Kusto resource '{resourceBuilder.Resource.Name}' is not set."); 389var result = launcher.TryLaunchKustoExplorer(title: "", resourceBuilder.Resource.Name, connectionString, requestText: ""); 401throw new DistributedApplicationException($"Connection string for Kusto resource '{resourceBuilder.Resource.Name}' is not set."); 404var result = launcher.TryLaunchKustoWebExplorer(title: "", resourceBuilder.Resource.Name, connectionString, requestText: ""); 415message: $"Could not automatically open Kusto Web Explorer for resource '{resourceBuilder.Resource.Name}'. Click [{connectionString}]({connectionString}) to manually open the Web Explorer.",
AzureKustoClusterResource.cs (1)
123var kustoDb = KustoReadWriteDatabase.FromExisting(Infrastructure.NormalizeBicepIdentifier(db.Name));
AzureKustoEmulatorResource.cs (1)
18: base(innerResource?.Name ?? throw new ArgumentNullException(nameof(innerResource)))
AzureKustoReadWriteDatabaseResource.cs (1)
68var database = new KustoReadWriteDatabase(Infrastructure.NormalizeBicepIdentifier(Name));
Aspire.Hosting.Azure.Kusto.Tests (8)
AddAzureKustoTests.cs (1)
27Assert.Equal(name, resourceBuilder.Resource.Name);
KustoFunctionalTests.cs (7)
56await rns.WaitForResourceHealthyAsync(kusto.Resource.Name, cancellationToken: cts.Token); 109await rns.WaitForResourceHealthyAsync(kustoDb.Resource.Name, cancellationToken: cts.Token); 189await rns.WaitForResourceHealthyAsync(kusto.Resource.Name, cts.Token); 217await rns.WaitForResourceHealthyAsync(kusto.Resource.Name, cts.Token); 220await rns.WaitForResourceHealthyAsync(db1.Resource.Name, cts.Token); 221await rns.WaitForResourceAsync(db2.Resource.Name, KnownResourceStates.FailedToStart, cts.Token); 258await rns.WaitForResourceHealthyAsync(kustoDb.Resource.Name, cts.Token);
Aspire.Hosting.Azure.Network (23)
AzureNatGatewayExtensions.cs (2)
105Tags = { { "aspire-resource-name", infrastructure.AspireResource.Name } } 130Tags = { { "aspire-resource-name", infrastructure.AspireResource.Name } }
AzureNetworkSecurityGroupExtensions.cs (2)
102$"A security rule named '{rule.Name}' already exists in Network Security Group '{builder.Resource.Name}'.", 125Tags = { { "aspire-resource-name", infrastructure.AspireResource.Name } }
AzureNetworkSecurityPerimeterExtensions.cs (3)
90$"An access rule named '{rule.Name}' already exists in Network Security Perimeter '{builder.Resource.Name}'.", 149$"An association named '{associationName}' already exists in Network Security Perimeter '{nsp.Resource.Name}'.", 176Tags = { { "aspire-resource-name", infrastructure.AspireResource.Name } }
AzurePrivateDnsZoneResource.cs (4)
84Tags = { { "aspire-resource-name", resource.Name } } 92var linkIdentifier = Infrastructure.NormalizeBicepIdentifier($"{vnetLink.VNet.Name}_link"); 96Name = $"{vnetLink.VNet.Name}-link", 101Tags = { { "aspire-resource-name", vnetLink.Name } }
AzurePrivateEndpointExtensions.cs (5)
58var name = $"{subnet.Resource.Name}-{target.Resource.Name}-pe"; 125Tags = { { "aspire-resource-name", infrastructure.AspireResource.Name } } 135Name = $"{azureResource.Name}-connection", 204var linkName = $"{dnsZone.Name}-{vnet.Name}-link";
AzurePublicIPAddressExtensions.cs (1)
73Tags = { { "aspire-resource-name", infrastructure.AspireResource.Name } }
AzureSubnetResource.cs (2)
75public BicepOutputReference Id => new($"{Infrastructure.NormalizeBicepIdentifier(Name)}_Id", Parent); 100var subnet = new SubnetResource(Infrastructure.NormalizeBicepIdentifier(Name))
AzureVirtualNetworkExtensions.cs (4)
128Tags = { { "aspire-resource-name", infrastructure.AspireResource.Name } } 339$"The subnet '{subnet.Resource.Name}' is already delegated to '{existingDelegation.ServiceName}' and cannot also be delegated to '{target.DelegatedSubnetServiceName}'."); 472$"The subnet '{builder.Resource.Name}' already has an NSG created via shorthand methods. " + 619var nsgName = $"{subnet.Name}-nsg";
Aspire.Hosting.Azure.PostgreSQL (11)
AzurePostgresExtensions.cs (8)
233.ToDictionary(db => db.Name); 245azureResource.Name, 307var kv = builder.ApplicationBuilder.AddAzureKeyVault($"{builder.Resource.Name}-kv") 369ParameterResourceBuilderExtensions.CreateDefaultPasswordParameter(builder.ApplicationBuilder, $"{builder.Resource.Name}-password"); 372azureResource.ConnectionStringSecretOutput = keyVaultBuilder.Resource.GetSecret($"connectionstrings--{builder.Resource.Name}"); 466Tags = { { "aspire-resource-name", infrastructure.AspireResource.Name } } 557Name = $"connectionstrings--{azureResource.Name}", 632builder.ApplicationBuilder, $"{builder.Resource.Name}-username", secret: false, generatedUserName);
AzurePostgresFlexibleServerDatabaseResource.cs (1)
29public ReferenceExpression ConnectionStringExpression => Parent.GetDatabaseConnectionString(Name, databaseName);
AzurePostgresResource.cs (2)
15: AzureProvisioningResource(innerResource.Name, configureInfrastructure), IResourceWithConnectionString 31public override string Name => _innerResource.Name;
Aspire.Hosting.Azure.Redis (13)
AzureManagedRedisExtensions.cs (6)
104var redisContainer = builder.ApplicationBuilder.AddRedis(azureResource.Name); 139var kv = builder.ApplicationBuilder.AddAzureKeyVault($"{builder.Resource.Name}-kv") 187azureResource.ConnectionStringSecretOutput = keyVaultBuilder.Resource.GetSecret($"connectionstrings--{azureResource.Name}"); 188azureResource.PrimaryAccessKeySecretOutput = keyVaultBuilder.Resource.GetSecret($"primaryaccesskey--{azureResource.Name}"); 272Name = $"connectionstrings--{redisResource.Name}", 283Name = $"primaryaccesskey--{redisResource.Name}",
AzureRedisExtensions.cs (5)
168var redisContainer = builder.ApplicationBuilder.AddRedis(azureResource.Name); 203var kv = builder.ApplicationBuilder.AddAzureKeyVault($"{builder.Resource.Name}-kv") 236azureResource.ConnectionStringSecretOutput = keyVaultBuilder.Resource.GetSecret($"connectionstrings--{azureResource.Name}"); 269Tags = { { "aspire-resource-name", infrastructure.AspireResource.Name } } 290Name = $"connectionstrings--{redisResource.Name}",
AzureRedisResource.cs (2)
15: AzureProvisioningResource(innerResource.Name, configureInfrastructure), IResourceWithConnectionString 31public override string Name => _innerResource.Name;
Aspire.Hosting.Azure.Sandboxes (51)
AzureSandboxContainerDeployment.cs (31)
70Description = $"Deploys compute resource '{resource.TargetResource.Name}' to ACA sandbox '{resource.Name}'.", 80Description = $"Deletes ACA sandbox deployment '{resource.Name}'.", 171$"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."); 195var expectedName = $"destroy-azure-{environment.Name}"; 267resource.Name); 274resource.Name); 311resource.Name, 338resource.Name, 346var lifecycleTask = await context.ReportingStep.CreateTaskAsync($"Configuring lifecycle for {resource.Name}", context.CancellationToken).ConfigureAwait(false); 406stateSection.Data["ResourceName"] = resource.Name; 440resource.Name, 466resource.Name, 488resource.Name); 492$"The new Azure sandbox deployment '{resource.Name}' succeeded, but the previous generation could not be removed after a security-relevant endpoint change. The new deployment state was preserved, but the deployment is reported as failed so the older endpoint is not silently treated as secured.", 544resource.Name, 573["aspire-resource"] = resource.Name, 989throw 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."); 1341var stableOwnerId = CreateStableOwnerId(appHostIdentity, environmentName, fallbackScope, resource.Name); 1347resource.Name, 1365var legacyOwnerId = CreateLegacyStableOwnerId(appHostIdentity, scope, resource.Name); 1371await DeleteRemoteDeploymentsByResourceLabelAsync(context, client, scope, ownerId, resource.Name, s_noExcludedIds, s_noExcludedIds, s_noExcludedIds, throwOnError: true).ConfigureAwait(false); 1384await DeleteRemoteDeploymentsByResourceLabelAsync(context, client, scope, pendingOwnerCleanupId, resource.Name, s_noExcludedIds, s_noExcludedIds, s_noExcludedIds, throwOnError: true).ConfigureAwait(false); 1386var stableOwnerIdForScope = CreateStableOwnerId(appHostIdentity, environmentName, scope, resource.Name); 1389await DeleteRemoteDeploymentsByResourceLabelAsync(context, client, scope, stableOwnerIdForScope, resource.Name, s_noExcludedIds, s_noExcludedIds, s_noExcludedIds, throwOnError: true).ConfigureAwait(false); 2103stateSection.Data["ResourceName"] ??= resource.Name; 2318throw new InvalidOperationException($"Azure resource '{resource.Name}' is missing required output '{name}'. Ensure Azure infrastructure provisioning completed successfully."); 2334$"Azure sandbox group '{sandboxGroup.Name}' returned an invalid resource ID '{resourceId}'."); 2365internal static string GetStateSectionName(AzureSandboxContainerResource resource) => $"{SandboxStateSectionPrefix}{resource.Name}"; 2369internal static string GetDeployStepName(AzureSandboxContainerResource resource) => $"deploy-{resource.Name}"; 2371private static string GetDestroyStepName(AzureSandboxContainerResource resource) => $"destroy-{resource.Name}";
AzureSandboxEndpointPropertyValueProvider.cs (1)
45$"{{{_resource.Name}.endpoints.{_endpointReferenceExpression.Endpoint.EndpointName}.{_endpointReferenceExpression.Property.ToString().ToLowerInvariant()}}}";
AzureSandboxesExtensions.cs (4)
68Infrastructure.NormalizeBicepIdentifier($"{sandboxResource.Name}_mi")); 86Tags = { { "aspire-resource-name", infrastructure.AspireResource.Name } } 95throw new InvalidOperationException($"No container registry associated with Azure sandbox group '{sandboxResource.Name}'. This should have been added automatically."); 321$"Existing Azure sandbox group '{sandboxGroup.Name}' requires a user-assigned ACR pull identity. " +
AzureSandboxGroupResource.cs (14)
47Name = $"prepare-azure-sandboxes-{Name}", 48Description = $"Prepares Azure sandbox deployment targets for {Name}.", 55Name = $"print-azure-sandboxes-dashboard-{Name}", 56Description = $"Adds the Azure sandbox dashboard for {Name} to the deployment summary.", 152$"The container registry configured for the Azure sandbox group '{Name}' is not an Azure Container Registry. " + 174context.Summary.Add($"{Name} sandbox dashboard", new MarkdownString($"[{dashboardUrl}]({dashboardUrl})")); 197throw new InvalidOperationException($"No container registry associated with Azure sandbox group '{Name}'. This should have been added automatically."); 205$"Azure sandbox group '{Name}' uses identity '{imagePullIdentity.Name}' for both image pulls and workloads. " + 241$"Compute resource '{resource.Name}' uses managed identity '{userAssignedIdentity.Name}', but workload identities are not supported when publishing to existing Azure sandbox group '{Name}'."); 247$"Azure sandbox group '{Name}' uses identity '{userAssignedIdentity.Name}' for both image pulls and workload '{resource.Name}'. " + 309throw new InvalidOperationException($"Resource '{resource.Name}' is not deployed to Azure sandbox group '{Name}'.");
src\Shared\ContainerRegistryInfrastructure.cs (1)
51Tags = { { "aspire-resource-name", infra.AspireResource.Name } }
Aspire.Hosting.Azure.ServiceBus (14)
AzureServiceBusEmulatorResource.cs (1)
12public class AzureServiceBusEmulatorResource(AzureServiceBusResource innerResource) : ContainerResource(innerResource.Name), IResource
AzureServiceBusExtensions.cs (5)
83Tags = { { "aspire-resource-name", infrastructure.AspireResource.Name } } 311if (builder.Resource.Topics.FirstOrDefault(x => x.Name == topicName) is { } existingResource) 416var passwordParameter = ParameterResourceBuilderExtensions.CreateDefaultPasswordParameter(builder.ApplicationBuilder, $"{builder.Resource.Name}-sql-pwd", minLower: 1, minUpper: 1, minNumeric: 1); 431.AddContainer($"{builder.Resource.Name}-mssql", 596writer.WriteString("Name", emulatorResource.Name);
AzureServiceBusQueueResource.cs (2)
113var queue = new global::Azure.Provisioning.ServiceBus.ServiceBusQueue(Infrastructure.NormalizeBicepIdentifier(Name)); 164writer.WriteString(nameof(Name), queue.QueueName);
AzureServiceBusRule.cs (1)
121writer.WriteString(nameof(AzureServiceBusQueueResource.Name), rule.Name);
AzureServiceBusSubscriptionResource.cs (2)
107var subscription = new global::Azure.Provisioning.ServiceBus.ServiceBusSubscription(Infrastructure.NormalizeBicepIdentifier(Name)); 155writer.WriteString(nameof(Name), subscription.SubscriptionName);
AzureServiceBusTopicResource.cs (3)
83var topic = new global::Azure.Provisioning.ServiceBus.ServiceBusTopic(Infrastructure.NormalizeBicepIdentifier(Name)); 113if (topic.Name != null) 115writer.WriteString(nameof(Name), topic.TopicName);
Aspire.Hosting.Azure.SignalR (2)
AzureSignalREmulatorResource.cs (1)
12public class AzureSignalREmulatorResource(AzureSignalRResource innerResource) : ContainerResource(innerResource.Name), IResource
AzureSignalRExtensions.cs (1)
97Tags = { { "aspire-resource-name", infrastructure.AspireResource.Name } },
Aspire.Hosting.Azure.Sql (12)
AzureSqlExtensions.cs (3)
194.ToDictionary(db => db.Name); 198var sqlContainer = builder.ApplicationBuilder.AddSqlServer(azureResource.Name); 324Tags = { { "aspire-resource-name", infrastructure.AspireResource.Name } }
AzureSqlServerResource.cs (6)
50: base(innerResource.Name, configureInfrastructure) 175_databases.TryAdd(db.Name, db); 556var admin = builder.AddAzureUserAssignedIdentity($"{Name}-admin-identity") 560DeploymentScriptNetworkSecurityGroup = builder.AddNetworkSecurityGroup($"{Name}-nsg") 621var sqlName = azureSqlServer.Resource.Name; 712var aciSubnet = vnet.AddSubnet($"{sql.Name}-aci-subnet", aciSubnetCidr)
SubnetAddressAllocator.cs (3)
33$"Cannot automatically allocate a deployment script subnet for virtual network '{vnet.Name}' because it uses a parameterized address prefix. " + 42$"Virtual network '{vnet.Name}' address space '{vnetAddressPrefix}' is too small to allocate a /{prefixLength} subnet (requires at least {blockSize} addresses). " + 79$"Cannot allocate a /29 subnet in virtual network '{vnet.Name}' (address space: {vnetAddressPrefix}). " +
Aspire.Hosting.Azure.Storage (21)
AzureBlobStorageContainerResource.cs (1)
44global::Azure.Provisioning.Storage.BlobContainer blobContainer = new(Infrastructure.NormalizeBicepIdentifier(Name))
AzureDataLakeStorageFileSystemResource.cs (1)
43BlobContainer blobContainer = new(Infrastructure.NormalizeBicepIdentifier(Name))
AzureQueueStorageQueueResource.cs (1)
44global::Azure.Provisioning.Storage.StorageQueue queue = new(Infrastructure.NormalizeBicepIdentifier(Name))
AzureStorageEmulatorResource.cs (2)
12public class AzureStorageEmulatorResource(AzureStorageResource innerResource) : ContainerResource(innerResource.Name), IResource 17public override string Name => _innerResource.Name;
AzureStorageExtensions.cs (15)
85Tags = { { "aspire-resource-name", infrastructure.AspireResource.Name } } 218var blobConnectionString = await builder.Resource.GetBlobConnectionString().GetValueAsync(ct).ConfigureAwait(false) ?? throw new DistributedApplicationException($"{nameof(ConnectionStringAvailableEvent)} was published for the '{builder.Resource.Name}' resource but the connection string was null."); 221var queueConnectionString = await builder.Resource.GetQueueConnectionString().GetValueAsync(ct).ConfigureAwait(false) ?? throw new DistributedApplicationException($"{nameof(ConnectionStringAvailableEvent)} was published for the '{builder.Resource.Name}' resource but the connection string was null."); 246var healthCheckKey = $"{builder.Resource.Name}_check"; 391if (string.Equals(name, builder.Resource.Name + "-blobs", StringComparisons.ResourceName)) 420if (string.Equals(name, builder.Resource.Name + "-data-lake", StringComparisons.ResourceName)) 461var name = builder.Resource.Name + "-blobs"; 470var name = builder.Resource.Name + "-data-lake"; 498var healthCheckKey = $"{resource.Name}_check"; 568var healthCheckKey = $"{resource.Name}_check"; 611if (string.Equals(name, builder.Resource.Name + "-queues", StringComparisons.ResourceName)) 634var name = builder.Resource.Name + "-queues"; 662var healthCheckKey = $"{resource.Name}_check"; 804var healthCheckKey = $"{resource.Name}_check"; 846var healthCheckKey = $"{resource.Name}_check";
AzureTableStorageResource.cs (1)
65global::Azure.Provisioning.Storage.TableService service = new(Infrastructure.NormalizeBicepIdentifier(Name));
Aspire.Hosting.Azure.Tests (435)
AzureAppConfigurationExtensionsTests.cs (1)
66var appConfigRoles = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "appConfig-roles");
AzureApplicationInsightsExtensionsTests.cs (3)
23Assert.Equal("appInsights", appInsights.Resource.Name); 44Assert.Equal("appInsights", appInsights.Resource.Name); 73Assert.Equal("appInsights", appInsights.Resource.Name);
AzureAppServiceEnvironmentExtensionsTests.cs (10)
124var identity = Assert.Single(model.Resources.OfType<AzureUserAssignedIdentityResource>(), resource => resource.Name == "env-mi"); 125var roles = Assert.Single(model.Resources.OfType<AzureRoleAssignmentResource>(), resource => resource.Name == "env-mi-roles-final-registry"); 154Assert.Null(model.Resources.OfType<AzureUserAssignedIdentityResource>().SingleOrDefault(resource => resource.Name == "env-mi")); 155Assert.Null(model.Resources.OfType<AzureRoleAssignmentResource>().SingleOrDefault(resource => resource.Name.StartsWith("env-mi-roles-", StringComparison.Ordinal))); 175Assert.Same(identity.Resource, Assert.Single(model.Resources.OfType<AzureUserAssignedIdentityResource>(), resource => resource.Name == "env-mi")); 176Assert.Null(model.Resources.OfType<AzureRoleAssignmentResource>().SingleOrDefault(resource => resource.Name.StartsWith("env-mi-roles-", StringComparison.Ordinal))); 204var identityEast = Assert.Single(model.Resources.OfType<AzureUserAssignedIdentityResource>(), resource => resource.Name == "east-mi"); 205var identityWest = Assert.Single(model.Resources.OfType<AzureUserAssignedIdentityResource>(), resource => resource.Name == "west-mi"); 209var rolesEast = Assert.Single(model.Resources.OfType<AzureRoleAssignmentResource>(), resource => resource.Name == "east-mi-roles-registry"); 210var rolesWest = Assert.Single(model.Resources.OfType<AzureRoleAssignmentResource>(), resource => resource.Name == "west-mi-roles-registry");
AzureBicepProvisionerTests.cs (33)
307AssertResourceGroupPropertyIsNull(services, resource.Name); 342AssertResourceGroupPropertyIsNull(services, resource.Name); 440AssertResourceGroupPropertyIsNull(services, resource.Name); 750Assert.True(notifications.TryGetCurrentState(resource.Name, out var resourceEvent)); 784Assert.True(notifications.TryGetCurrentState(resource.Name, out var resourceEvent)); 821Assert.True(notifications.TryGetCurrentState(resource.Name, out var resourceEvent)); 936Assert.True(notifications.TryGetCurrentState(resource.Name, out var resourceEvent)); 987Assert.True(notifications.TryGetCurrentState(resource.Name, out var resourceEvent)); 1178Assert.True(notifications.TryGetCurrentState(resource.Name, out var resourceEvent)); 1293Assert.True(notifications.TryGetCurrentState(resource.Name, out var resourceEvent)); 1414var deploymentId = GetTestDeploymentId(resource.Name); 1432Assert.Equal(resource.Name, deploymentCollection.DeploymentName); 1436var section = await deploymentStateManager.AcquireSectionAsync($"Azure:Deployments:{resource.Name}"); 1449var deploymentId = GetTestDeploymentId(resource.Name); 1579var deploymentId = GetTestDeploymentId(resource.Name); 1596var section = await deploymentStateManager.AcquireSectionAsync($"Azure:Deployments:{resource.Name}"); 1611var deploymentId = GetTestDeploymentId(resource.Name); 1639var deploymentId = GetTestDeploymentId(resource.Name); 1651var section = await deploymentStateManager.AcquireSectionAsync($"Azure:Deployments:{resource.Name}"); 1663var deploymentId = GetTestDeploymentId(resource.Name); 1677var section = await deploymentStateManager.AcquireSectionAsync($"Azure:Deployments:{resource.Name}"); 1690var deploymentId = GetTestDeploymentId(resource.Name); 1706var section = await deploymentStateManager.AcquireSectionAsync($"Azure:Deployments:{resource.Name}"); 1719var deploymentId = GetTestDeploymentId(resource.Name); 1731Assert.Contains(resource.Name, exception.Message, StringComparison.Ordinal); 1732var section = await deploymentStateManager.AcquireSectionAsync($"Azure:Deployments:{resource.Name}"); 1744var deploymentId = GetTestDeploymentId(resource.Name); 1756Assert.Contains(resource.Name, exception.Message, StringComparison.Ordinal); 1757var section = await deploymentStateManager.AcquireSectionAsync($"Azure:Deployments:{resource.Name}"); 1761Assert.True(notificationService.TryGetCurrentState(resource.Name, out var resourceEvent)); 1773var deploymentId = GetTestDeploymentId(resource.Name); 1790var section = await deploymentStateManager.AcquireSectionAsync($"Azure:Deployments:{resource.Name}"); 1848var section = await deploymentStateManager.AcquireSectionAsync($"Azure:Deployments:{resource.Name}");
AzureConnectorNamespaceTests.cs (6)
707Assert.Single(office365.Resource.AccessPolicies).Name, 711Assert.Single(sharepoint.Resource.AccessPolicies).Name, 714Assert.Single(compoundParentName.Resource.AccessPolicies).Name, 715Assert.Single(compoundPolicyName.Resource.AccessPolicies).Name); 801first => Assert.StartsWith("connectorAccessPolicy_gateway_office365_reader_access_", first.Name, StringComparison.Ordinal), 802second => Assert.StartsWith("connectorAccessPolicy_gateway_office365_reader_access_", second.Name, StringComparison.Ordinal));
AzureContainerAppEnvironmentExtensionsTests.cs (13)
277var identity = Assert.Single(model.Resources.OfType<AzureUserAssignedIdentityResource>(), resource => resource.Name == "env-mi"); 278var roles = Assert.Single(model.Resources.OfType<AzureRoleAssignmentResource>(), resource => resource.Name == "env-mi-roles-final-registry"); 306var roles = Assert.Single(model.Resources.OfType<AzureRoleAssignmentResource>(), resource => resource.Name == "env-mi-roles-registry"); 349var identity = Assert.Single(model.Resources.OfType<AzureUserAssignedIdentityResource>(), resource => resource.Name == "env-mi"); 375var identity = Assert.Single(model.Resources.OfType<AzureUserAssignedIdentityResource>(), resource => resource.Name == "env-mi"); 401Assert.Null(model.Resources.OfType<AzureUserAssignedIdentityResource>().SingleOrDefault(resource => resource.Name == "env-mi")); 402Assert.Null(model.Resources.OfType<AzureRoleAssignmentResource>().SingleOrDefault(resource => resource.Name.StartsWith("env-mi-roles-", StringComparison.Ordinal))); 421Assert.Same(identity.Resource, Assert.Single(model.Resources.OfType<AzureUserAssignedIdentityResource>(), resource => resource.Name == "env-mi")); 422Assert.Null(model.Resources.OfType<AzureRoleAssignmentResource>().SingleOrDefault(resource => resource.Name.StartsWith("env-mi-roles-", StringComparison.Ordinal))); 449var identityEast = Assert.Single(model.Resources.OfType<AzureUserAssignedIdentityResource>(), resource => resource.Name == "east-mi"); 450var identityWest = Assert.Single(model.Resources.OfType<AzureUserAssignedIdentityResource>(), resource => resource.Name == "west-mi"); 454var rolesEast = Assert.Single(model.Resources.OfType<AzureRoleAssignmentResource>(), resource => resource.Name == "east-mi-roles-registry"); 455var rolesWest = Assert.Single(model.Resources.OfType<AzureRoleAssignmentResource>(), resource => resource.Name == "west-mi-roles-registry");
AzureContainerAppsTests.cs (18)
413var identityName = $"{proj.Name}-identity"; 414var projIdentity = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == identityName); 517var identityName = $"{proj.Name}-identity"; 518var projIdentity = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == identityName); 1152var projIdentity = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "api-identity"); 1153var projRolesStorage = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "api-roles-storage"); 1196var projIdentity = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "api-identity"); 1197var projRolesStorage = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "api-roles-cosmos"); 1237var projIdentity = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "api-identity"); 1238var projRolesStorage = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "api-roles-redis"); 2015var env1Resource = Assert.Single(envResources, r => r.Name == "cae1"); 2016var env2Resource = Assert.Single(envResources, r => r.Name == "cae2"); 2066var env1Resource = Assert.Single(envResources, r => r.Name == "cae1"); 2067var env2Resource = Assert.Single(envResources, r => r.Name == "cae2"); 2377var env1Resource = Assert.Single(envResources, r => r.Name == "cae1"); 2378var env2Resource = Assert.Single(envResources, r => r.Name == "cae2"); 2892Assert.Contains("acr", defaultAcr.Name); 2914Assert.Equal("customregistry", acrResources[0].Name);
AzureContainerRegistryTests.cs (1)
88var rolesResource = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "api-roles-acr");
AzureCosmosDBEmulatorFunctionalTests.cs (17)
48await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running, cts.Token); 50await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting, cts.Token); 54await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Resource.Name, cts.Token); 56await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running, cts.Token); 94await app.ResourceNotifications.WaitForResourceHealthyAsync(db.Resource.Name, cts.Token); 98hb.Configuration[$"ConnectionStrings:{db.Resource.Name}"] = await cosmos.Resource.ConnectionStringExpression.GetValueAsync(default); 99hb.AddAzureCosmosClient(db.Resource.Name); 100hb.AddCosmosDbContext<EFCoreCosmosDbContext>(db.Resource.Name, databaseName); 175await rns.WaitForResourceHealthyAsync(cosmos1.Resource.Name, cts.Token); 183[$"ConnectionStrings:{cosmos1.Resource.Name}"] = await cosmos1.Resource.ConnectionStringExpression.GetValueAsync(default) 186hb.AddAzureCosmosClient(cosmos1.Resource.Name); 223await rns.WaitForResourceHealthyAsync(cosmos2.Resource.Name, cts.Token); 232[$"ConnectionStrings:{cosmos2.Resource.Name}"] = await cosmos2.Resource.ConnectionStringExpression.GetValueAsync(default) 235hb.AddAzureCosmosClient(cosmos2.Resource.Name); 293await rns.WaitForResourceHealthyAsync(cosmos.Resource.Name, cts.Token); 297hb.Configuration[$"ConnectionStrings:{cosmos.Resource.Name}"] = await cosmos.Resource.ConnectionStringExpression.GetValueAsync(default); 298hb.AddAzureCosmosClient(cosmos.Resource.Name);
AzureCosmosDBExtensionsTests.cs (6)
211var cosmosRoles = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "cosmos-roles"); 358Assert.Equal(kvName, kv.Name); 388Assert.Equal("cosmos", cosmos.Resource.Name); 431Assert.Equal("cosmos", cosmos.Resource.Name); 492Assert.Equal("cosmos", cosmos.Resource.Name); 533Assert.Equal("cosmos", cosmos.Resource.Name);
AzureDeployerTests.cs (1)
874Name = p.Name,
AzureEnvironmentResourceExtensionsTests.cs (149)
359ResourceName = environmentResource.Name, 380Assert.True(notifications.TryGetCurrentState(environmentResource.Name, out var environmentEvent)); 384Assert.True(notifications.TryGetCurrentState(storage.Resource.Name, out var storageEvent)); 413ResourceName = environmentResource.Name, 496Assert.True(notifications.TryGetCurrentState(storage.Resource.Name, out var storageEvent)); 569Assert.True(notifications.TryGetCurrentState(storage.Resource.Name, out var storageEvent)); 708Assert.True(notifications.TryGetCurrentState(keyVault.Resource.Name, out var keyVaultEvent)); 743Assert.True(notifications.TryGetCurrentState(postgres.Resource.Name, out var postgresEvent)); 751ResourceName = postgres.Resource.Name, 832ResourceName = storage.Resource.Name, 916ResourceName = storage.Resource.Name, 1185ResourceName = storage.Resource.Name, 1249ResourceName = storage.Resource.Name, 1310ResourceName = storage.Resource.Name, 1371ResourceName = storage.Resource.Name, 1385Assert.True(notifications.TryGetCurrentState(storage.Resource.Name, out var storageEvent)); 1421Assert.True(notifications.TryGetCurrentState(storage.Resource.Name, out var storageEvent)); 1498Assert.True(notifications.TryGetCurrentState(storage.Resource.Name, out var storageEvent)); 1506ResourceName = storage.Resource.Name, 1546var activeReprovisionTask = controller.ReprovisionResourceAsync(model, storage.Resource.Name, CancellationToken.None); 1564ResourceName = storage.Resource.Name, 1575Assert.Equal([storage.Resource.Name], testBicepProvisioner.ProvisionedResources); 1605var activeReprovisionTask = controller.ReprovisionResourceAsync(model, storage1.Resource.Name, CancellationToken.None); 1615ResourceName = storage2.Resource.Name, 1627ResourceName = storage2.Resource.Name, 1668Assert.True(notifications.TryGetCurrentState(storage.Resource.Name, out var storageEvent)); 1711ResourceName = storage.Resource.Name, 1723Assert.True(notifications.TryGetCurrentState(storage.Resource.Name, out var storageEvent)); 1795ResourceName = storage.Resource.Name, 1826Assert.True(notifications.TryGetCurrentState(storage.Resource.Name, out var storageEvent)); 1829Assert.True(notifications.TryGetCurrentState(storage2.Resource.Name, out var storage2Event)); 1889ResourceName = keyVault.Resource.Name, 1908Assert.True(notifications.TryGetCurrentState(keyVault.Resource.Name, out var keyVaultEvent)); 1960ResourceName = storage.Resource.Name, 1971Assert.True(notifications.TryGetCurrentState(environmentResource.Name, out var environmentEvent)); 1974Assert.True(notifications.TryGetCurrentState(storage.Resource.Name, out var storageEvent)); 1978Assert.True(notifications.TryGetCurrentState(storage2.Resource.Name, out var storage2Event)); 2038ResourceName = storage.Resource.Name, 2052ResourceName = storage.Resource.Name, 2062Assert.True(notifications.TryGetCurrentState(storage.Resource.Name, out var storageEvent)); 2117ResourceName = storage.Resource.Name, 2135Assert.True(notifications.TryGetCurrentState(storage.Resource.Name, out var storageEvent)); 2140Assert.True(notifications.TryGetCurrentState(storage2.Resource.Name, out var storage2Event)); 2181ResourceName = storage.Resource.Name, 2197Assert.True(notifications.TryGetCurrentState(storage.Resource.Name, out var storageEvent)); 2200Assert.True(notifications.TryGetCurrentState(storage2.Resource.Name, out var storage2Event)); 2235ResourceName = storage.Resource.Name, 2246Assert.True(notifications.TryGetCurrentState(environmentResource.Name, out var environmentEvent)); 2249Assert.True(notifications.TryGetCurrentState(storage.Resource.Name, out var storageEvent)); 2252Assert.True(notifications.TryGetCurrentState(storage2.Resource.Name, out var storage2Event)); 2260Assert.True(notifications.TryGetCurrentState(environmentResource.Name, out environmentEvent)); 2263Assert.True(notifications.TryGetCurrentState(storage.Resource.Name, out storageEvent)); 2295ResourceName = storage.Resource.Name, 2306Assert.True(notifications.TryGetCurrentState(environmentResource.Name, out var environmentEvent)); 2309Assert.True(notifications.TryGetCurrentState(storage.Resource.Name, out var storageEvent)); 2318Assert.True(notifications.TryGetCurrentState(environmentResource.Name, out environmentEvent)); 2321Assert.True(notifications.TryGetCurrentState(storage.Resource.Name, out storageEvent)); 2372ResourceName = storage.Resource.Name, 2386ResourceName = storage2.Resource.Name, 2449ResourceName = storage.Resource.Name, 2460Assert.True(notifications.TryGetCurrentState(storage.Resource.Name, out var storageEvent)); 2466ResourceName = storage.Resource.Name, 2477Assert.True(notifications.TryGetCurrentState(storage.Resource.Name, out storageEvent)); 2480Assert.True(notifications.TryGetCurrentState(blobs.Resource.Name, out var blobsEvent)); 2489Assert.True(notifications.TryGetCurrentState(storage.Resource.Name, out storageEvent)); 2538await WaitForResourceStateAsync(notifications, storage2.Resource.Name, "Running"); 2539Assert.True(notifications.TryGetCurrentState(storage2.Resource.Name, out var runningStorage2Event)); 2547ResourceName = storage.Resource.Name, 2555Assert.True(notifications.TryGetCurrentState(storage.Resource.Name, out var storageEvent)); 2559Assert.True(notifications.TryGetCurrentState(storage2.Resource.Name, out var storage2Event)); 2564Assert.True(notifications.TryGetCurrentState(storage2.Resource.Name, out storage2Event)); 2593ResourceName = storage.Resource.Name, 2646ResourceName = storage.Resource.Name, 2660ResourceName = storage2.Resource.Name, 2713ResourceName = storage.Resource.Name, 2726Assert.True(notifications.TryGetCurrentState(environmentResource.Name, out var environmentEvent)); 2729Assert.True(notifications.TryGetCurrentState(storage.Resource.Name, out var storageEvent)); 2738Assert.True(notifications.TryGetCurrentState(storage2.Resource.Name, out var storage2Event)); 2786ResourceName = storage.Resource.Name, 2839ResourceName = storage.Resource.Name, 2899ResourceName = visibleResource.Name, 2960ResourceName = storage.Resource.Name, 3030ResourceName = storage.Resource.Name, 3039Assert.True(notifications.TryGetCurrentState(storage.Resource.Name, out var storageEvent)); 3091ResourceName = storage.Resource.Name, 3160ResourceName = storage.Resource.Name, 3217ResourceName = storage.Resource.Name, 3280ResourceName = storage.Resource.Name, 3351ResourceName = storage.Resource.Name, 3406ResourceName = environmentResource.Name, 3446ResourceName = environmentResource.Name, 3484Assert.True(notifications.TryGetCurrentState(environmentResource.Name, out var environmentEvent)); 3520ResourceName = environmentResource.Name, 3537Assert.True(notifications.TryGetCurrentState(environmentResource.Name, out var environmentEvent)); 3568ResourceName = environmentResource.Name, 3624ResourceName = environmentResource.Name, 3755var storage2 = model.Resources.OfType<AzureBicepResource>().Single(r => r.Name == "storage2"); 3771ResourceName = storage2.Name, 3806var storage = model.Resources.OfType<AzureBicepResource>().Single(r => r.Name == "storage"); 3850ResourceName = storage.Resource.Name, 3922ResourceName = keyVault.Resource.Name, 3935Assert.True(notifications.TryGetCurrentState(keyVault.Resource.Name, out var keyVaultEvent)); 4002ResourceName = keyVault.Resource.Name, 4039Assert.True(notifications.TryGetCurrentState(keyVault.Resource.Name, out var keyVaultEvent)); 4076ResourceName = postgres.Resource.Name, 4128ResourceName = storage.Resource.Name, 4174ResourceName = keyVault.Resource.Name, 4220ResourceName = storage.Resource.Name, 4246Assert.True(notifications.TryGetCurrentState(storage.Resource.Name, out var storageEvent)); 4288ResourceName = storage.Resource.Name, 4332Assert.True(notifications.TryGetCurrentState(environmentResource.Name, out var environmentEvent)); 4341Assert.True(notifications.TryGetCurrentState(storage.Resource.Name, out var resourceEvent)); 4385Assert.True(notifications.TryGetCurrentState(environmentResource.Name, out var environmentEvent)); 4388Assert.True(notifications.TryGetCurrentState(storage.Resource.Name, out var resourceEvent)); 4444Assert.True(notifications.TryGetCurrentState(environmentResource.Name, out var environmentEvent)); 4447Assert.True(notifications.TryGetCurrentState(storage.Resource.Name, out var storageEvent)); 4450Assert.True(notifications.TryGetCurrentState(storage2.Resource.Name, out var storage2Event)); 4487Assert.True(notifications.TryGetCurrentState(environmentResource.Name, out var environmentEvent)); 4490Assert.True(notifications.TryGetCurrentState(storage.Resource.Name, out var resourceEvent)); 4527ResourceName = environmentResource.Name, 4579ResourceName = environmentResource.Name, 4626ResourceName = environmentResource.Name, 4674ResourceName = environmentResource.Name, 4684Assert.True(notifications.TryGetCurrentState(environmentResource.Name, out var environmentEvent)); 4751Assert.True(notifications.TryGetCurrentState(storage.Name, out var storageEvent)); 4754Assert.True(notifications.TryGetCurrentState(storageRoles.Name, out var storageRolesEvent)); 4812ResourceName = storage.Resource.Name, 4822Assert.True(notifications.TryGetCurrentState(storage.Resource.Name, out var storageEvent)); 4828Assert.True(notifications.TryGetCurrentState(storage.Resource.Name, out storageEvent)); 4852Assert.True(notifications.TryGetCurrentState(azureEnvironment.Name, out var environmentEvent)); 4858Assert.Equal([storage.Resource.Name, storage2.Resource.Name], Assert.IsType<string[]>(failedResourcesProperty.Value)); 4873Assert.Equal("azure-environment", resource.Name); 4887Assert.Equal("azure-environment", resource.Name); 4927Assert.Equal("azure-environment2", resource.Name); 5488_configuredResources.Add(resource.Name); 5499_provisionedResources.Add(resource.Name); 5500_provisionedLocations[resource.Name] = resource.Parameters.TryGetValue(AzureBicepResource.KnownParameters.Location, out var location) 5624_provisionedResources.Add(resource.Name); 5634resource.Outputs["blobEndpoint"] = $"https://{resource.Name}.blob.core.windows.net/"; 5710var section = await deploymentStateManager.AcquireSectionAsync($"Azure:Deployments:{resource.Name}", cancellationToken).ConfigureAwait(false); 5788if (string.Equals(resource.Name, childResourceName, StringComparison.Ordinal)) 5797if (string.Equals(resource.Name, parentResourceName, StringComparison.Ordinal) && 5810_provisionedResources.Add(resource.Name); 5813resource.Outputs["id"] = $"/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/test-rg/providers/Microsoft.Test/resources/{resource.Name}"; 5814resource.Outputs["name"] = resource.Name; 5815resource.Outputs["vaultUri"] = $"https://{resource.Name}.vault.azure.net/"; 5816resource.Outputs["connectionString"] = $"Host={resource.Name}.postgres.database.azure.com"; 5817resource.Outputs["hostName"] = $"{resource.Name}.postgres.database.azure.com";
AzureEventHubsExtensionsTests.cs (7)
48await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running, cts.Token); 49await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting, cts.Token); 53await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Resource.Name, cts.Token); 55await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running, cts.Token); 78await app.ResourceNotifications.WaitForResourceHealthyAsync(eventHubns.Resource.Name, cts.Token); 130await app.ResourceNotifications.WaitForResourceHealthyAsync(eventHubns.Resource.Name, cts.Token); 294var ehRoles = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "eh-roles");
AzureFrontDoorTests.cs (1)
23Assert.Equal("frontdoor", frontDoor.Resource.Name);
AzureFunctionsTests.cs (16)
153Assert.NotEqual(AzureFunctionsProjectResourceExtensions.DefaultAzureFunctionsHostStorageName, storageResources.Name); 154Assert.StartsWith(AzureFunctionsProjectResourceExtensions.DefaultAzureFunctionsHostStorageName, storageResources.Name); 172r => r.Name.StartsWith(AzureFunctionsProjectResourceExtensions.DefaultAzureFunctionsHostStorageName)); 174Assert.Equal("my-own-storage", storageResource.Name); 198r => r.Name.StartsWith(AzureFunctionsProjectResourceExtensions.DefaultAzureFunctionsHostStorageName)); 211Assert.NotEqual(AzureFunctionsProjectResourceExtensions.DefaultAzureFunctionsHostStorageName, resource.Name); 212Assert.StartsWith(AzureFunctionsProjectResourceExtensions.DefaultAzureFunctionsHostStorageName, resource.Name); 323var storage = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "funcstorage634f8"); 356var projRolesStorage = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "funcapp-roles-funcstorage634f8"); 384var projRolesStorage = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "funcapp-roles-my-own-storage"); 413var projRolesStorage = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "funcapp-roles-my-own-storage"); 444var projRolesStorage = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "funcapp-roles-my-own-storage"); 445var projRolesStorage2 = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "funcapp2-roles-funcstorage634f8"); 737.Where(r => r.Name.StartsWith(AzureFunctionsProjectResourceExtensions.DefaultAzureFunctionsHostStorageName)) 763r => r.Name.StartsWith(AzureFunctionsProjectResourceExtensions.DefaultAzureFunctionsHostStorageName)); 765Assert.Equal("my-custom-storage", storageResource.Name);
AzureKeyVaultTests.cs (2)
38var kvRoles = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "mykv-roles"); 221Assert.Equal("mySecret", secretResource.Resource.Name);
AzureKustoExtensionsTests.cs (2)
30var kustoRoles = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "kusto-roles"); 80Assert.Equal("myKusto", resource.Name);
AzureLogAnalyticsWorkspaceExtensionsTests.cs (1)
17Assert.Equal("logAnalyticsWorkspace", logAnalyticsWorkspace.Resource.Name);
AzureManagedRedisExtensionsTests.cs (1)
39var redisRoles = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "redis-cache-roles");
AzureManifestUtils.cs (2)
57.OrderBy(r => r.Name) 66sb.AppendLine($"// Resource: {resource.Name}");
AzureNatGatewayExtensionsTests.cs (2)
20Assert.Equal("mynat", natGw.Resource.Name); 81Assert.Equal("mypip", pip.Resource.Name);
AzureNetworkSecurityGroupExtensionsTests.cs (1)
23Assert.Equal("web-nsg", nsg.Resource.Name);
AzureNetworkSecurityPerimeterExtensionsTests.cs (1)
23Assert.Equal("my-nsp", nsp.Resource.Name);
AzureOpenAIExtensionsTests.cs (1)
81var openaiRoles = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "openai-roles");
AzurePostgresExtensionsTests.cs (2)
43var postgresRoles = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "postgres-data-roles"); 387Assert.Equal("db-mcp", mcpContainer.Name);
AzurePrivateEndpointExtensionsTests.cs (1)
25Assert.Equal("pesubnet-blobs-pe", pe.Resource.Name);
AzureRedisExtensionsTests.cs (1)
41var redisRoles = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "redis-cache-roles");
AzureResourcePreparerTests.cs (14)
93var storageRoles = Assert.Single(model.Resources.OfType<AzureRoleAssignmentResource>(), r => r.Name == "storage-roles"); 139var storageRoles = Assert.Single(model.Resources.OfType<AzureRoleAssignmentResource>(), r => r.Name == "storage-roles"); 182Assert.DoesNotContain(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "dbsrv-roles"); 236var roleAssignmentResource = Assert.Single(model.Resources.OfType<AzureRoleAssignmentResource>(), r => r.Name == "api-roles-storage"); 273.OrderBy(resource => resource.Name, StringComparer.Ordinal)]; 286Assert.Equal("api-roles-keyvault", resource.Name); 292Assert.Equal("worker-roles-keyvault", resource.Name); 330.OrderBy(resource => resource.Name, StringComparer.Ordinal)]; 343Assert.Equal("service-a-roles-signalr", resource.Name); 349Assert.Equal("service-b-roles-signalr", resource.Name); 358.OrderBy(resource => resource.Name, StringComparer.Ordinal), 380var storageRoles = Assert.Single(model.Resources.OfType<AzureRoleAssignmentResource>(), resource => resource.Name == "storage-roles"); 590var storageRoles = Assert.Single(model.Resources.OfType<AzureRoleAssignmentResource>(), r => r.Name == "storage-roles"); 646var roleAssignmentResource = Assert.Single(model.Resources.OfType<AzureRoleAssignmentResource>(), r => r.Name == "api-roles-storage");
AzureSandboxesTests.cs (7)
422resource => resource.Name == "sandboxes-mi"); 425resource => resource.Name == "sandboxes-mi-roles-registry"); 2469Name = $"destroy-azure-{azureEnvironment.Name}", 2658var project = Assert.Single(model.GetProjectResources(), resource => resource.Name == "frontend"); 2701resource => resource.Name == "frontend"); 2727resource => resource.Name == "frontend"); 2783resource => resource.Name == "frontend");
AzureSearchExtensionsTests.cs (2)
35Assert.Equal("search", search.Resource.Name); 59var searchRoles = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "search-roles");
AzureServiceBusExtensionsTests.cs (10)
98await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running, cts.Token); 100await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting, cts.Token); 104await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Resource.Name, cts.Token); 106await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running, cts.Token); 139await rns.WaitForResourceAsync(serviceBus.Resource.Name, KnownResourceStates.Running, cts.Token); 140await rns.WaitForResourceHealthyAsync(serviceBus.Resource.Name, cts.Token); 741Assert.Equal("sb", serviceBus.Resource.Name); 760var sbRoles = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "sb-roles"); 833await app.ResourceNotifications.WaitForResourceAsync(serviceBus.Resource.Name, KnownResourceStates.Running, cts.Token); 834await app.ResourceNotifications.WaitForResourceHealthyAsync(serviceBus.Resource.Name, cts.Token);
AzureSignalREmulatorFunctionalTest.cs (4)
60await app.ResourceNotifications.WaitForResourceAsync(signalR.Resource.Name, KnownResourceStates.Running, cts.Token); 61await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting, cts.Token); 65await app.ResourceNotifications.WaitForResourceHealthyAsync(signalR.Resource.Name, cts.Token); 67await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running, cts.Token);
AzureSignalRExtensionsTests.cs (2)
25var signalrRoles = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "signalr-roles"); 47var signalrRoles = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "signalr-roles");
AzureStorageEmulatorFunctionalTests.cs (17)
51await rns.WaitForResourceAsync(storage.Resource.Name, KnownResourceStates.Running, cts.Token); 53await rns.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting, cts.Token); 57await rns.WaitForResourceHealthyAsync(blobs.Resource.Name, cts.Token); 58await rns.WaitForResourceHealthyAsync(queues.Resource.Name, cts.Token); 59await rns.WaitForResourceHealthyAsync(tables.Resource.Name, cts.Token); 61await rns.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running, cts.Token); 96await rns.WaitForResourceAsync(storage.Resource.Name, KnownResourceStates.Running, cts.Token); 98await rns.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting, cts.Token); 102await rns.WaitForResourceHealthyAsync(blobContainer.Resource.Name, cts.Token); 104await rns.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running, cts.Token); 139await rns.WaitForResourceAsync(storage.Resource.Name, KnownResourceStates.Running, cts.Token); 141await rns.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting, cts.Token); 145await rns.WaitForResourceHealthyAsync(testQueue.Resource.Name, cts.Token); 147await rns.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running, cts.Token); 193await rns.WaitForResourceHealthyAsync(storage.Resource.Name, cts.Token); 225await rns.WaitForResourceHealthyAsync(blobContainer.Resource.Name, cancellationToken: cts.Token); 265await rns.WaitForResourceHealthyAsync(queue.Resource.Name, cancellationToken: cts.Token);
AzureStorageExtensionsTests.cs (15)
461Assert.Equal("storage", storage.Resource.Name); 546Assert.Equal("storage", storage.Resource.Name); 634Assert.Equal("storage", storage.Resource.Name); 653var storageRoles = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "storage-roles"); 765Assert.Equal("storage", storage.Resource.Name); 852Assert.Equal("storage-blobs", blobService.Resource.Name); 879Assert.Equal("storage-queues", queueService.Resource.Name); 896Assert.Equal("blobs", blobServices[0].Name); 913Assert.Equal("queues", queueServices[0].Name); 930Assert.Equal("datalake", dataLakeServices[0].Name); 954var defaultBlobService = Assert.Single(blobServices, r => r.Name == "storage-blobs"); 955var customBlobService = Assert.Single(blobServices, r => r.Name == "blobs"); 957Assert.Equal("blobs", customBlobs.Resource.Name); 978Assert.Equal("blobs", customBlobs.Resource.Name); 979Assert.Equal("storage-blobs", defaultBlobs.Resource.Name);
AzureUserAssignedIdentityTests.cs (12)
88var registryResource = Assert.Single(model.Resources.OfType<AzureContainerRegistryResource>(), r => r.Name == "myregistry"); 91var identityRoleAssignments = Assert.Single(model.Resources.OfType<AzureRoleAssignmentResource>(), r => r.Name == "myidentity-roles-myregistry"); 122Assert.Equal("myidentity", identityResource.Name); 169Assert.Equal("myidentity", identityResource.Name); 178r => r.Name == "myapp-roles-mystorage"); 227Assert.Equal("myidentity", identityResource.Name); 236r => r.Name == "myapp-roles-mystorage"); 303r => Assert.True(r is AzureRoleAssignmentResource { Name: "myapp-roles-mystorage" }), 304r => Assert.True(r is AzureRoleAssignmentResource { Name: "myapp2-roles-mystorage" })); 308Assert.Equal("myidentity", identityResource.Name); 320r => r.Name == "myapp-roles-mystorage"); 322r => r.Name == "myapp2-roles-mystorage");
AzureVirtualNetworkExtensionsTests.cs (8)
22Assert.Equal("myvnet", vnet.Resource.Name); 34Assert.Equal("myvnet", vnet.Resource.Name); 48Assert.Equal("myvnet", vnet.Resource.Name); 76Assert.Equal("mysubnet", subnet.Resource.Name); 90Assert.Equal("mysubnet", subnet.Resource.Name); 402Assert.Equal("mysubnet", subnet.Resource.Name); 418Assert.Equal("mysubnet", subnet.Resource.Name); 463Assert.Equal("web-nsg", subnet.Resource.NetworkSecurityGroup.Name);
AzureWebPubSubExtensionsTests.cs (14)
35Assert.Equal(hubName, hub.Resource.Name); 63Assert.Equal("wps1", wps.Resource.Name); 108Assert.Equal("wps1", wps.Resource.Name); 138Assert.Equal("wps1", wps.Resource.Name); 164Assert.Equal("wps1", wps.Resource.Name); 218Assert.Equal("wps1", wps.Resource.Name); 234Assert.Equal("hub1", hub1.Resource.Name); 235Assert.Equal("resource2", hub2.Resource.Name); 236Assert.Equal("hub3", hub3.Resource.Name); 237Assert.Equal("hub4", hub4.Resource.Name); 262Assert.Equal("resource1", hub1.Resource.Name); 292Assert.Equal("wps1", wps.Resource.Name); 295var wpsRoles = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "wps1-roles"); 348Assert.Equal("wps1", wps.Resource.Name);
ExistingAzureResourceExtensionsTests.cs (16)
38Assert.Equal("name", existingNameParameter.Name); 40Assert.Equal("resourceGroup", existingResourceGroupParameter.Name); 59Assert.Equal("name1", existingNameParameter.Name); 61Assert.Equal("resourceGroup1", existingResourceGroupParameter.Name); 77Assert.Equal("name", existingNameParameter.Name); 79Assert.Equal("resourceGroup", existingResourceGroupParameter.Name); 98Assert.Equal("name1", existingNameParameter.Name); 100Assert.Equal("resourceGroup1", existingResourceGroupParameter.Name); 136Assert.Equal("name", existingNameParameter.Name); 138Assert.Equal("resourceGroup", existingResourceGroupParameter.Name); 157Assert.Equal("name", existingNameParameter.Name); 159Assert.Equal("resourceGroup", existingResourceGroupParameter.Name); 161Assert.Equal("subscription", existingSubscriptionParameter.Name); 195Assert.Equal("name", existingNameParameter.Name); 198Assert.Equal("subscription", existingSubscriptionParameter.Name); 216Assert.Equal("name", existingNameParameter.Name);
ExistingAzureResourceTests.cs (2)
80var messagingRoles = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "messaging-roles"); 564var messagingRoles = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "messaging-roles");
FoundryExtensionsTests.cs (5)
26Assert.Equal("myAIFoundry", resource.Name); 38Assert.Equal("deployment1", deployment.Name); 99await rns.WaitForResourceAsync(resource.Name, [KnownResourceStates.FailedToStart, KnownResourceStates.Running], cts.Token); 359.WaitForResourceAsync(deployment.Resource.Name, KnownResourceStates.Running, cancellation.Token) 672var roles = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "foundry-roles");
RoleAssignmentTests.cs (8)
243var keyVaultResource = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "keyvault"); 272var keyVaultResource = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "keyvault"); 275var sbResource = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "sb"); 302var projRoles = Assert.Single(model.Resources.OfType<AzureRoleAssignmentResource>(), r => r.Name == "api-roles-keyvault"); 330Assert.Single(model.Resources.OfType<AzureRoleAssignmentResource>(), r => r.Name == "server-roles-cache"); 353var project = Assert.Single(model.Resources.OfType<ProjectResource>(), r => r.Name == "api"); 354var targetAzureResource = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == azureResourceName); 355var projRoles = Assert.Single(model.Resources.OfType<AzureRoleAssignmentResource>(), r => r.Name == $"api-roles-{azureResourceName}");
Aspire.Hosting.Azure.WebPubSub (2)
AzureWebPubSubExtensions.cs (2)
82Tags = { { "aspire-resource-name", infrastructure.AspireResource.Name } } 110var hub = new WebPubSubHub(Infrastructure.NormalizeBicepIdentifier(hubResource.Name))
Aspire.Hosting.Blazor (13)
BlazorGatewayExtensions.cs (9)
211var pathPrefix = wasmApp.Resource.Name; 439var envPrefix = $"ClientApps__{reg.Resource.Name}"; 458BlazorGatewayLog.FailedToBuild(logger, reg.Resource.Name); 465BlazorGatewayLog.FailedToResolveManifests(logger, reg.Resource.Name); 471reg.Resource.Name, paths.Value.endpointsManifest, paths.Value.runtimeManifest); 493var destEndpoints = Path.Combine(outputDir, $"{reg.Resource.Name}.endpoints.json"); 496BlazorGatewayLog.WrotePrefixedEndpoints(context.Logger, reg.Resource.Name, destEndpoints); 498var envPrefix = $"ClientApps__{reg.Resource.Name}"; 513var publishResourceName = $"{wasmApp.Resource.Name}publish";
GatewayConfigurationBuilder.cs (3)
35var envPrefix = $"ClientApps__{reg.Resource.Name}"; 60reg.Resource.Name, 66EmitYarpRoutes(env, prefix, reg.Resource.Name, services, reg.ProxyBlazorTelemetry, addedClusters,
Manifests\EndpointsManifestTransformer.cs (1)
114reg.Resource.Name, prefix, offset, appManifest.ContentRoots.Length);
Aspire.Hosting.Blazor.Tests (7)
AddBlazorWasmAppTests.cs (3)
19Assert.Equal("store", resource.Name); 82Assert.Contains(resources, r => r.Name == "store"); 83Assert.Contains(resources, r => r.Name == "admin");
BlazorHostedExtensionsTests.cs (2)
192Assert.Equal("blazorapp-wasm-debugger", debuggerResource.Name); 271ResourceName = host.Resource.Name,
WithBlazorAppTests.cs (2)
193Assert.Equal("gateway-store-debugger", debuggerResource.Name); 323ResourceName = wasmApp.Resource.Name,
Aspire.Hosting.Browsers.Tests (24)
BrowserLogsBuilderExtensionsTests.cs (23)
48Assert.Equal("web-browser-logs", browserLogsResource.Name); 49Assert.Equal(web.Resource.Name, browserLogsResource.ParentResource.Name); 56Assert.Equal(web.Resource.Name, parentRelationship.Resource.Name); 453Assert.Equal(browserLogsResource.Name, call.ResourceName); 709adminBrowserLogsResource.Name, 886app.Services.GetRequiredService<ResourceLoggerService>().WatchAsync(browserLogsResource.Name), 963browserLogsResource.Name, 1012browserLogsResource.Name, 1033browserLogsResource.Name, 1097browserLogsResource.Name, 1110browserLogsResource.Name, 1172browserLogsResource.Name, 1225browserLogsResource.Name, 1234browserLogsResource.Name, 1285browserLogsResource.Name, 1346browserLogsResource.Name, 1362browserLogsResource.Name, 1409browserLogsResource.Name, 1445browserLogsResource.Name, 1477browserLogsResource.Name, 1493browserLogsResource.Name, 1546browserLogsResource.Name, 1562browserLogsResource.Name,
BrowserLogsSessionManagerTests.cs (1)
555resource.Name,
Aspire.Hosting.CodeGeneration.Go.Tests (1)
tests\Aspire.Hosting.CodeGeneration.TypeScript.Tests\TestTypes\TestRedisResource.cs (1)
18ReferenceExpression.Create($"{Name}");
Aspire.Hosting.CodeGeneration.Java.Tests (1)
tests\Aspire.Hosting.CodeGeneration.TypeScript.Tests\TestTypes\TestRedisResource.cs (1)
18ReferenceExpression.Create($"{Name}");
Aspire.Hosting.CodeGeneration.Python.Tests (1)
tests\Aspire.Hosting.CodeGeneration.TypeScript.Tests\TestTypes\TestRedisResource.cs (1)
18ReferenceExpression.Create($"{Name}");
Aspire.Hosting.CodeGeneration.Rust.Tests (1)
tests\Aspire.Hosting.CodeGeneration.TypeScript.Tests\TestTypes\TestRedisResource.cs (1)
18ReferenceExpression.Create($"{Name}");
Aspire.Hosting.CodeGeneration.TypeScript.Tests (1)
TestTypes\TestRedisResource.cs (1)
18ReferenceExpression.Create($"{Name}");
Aspire.Hosting.Containers.Tests (4)
ResourceFailureLoggingTests.cs (4)
34await app.ResourceNotifications.WaitForResourceAsync(container.Resource.Name, KnownResourceStates.FailedToStart, cts.Token).DefaultTimeout(TestConstants.DefaultOrchestratorTestLongTimeout); 58await app.ResourceNotifications.WaitForResourceAsync(container.Resource.Name, KnownResourceStates.FailedToStart, cts.Token).DefaultTimeout(TestConstants.DefaultOrchestratorTestLongTimeout); 82await app.ResourceNotifications.WaitForResourceAsync(container.Resource.Name, KnownResourceStates.FailedToStart, cts.Token).DefaultTimeout(TestConstants.DefaultOrchestratorTestLongTimeout); 105await app.ResourceNotifications.WaitForResourceAsync(container.Resource.Name, [KnownResourceStates.Exited, KnownResourceStates.FailedToStart], cts.Token).DefaultTimeout(TestConstants.DefaultOrchestratorTestLongTimeout);
Aspire.Hosting.DevTunnels (4)
DevTunnelResourceBuilderExtensions.cs (4)
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." 578throw new ArgumentException($"Target endpoint '{targetEndpoint.EndpointName}' on resource '{targetEndpoint.Resource.Name}' has already been added to dev tunnel '{tunnel.Name}'.", nameof(targetEndpoint)); 604var portName = $"{tunnel.Name}-{targetResource.Name}-{targetEndpoint.EndpointName}"; 829await eventing.PublishAsync<ResourceStoppedEvent>(new(portResource, e.Services, new(portResource, portResource.Name, stoppedSnapshot!)), ct).ConfigureAwait(false);
Aspire.Hosting.DevTunnels.Tests (5)
DevTunnelResourceBuilderExtensionsTests.cs (5)
566ResourceName = port.Name, 618ResourceName = port.Name, 666ResourceName = port.Name, 726tunnelPort.Name, 762Assert.True(notifications.TryGetCurrentState(port.Name, out var resourceEvent));
Aspire.Hosting.Docker (33)
DockerComposeEnvironmentContext.cs (3)
92var envVarName = $"{serviceResource.Name.ToUpperInvariant().Replace("-", "_").Replace(".", "_")}_BINDMOUNT_{bindMountIndex}"; 99description: $"Bind mount source for {serviceResource.Name}:{mount.Target}", 105logger.BindMountHostSpecificPath(serviceResource.Name, mount.Source, envVarName);
DockerComposeEnvironmentResource.cs (26)
69Name = $"prepare-deployment-targets-{Name}", 70Description = $"Prepares Docker Compose deployment targets for {Name}.", 79Name = $"publish-{Name}", 80Description = $"Publishes the Docker Compose environment configuration for {Name}.", 119Name = $"prepare-{Name}", 120Description = $"Prepares the Docker Compose environment {Name} for deployment.", 130Name = $"docker-compose-up-{Name}", 133DependsOnSteps = [$"prepare-{Name}"] 140Name = $"destroy-compose-{Name}", 141Description = $"Confirms and destroys the Docker Compose environment {Name}.", 146var stateSection = await deploymentStateManager.AcquireSectionAsync($"DockerCompose:{Name}", ctx.CancellationToken).ConfigureAwait(false); 152$"No Docker Compose deployment state found for '{Name}'. Nothing to destroy.", 158await ConfirmDestroyAsync(ctx, Name).ConfigureAwait(false); 175new MarkdownString($"Running compose down for **{Name}** using **{runtime.Name}**"), 181new MarkdownString($"Compose shutdown complete for **{Name}** ({runtime.Name})"), 186ctx.Summary.Add("🗑️ Compose", Name); 198Name = $"docker-compose-down-{Name}", 246.RequiredBy($"docker-compose-up-{Name}") 442new MarkdownString($"Running compose up for **{Name}** using **{runtime.Name}**"), 454var stateSection = await deploymentStateManager.AcquireSectionAsync($"DockerCompose:{Name}", context.CancellationToken).ConfigureAwait(false); 461new MarkdownString($"Service **{Name}** is now running with Docker Compose locally (runtime: {runtime.Name})"), 488new MarkdownString($"Running compose down for **{Name}** using **{runtime.Name}**"), 499new MarkdownString($"Compose shutdown complete for **{Name}** ({runtime.Name})"), 599var environmentName = hostEnvironment?.EnvironmentName ?? environment.Name; 626return $"aspire-{environment.Name.ToLowerInvariant()}-{appHostSha[..8].ToLowerInvariant()}"; 630return $"aspire-{environment.Name.ToLowerInvariant()}";
DockerComposeServiceExtensions.cs (2)
103var env = parameter.Name.ToUpperInvariant().Replace("-", "_"); 109description: $"Parameter {parameter.Name}",
DockerComposeServiceResource.cs (2)
333new MarkdownString($"Successfully deployed **{TargetResource.Name}** to Docker Compose environment **{environment.Name}**. No public endpoints were configured.")); 357new MarkdownString($"Successfully deployed **{TargetResource.Name}** to Docker Compose environment **{environment.Name}**."));
Aspire.Hosting.Docker.Tests (1)
DockerComposePublisherTests.cs (1)
350context.EnvironmentVariables[param.Name] = param;
Aspire.Hosting.Dotnet (4)
DotnetProjectBuildCoordinator.cs (4)
666conflictingDuplicate.Select(entry => $"'{entry.Registration.Resource.Name}'")); 814$"The build environment of .NET project resource '{snapshot.Entry.Registration.Resource.Name}' " + 833candidate.Name == $"{resource.Name}-rebuilder" && 1198$"The build environment variable '{name}' for .NET project resource '{Resource.Name}' " +
Aspire.Hosting.Dotnet.Tests (7)
DotnetProjectBuildCoordinatorTests.cs (7)
510projectBuild.Name); 513fileBuild.Name); 2202@event.Model.Resources[index] = new ExecutableResource(replaced.Resource.Name, "dotnet", workspace.Path); 2607resource => resource.Name == "first") 2611resource => resource.Name == "second") 2800resource.Resource.Name, 2842resource.Resource.Name,
Aspire.Hosting.DotnetTool.Tests (7)
AddDotnetToolTests.cs (1)
20Assert.Equal("mytool", tool.Resource.Name);
DotnetToolFunctionalTests.cs.cs (6)
23await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running, cts.Token); 24var terminalState = await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.TerminalStates, cts.Token); 28Assert.True(app.ResourceNotifications.TryGetCurrentState(resource.Resource.Name, out var resourceState)); 46await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running, cts.Token); 47var terminalState = await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.TerminalStates, cts.Token); 50Assert.True(app.ResourceNotifications.TryGetCurrentState(resource.Resource.Name, out var resourceState));
Aspire.Hosting.EntityFrameworkCore (25)
EFCoreOperationExecutor.cs (2)
334_toolResource.Name, 361_toolResource.Name,
EFMigrationResource.cs (1)
76$"Migration resource '{Name}' uses a startup .NET program that is not a {nameof(ProjectResource)}. " +
EFMigrationResourceBuilderExtensions.cs (5)
71migrationResource.Name, 81logger.LogError(ex, "EF Core database update on startup failed for resource '{ResourceName}'.", migrationResource.Name); 339builder.WithImage(migrationResource.Name); 401$"Cannot publish migration bundle '{migrationResource.Name}' as a container: add " + 419$"Cannot publish migration bundle '{migrationResource.Name}' as a container: multiple " +
EFResourceBuilderExtensions.cs (17)
304? $"{migrationResource.Name}-generate-migration-script" 308? $"{migrationResource.Name}-generate-migration-bundle" 336Description = $"Generate EF Core migration SQL script for {migrationResource.Name}", 345? Path.Combine(outputDir, migrationResource.Name + ".sql") 361? [WellKnownPipelineSteps.Publish, $"build-{migrationResource.Name}"] 380Description = $"Generate EF Core migration bundle for {migrationResource.Name}", 420if (StringComparer.Ordinal.Compare(sibling.Name, current.Name) >= 0) 425if (predecessor is null || StringComparer.Ordinal.Compare(sibling.Name, predecessor.Name) > 0) 439? $"{predecessor.Name}-generate-migration-bundle" 440: $"{predecessor.Name}-generate-migration-script"; 464logger.LogInformation("Generating {Operation} for '{ResourceName}'...", operationName, migrationResource.Name); 476logger.LogInformation("{Operation} generated successfully for '{ResourceName}'.", operationName, migrationResource.Name); 480throw new InvalidOperationException($"Failed to generate {operationName} for '{migrationResource.Name}': {result.ErrorMessage}"); 494return migrationResource.Name + (isWindowsBundle ? ".exe" : string.Empty); 729var toolName = $"ef-tool-{migrationResource.Name}";
Aspire.Hosting.EntityFrameworkCore.Tests (14)
AddEFMigrationsTests.cs (7)
25Assert.Equal("mymigrations", migrations.Resource.Name); 39Assert.Equal("mymigrations", migrations.Resource.Name); 53Assert.Equal("mymigrations", migrations.Resource.Name); 68Assert.Equal("mymigrations", migrations.Resource.Name); 85Assert.Equal("mymigrations", migrationResource.Name); 300var toolResource = Assert.Single(appModel.Resources.OfType<DotnetToolResource>(), r => r.Name == "ef-tool-mymigrations"); 320ReferenceExpression.Create($"Host=localhost;Database={Name}");
EFBuildReadinessTests.cs (3)
48Assert.True(app.ResourceNotifications.TryGetCurrentState(migrations.Resource.Name, out var state)); 78migrations.Resource.Name, KnownResourceStates.FailedToStart, token); 106migrations.Resource.Name, succeed ? KnownResourceStates.Finished : KnownResourceStates.FailedToStart, token);
EFMigrationPipelineTests.cs (3)
813Assert.Contains($"build-{migrations.Resource.Name}", generateStep.RequiredBySteps); 891ReferenceExpression.Create($"Host=localhost;Database={Name}"); 905ReferenceExpression.Create($"{Parent};Database={Name}");
EFMigrationWaitForTests.cs (1)
108Assert.Equal("mymigrations", migrationResource.Name);
Aspire.Hosting.Foundry (87)
FoundryExtensions.cs (7)
243var healthCheckKey = $"{resource.Name}_check"; 504var healthCheckKey = $"{deployment.Name}_check"; 552var accountNamePrefix = infrastructure.AspireResource.Name[..Math.Min(infrastructure.AspireResource.Name.Length, 50)]; 576Tags = { { "aspire-resource-name", infrastructure.AspireResource.Name } } 607var capHost = new CognitiveServicesCapabilityHost(Infrastructure.NormalizeBicepIdentifier($"{resource.Name}-caphost"), "2025-10-01-preview") 625var cdkDeployment = new CognitiveServicesAccountDeployment(Infrastructure.NormalizeBicepIdentifier(deployment.Name))
HostedAgent\AzureHostedAgentResource.cs (11)
52Name = $"deploy-{Name}", 56ctx.ReportingStep.Log(LogLevel.Information, new MarkdownString($"Successfully deployed **{Name}** as Hosted Agent (version {version})")); 111throw new InvalidOperationException($"Container image for hosted agent '{Name}' could not be resolved."); 165throw new InvalidOperationException($"Project '{project.Name}' does not have a valid connection string."); 172Name, 202Name, 246context.Logger.LogWarning("Hosted agent '{Name}' version '{Version}' did not return an instance identity. The agent may not be able to access Foundry project storage.", Name, version.Version); 253context.Logger.LogWarning("Could not resolve the Microsoft Foundry resource ID for hosted agent '{Name}'. The agent identity '{PrincipalId}' may need the Foundry User role assigned manually.", Name, principalId); 279context.Logger.LogInformation("Assigned Foundry User role to hosted agent '{Name}' identity '{PrincipalId}'.", Name, principalId); 286Name, 525$"Unable to resolve environment variable '{environmentVariableName}' for Foundry hosted agent '{hostedAgent.Name}' from target resource '{resource.Name}'. " +
Project\AzureCognitiveServicesBase.cs (1)
114var r = AzureProvisionableAspireResource<P>.GetProvisionableResource(infra, builder.Resource.GetBicepIdentifier()) ?? throw new InvalidOperationException($"Provisionable resource for Aspire resource '{builder.Resource.Name}' not found in infrastructure.");
Project\ConnectionBuilderExtensions.cs (1)
317return builder.AddConnection($"{keyVault.Resource.Name}-{Guid.NewGuid():N}", (infra) =>
Project\ProjectBuilderExtension.cs (10)
99throw new InvalidOperationException($"Azure Cognitive Services project resource '{builder.Resource.Name}' already has a Key Vault connection configured."); 339var prefix = infra.AspireResource.Name; 396Name = aspireResource.Name, 400DisplayName = aspireResource.Name 402Tags = { { "aspire-resource-name", infra.AspireResource.Name } } 440throw new InvalidOperationException($"No container registry configured for Azure Cognitive Services project resource '{aspireResource.Name}'. A container registry is required to publish hosted agents."); 485Name = $"{aspireResource.Name}-ai", 503Name = $"{aspireResource.Name}-ai-conn", 535aspireResource.CapabilityHostConfiguration.Validate(aspireResource.Name); 725?? throw new InvalidOperationException($"Microsoft Foundry project resource '{builder.Resource.Name}' does not have a capability host configured. Call addCapabilityHost first.");
Project\ProjectResource.cs (4)
83$"https://ai.azure.com/nextgen/r/{encodedSubscriptionId},{resourceGroupName},,{Parent.Name},{Name}/home").ConfigureAwait(false); 171$"The container registry configured for the Azure Cognitive Services project '{Name}' is not an Azure Container Registry. " + 253? hostedAgent.Name
PromptAgent\AzurePromptAgentResource.cs (20)
72Name = $"deploy-{Name}-before-start", 73Description = $"Deploys prompt agent {Name} before the application starts.", 84Name = $"deploy-{Name}", 85Description = $"Deploys prompt agent {Name}.", 90new MarkdownString($"Successfully deployed **{Name}** as Prompt Agent (version {version.Version})")); 155$"Tool '{tool.Name}' belongs to project '{tool.Project.Name}' but agent '{Name}' " + 156$"belongs to project '{Project.Name}'. All tools must belong to the same project as the agent."); 164ReferenceExpression.Create($"{Project.Endpoint}/agents/{Name}"); 168yield return new("AgentName", ReferenceExpression.Create($"{Name}")); 205throw new InvalidOperationException($"Project '{project.Name}' does not have a valid endpoint."); 223var retryMessage = $"Foundry project endpoint for '{project.Name}' is not ready yet. Retrying prompt agent deployment in {s_projectEndpointReadinessDelay.TotalSeconds:n0} seconds ({retry.AttemptNumber + 1}/{ProjectEndpointReadinessMaxRetryAttempts})."; 241Name, 349logger.LogInformation("Deploying prompt agent '{AgentName}' to Foundry project '{ProjectName}'...", Name, Project.Name); 354logger.LogInformation("Successfully deployed prompt agent '{AgentName}' (version {Version})", Name, version.Version); 378logger.LogError(ex, "Failed to deploy prompt agent '{AgentName}'", Name); 396Project.Name, 433var portalUrl = $"https://ai.azure.com/nextgen/r/{encodedSubscriptionId},{resourceGroupName},,{foundryAccountName},{projectName}/build/agents/{Name}/build";
PromptAgent\PromptAgentBuilderExtensions.cs (4)
339$"Azure AI Search tool '{tool.Resource.Name}' already has a backing resource configured."); 450$"Bing Grounding tool '{tool.Resource.Name}' already has a connection configured."); 462var connection = projectBuilder.AddBingGroundingConnection($"{tool.Resource.Name}-conn", bingResourceId); 468var paramConnection = paramProjectBuilder.AddBingGroundingConnection($"{tool.Resource.Name}-conn", parameterBuilder);
src\Shared\ContainerRegistryInfrastructure.cs (1)
51Tags = { { "aspire-resource-name", infra.AspireResource.Name } }
Toolbox\FoundryToolboxBuilderExtensions.cs (3)
330builder.Resource.Parent.Name, 331builder.Resource.Name, 333search.Resource.Name);
Toolbox\FoundryToolboxResource.cs (21)
59Name = $"deploy-{Name}-before-start", 61? $"Validates existing Toolbox {Name} after the application starts." 62: $"Reconciles Toolbox {Name} after the application starts.", 72Name = $"deploy-{Name}", 74? $"Validates existing Toolbox {Name}." 75: $"Reconciles Toolbox {Name}.", 86? $"Successfully validated **{Name}** as an existing Foundry Toolbox (version {result.Version})" 87: $"Successfully reconciled **{Name}** as Foundry Toolbox (version {result.Version}, action {result.Action})")); 176: ReferenceExpression.Create($"{Parent.Endpoint}/toolboxes/{Name}/mcp?api-version={ApiVersion}"); 195$"Toolbox '{Name}' already contains a tool named '{tool.Name}'."); 213Name, 221yield return new("Name", ReferenceExpression.Create($"{Name}")); 247.ValidateAsync(Name, Version, cancellationToken).ConfigureAwait(false); 271$"Foundry project '{Parent.Name}' did not resolve to an absolute HTTPS endpoint."); 368Name, 375Name, 397logger.LogError(ex, "Failed to validate existing Toolbox '{ToolboxName}'.", Name); 401logger.LogError(ex, "Failed to reconcile Toolbox '{ToolboxName}'.", Name); 422$"Toolbox '{Name}' did not resolve to an absolute HTTPS endpoint."); 448$"{Parent.Endpoint}/toolboxes/{Name}/versions/{version}/mcp?api-version={ApiVersion}"); 462Parent.Name,
ToolResources\AzureAISearchToolResource.cs (2)
60$"Azure AI Search tool '{Name}' does not have a backing resource configured. " + 70$"Failed to resolve connection ID for Azure AI Search tool '{Name}'. " +
ToolResources\BingGroundingToolResource.cs (2)
59$"Bing Grounding tool '{Name}' does not have a project connection. " + 68$"Failed to resolve connection ID for Bing Grounding tool '{Name}'. " +
Aspire.Hosting.Foundry.Tests (19)
AddFoundryTests.cs (1)
20Assert.Equal(name, resourceBuilder.Resource.Name);
AddProjectTests.cs (1)
22Assert.Equal(name, resourceBuilder.Resource.Name);
HostedAgentExtensionTests.cs (7)
265Assert.Equal("agent-ha", hostedAgent.Name); 453Assert.DoesNotContain(builder.Resources.OfType<ContainerResource>(), resource => resource.Name == agent.Resource.Name); 626Assert.Equal(agent.Resource.Name, envVars["RESOURCE_NAME"]); 666() => configuration.ToProjectsAgentVersionCreationOptions(agent.Resource.Name)); 962var account = Assert.Single(builder.Resources.OfType<FoundryResource>(), r => r.Name == "account"); 963var account2 = Assert.Single(builder.Resources.OfType<FoundryResource>(), r => r.Name == "account2");
ProjectResourceTests.cs (3)
22Assert.Equal("my-project", project.Resource.Name); 176Assert.Equal("chat", deployment.Resource.Name); 191Assert.Equal("chat", deployment.Resource.Name);
PromptAgentTests.cs (3)
33Assert.Equal("my-agent", agent.Resource.Name); 102ResourceName = agent.Resource.Name, 185Assert.Equal("code-interp", tool.Resource.Name);
ToolboxTests.cs (4)
33Assert.Equal("field-tools", toolbox.Resource.Name); 753Assert.Equal(firstDefinition.Connection.Name, secondDefinition.Connection.Name); 804var replacement = new ContainerResource(mcp.Resource.Name);
Aspire.Hosting.Garnet (1)
GarnetBuilderExtensions.cs (1)
122throw new DistributedApplicationException($"ConnectionStringAvailableEvent was published for the '{garnet.Name}' resource but the connection string was null.");
Aspire.Hosting.Garnet.Tests (10)
AddGarnetTests.cs (2)
25Assert.Equal("myGarnet", containerResource.Name); 53Assert.Equal("myGarnet", containerResource.Name);
GarnetFunctionalTests.cs (8)
42await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running, cts.Token); 44await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting, cts.Token); 48await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Resource.Name, cts.Token); 50await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running, cts.Token); 77hb.Configuration[$"ConnectionStrings:{garnet.Resource.Name}"] = await garnet.Resource.ConnectionStringExpression.GetValueAsync(default); 79hb.AddRedisClient(garnet.Resource.Name); 155hb.Configuration[$"ConnectionStrings:{garnet1.Resource.Name}"] = $"{await garnet1.Resource.ConnectionStringExpression.GetValueAsync(default)}"; 207hb.Configuration[$"ConnectionStrings:{garnet2.Resource.Name}"] = $"{await garnet2.Resource.ConnectionStringExpression.GetValueAsync(default)}";
Aspire.Hosting.Go (4)
GoHostingExtensions.cs (4)
374$"{builder.Resource.Name}-mod-tidy", "go", builder.Resource.WorkingDirectory); 423$"{builder.Resource.Name}-mod-vendor", "go", builder.Resource.WorkingDirectory); 469$"{builder.Resource.Name}-mod-download", "go", builder.Resource.WorkingDirectory); 517$"{builder.Resource.Name}-vet-tool", "go", builder.Resource.WorkingDirectory);
Aspire.Hosting.Java (33)
JavaDockerfileGenerator.cs (19)
306jarPath = NormalizeContextRelativePath(annotation.JarPath, resource.Name, appDirectory, "its JAR"); 356$"Java application '{resource.Name}' cannot be published because its jarPath " + 453resource.Name, 575$"Java application '{resource.Name}' cannot be published because the OpenTelemetry agent " + 600$"The OpenTelemetry agent path '{authored}' configured on resource '{resource.Name}' " + 612$"The OpenTelemetry agent path '{authored}' configured on resource '{resource.Name}' " + 711? $"cp {ShellQuote(NormalizeContextRelativePath(artifact.RelativePath, resource.Name, appDirectory, "its JAR artifact"))} {ContainerArtifactPath}" 716? SelectQuarkusArtifactCommand(outputDirectory, outputGlob, resource.Name) 718? SelectNamedJarCommand(namedJar, ContainerArtifactPath, resource.Name) 719: SelectSingleJarCommand(outputGlob, ContainerArtifactPath, resource.Name); 743CacheId: $"aspire-java-{tool.ToString().ToLowerInvariant()}-{resource.Name.ToLowerInvariant()}", 1010$"Java application '{resource.Name}' cannot be published because its {wrapper} has no " + 1046$"Java application '{resource.Name}' cannot be published because its wrapper " + 1057$"Java application '{resource.Name}' cannot be published because the wrapper " + 1063$"Java application '{resource.Name}' cannot be published because there is no " + 1082$"Java application '{resource.Name}' cannot be published because its wrapper " + 1098$"Java application '{resource.Name}' cannot be published because its wrapper path " + 1155$"The Java application '{resource.Name}' cannot be published because no build tool was found. " + 1178$"The Java application '{resource.Name}' cannot be published because no build tool was found. " +
JavaHostingExtensions.cs (14)
136$"Java application '{resource.Name}' cannot be published because its working " + 596: RequireBuildTool(resource.WorkingDirectory, resource.Name); 617tool = RequireBuildTool(resource.WorkingDirectory, resource.Name); 762buildResourceName: $"{builder.Resource.Name}-maven-build", 795buildResourceName: $"{builder.Resource.Name}-gradle-build", 811$"Resource '{builder.Resource.Name}' is already configured to build with {existing.Tool}. " + 818$"Resource '{builder.Resource.Name}' is already configured to launch with {launchTool.Tool}. " + 906.FirstOrDefault(resource => string.Equals(resource.Name, buildResourceName, StringComparisons.ResourceName)); 977.FirstOrDefault(r => string.Equals(r.Name, buildStepName, StringComparisons.ResourceName)); 1255$"Java application '{builder.Resource.Name}' cannot be published because it uses " + 1322buildResourceName: $"{builder.Resource.Name}-{(tool is JavaBuildTool.Gradle ? "gradle" : "maven")}-build", 1432$"Java application '{resource.Name}' has no launch mode configured. Call {nameof(WithMavenGoal)} " + 1538$"Java application '{resource.Name}' has no wrapper at '{wrapperPath}'. That path came " + 1546$"Java application '{resource.Name}' has no {wrapperName} in '{resource.WorkingDirectory}' " +
Aspire.Hosting.Java.Tests (4)
AddJavaAppPublishTests.cs (1)
1240var published = Assert.Single(model.Resources.OfType<ContainerResource>(), r => r.Name == "worker");
AddJavaAppTests.cs (1)
118Assert.Equal("myapi", app.Resource.Name);
AddQuarkusAppTests.cs (1)
32resource => resource.Name == $"inventory-{toolName}-build");
AddSpringBootAppTests.cs (1)
298resource => resource.Name == $"catalog-{toolName}-build");
Aspire.Hosting.JavaScript (13)
JavaScriptHostingExtensions.cs (13)
1904builder.TryCreateResourceBuilder<ContainerResource>(resource.Name, out var containerBuilder)) 1906var validationStepName = $"validate-javascript-dockerfile-run-script-{resource.Name}"; 1919Description = $"Validates that JavaScript app '{resource.Name}' does not publish an ignored run script with an existing Dockerfile.", 1983$"JavaScript app resource '{resource.Name}' is configured to run script '{runScript.ScriptName}'{argsClause}, but publish is using the existing Dockerfile '{dockerfileBuildAnnotation.DockerfilePath}'. " + 2115resourceLogger.LogWarning("Could not find a node_modules directory in or above '{AppDirectory}' for resource '{ResourceName}'. Automatic HTTPS configuration won't be available. Ensure packages are installed before starting the app.", appDirectory, resource.Name); 2123var aspireConfigDir = Path.Join(nodeModulesDir, ".aspire", appHostId, resource.Name); 2151resourceLogger.LogWarning(ex, "Failed to generate Aspire Vite HTTPS config wrapper for resource '{ResourceName}'. Falling back to existing Vite config without Aspire modifications. Automatic HTTPS configuration won't be available", resource.Name); 2872$"Bun apps cannot be debugged through the Node dev-server debug path. '{resource.Name}' is a {nameof(BunAppResource)}; use {nameof(AddBunApp)}, which wires its own Bun debug support."); 2878$"Deno apps cannot be debugged through the Node dev-server debug path. '{resource.Name}' is a {nameof(DenoAppResource)}; use {nameof(AddDenoApp)}, which wires its own Deno debug support."); 2942var debuggerResourceName = $"{parentResource.Name}-browser"; 2964$"Resource '{parentResource.Name}' does not have an HTTP or HTTPS endpoint. Browser debugging requires an endpoint to navigate to."); 3015var installerName = $"{resource.Resource.Name}-installer"; 3083var installerName = $"{resource.Resource.Name}-installer";
Aspire.Hosting.JavaScript.Tests (29)
AddNodeAppTests.cs (1)
488Assert.Equal("viteapp-browser", browserDebuggerResource.Name);
AddViteAppTests.cs (1)
907var resources = appModel.Resources.OfType<ViteAppResource>().ToDictionary(resource => resource.Name);
BunAppFixture.cs (2)
122App.ResourceNotifications.WaitForResourceHealthyAsync(BunAppBuilder!.Resource.Name, cancellationToken), 123App.ResourceNotifications.WaitForResourceHealthyAsync(BunScriptBuilder!.Resource.Name, cancellationToken));
BunFunctionalTests.cs (2)
24using var bunClient = _bunFixture.App.CreateHttpClient(_bunFixture.BunAppBuilder!.Resource.Name, "http"); 34using var bunClient = _bunFixture.App.CreateHttpClient(_bunFixture.BunScriptBuilder!.Resource.Name, "http");
DenoAppFixture.cs (2)
156App.ResourceNotifications.WaitForResourceHealthyAsync(DenoAppBuilder!.Resource.Name, cancellationToken) 168DenoScriptBuilder.Resource.Name,
DenoFunctionalTests.cs (3)
28using var denoClient = _denoFixture.App.CreateHttpClient(_denoFixture.DenoAppBuilder!.Resource.Name, "http"); 38using var denoClient = _denoFixture.App.CreateHttpClient(_denoFixture.DenoScriptBuilder!.Resource.Name, "http"); 54var resourceName = denoFixture.DenoAppBuilder!.Resource.Name;
IntegrationTests.cs (1)
37Assert.Equal("vite-app-installer", npmInstallers[0].Name);
NodeAppFixture.cs (1)
109using var client = App.CreateHttpClient(NodeAppBuilder!.Resource.Name, endpointName: "http");
NodeFunctionalTests.cs (2)
24using var nodeClient = _nodeJsFixture.App.CreateHttpClient(_nodeJsFixture.NodeAppBuilder!.Resource.Name, "http"); 34using var npmClient = _nodeJsFixture.App.CreateHttpClient(_nodeJsFixture.NpmAppBuilder!.Resource.Name, "http");
PackageInstallationTests.cs (11)
42var nodeAppInstallResource = installerResources.Single(r => r.Name == "nodeApp-installer"); 48var nodeApp2InstallResource = installerResources.Single(r => r.Name == "nodeApp2-installer"); 113Assert.Equal("test-app-installer", installerResource.Name); 140Assert.Equal("test-app-installer", installerResource.Name); 182Assert.Equal("test-app-installer", installerResource.Name); 209Assert.Equal("test-app-installer", installerResource.Name); 236Assert.Equal("test-app-installer", installerResource.Name); 387Assert.Equal("test-app-installer", installerResource.Name); 409Assert.Equal("test-app-installer", installerResource.Name); 431Assert.Equal("test-app-installer", installerResource.Name); 451Assert.Equal("test-app-installer", installerResource.Name);
ResourceCreationTests.cs (3)
107Assert.Equal("test-app-installer", installerResource.Name); 184Assert.Equal("test-app-installer", installerResource.Name); 207Assert.Equal("test-app-installer", installerResource.Name);
Aspire.Hosting.Kafka (2)
KafkaBuilderExtensions.cs (2)
50throw new DistributedApplicationException($"ConnectionStringAvailableEvent was published for the '{kafka.Name}' resource but the connection string was null."); 249? ReferenceExpression.Create($"PLAINTEXT://localhost:29092,PLAINTEXT_HOST://localhost:{primaryEndpoint.Property(EndpointProperty.Port)},PLAINTEXT_INTERNAL://{resource.Name}:{internalEndpoint.Property(EndpointProperty.TargetPort)}")
Aspire.Hosting.Kafka.Tests (8)
AddKafkaTests.cs (1)
88Assert.Equal("kafka", containerResource.Name);
KafkaFunctionalTests.cs (7)
44await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 46await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 50await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Resource.Name).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 52await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 77hb.Configuration[$"ConnectionStrings:{kafka.Resource.Name}"] = await kafka.Resource.ConnectionStringExpression.GetValueAsync(default); 171hb.Configuration[$"ConnectionStrings:{kafka1.Resource.Name}"] = await kafka1.Resource.ConnectionStringExpression.GetValueAsync(default); 221hb.Configuration[$"ConnectionStrings:{kafka2.Resource.Name}"] = await kafka2.Resource.ConnectionStringExpression.GetValueAsync(default);
Aspire.Hosting.Keycloak.Tests (1)
KeycloakResourceBuilderTests.cs (1)
30Assert.Equal(resourceName, containerResource.Name);
Aspire.Hosting.Kubernetes (139)
CertManagerExtensions.cs (30)
344$"Gateway '{builder.Resource.Name}' is in Kubernetes environment '{gatewayEnvironment.Name}' but issuer " + 345$"'{issuer.Resource.Name}' belongs to cert-manager installation '{issuer.Resource.Parent.Name}' in environment " + 346$"'{issuerEnvironment.Name}'. cert-manager is per-cluster, so an issuer can only be used by gateways in the " + 352.WithGatewayAnnotation(ClusterIssuerAnnotationKey, issuer.Resource.Name); 369Name = $"cm-issuer-apply-{captured.Name}", 370Description = $"Applies cert-manager ClusterIssuer '{captured.Name}'", 398Name = $"cm-issuer-delete-{captured.Name}", 399Description = $"Deletes cert-manager ClusterIssuer '{captured.Name}'", 402Tags = [HelmDeploymentEngine.GetKubernetesDestroyTag(certManager.Parent.Name)] 427$"ClusterIssuer '{issuer.Name}' has no spec. Configure it with WithLetsEncryptProduction(), " + 434$"ClusterIssuer '{issuer.Name}' has no solvers configured. Add at least one " + 444"Applying cert-manager ClusterIssuer '{IssuerName}'.", issuer.Name); 452var manifestPath = Path.Combine(tempDir.FullName, $"{issuer.Name}.yaml"); 483$"kubectl apply for ClusterIssuer '{issuer.Name}' failed with exit code {result.ExitCode}: {errOut}"); 487context.Logger.LogInformation("ClusterIssuer '{IssuerName}' applied.", issuer.Name); 507environment.Name); 512var k8sIssuerName = issuer.Name.ToKubernetesResourceName(); 515"Deleting cert-manager ClusterIssuer '{IssuerName}'.", issuer.Name); 551issuer.Name, 558context.Logger.LogInformation("ClusterIssuer '{IssuerName}' deleted.", issuer.Name); 575var k8sIssuerName = issuer.Name.ToKubernetesResourceName(); 599$"Unknown issuer spec type '{issuer.Spec?.GetType().Name}' on issuer '{issuer.Name}'."); 633&& string.Equals(v.Format, issuer.Name, StringComparison.Ordinal)) 649issuer.Name, 650certManager.Parent.Name, 651issuer.Name); 662sb.Append(" name: ").AppendLine(gateway.Name.ToKubernetesResourceName()); 668$"Unknown solver type '{solver.GetType().Name}' on issuer '{issuer.Name}'.");
Deployment\HelmDeploymentEngine.cs (29)
139Name = $"check-helm-prereqs-{environment.Name}", 140Description = $"Verifies Helm CLI is available for {environment.Name}.", 152Name = $"prepare-{environment.Name}", 153Description = $"Prepares Helm chart values for {environment.Name}.", 158prepareStep.DependsOn($"check-helm-prereqs-{environment.Name}"); 164Name = $"helm-deploy-{environment.Name}", 165Description = $"Deploys {environment.Name} to Kubernetes via Helm.", 169helmDeployStep.DependsOn($"prepare-{environment.Name}"); 176Name = $"print-{environment.Name}-instructions", 177Description = $"Prints access instructions for {environment.Name}.", 181instructionsStep.DependsOn($"helm-deploy-{environment.Name}"); 188Name = $"destroy-helm-{environment.Name}", 189Description = $"Confirms and destroys the Helm deployment for {environment.Name}.", 190Tags = [GetKubernetesDestroyTag(environment.Name)], 197environment.Name); 203var stateSection = await deploymentStateManager.AcquireSectionAsync($"Helm:{environment.Name}", ctx.CancellationToken).ConfigureAwait(false); 210$"No Helm deployment state found for '{environment.Name}'. Nothing to destroy.", 236Name = GetHelmUninstallStepName(environment.Name), 237Description = $"Uninstalls the Helm release for {environment.Name}.", 238Tags = [HelmUninstallTag, GetKubernetesDestroyTag(environment.Name)], 258new MarkdownString($"Preparing Helm chart values for **{environment.Name}**"), 272new MarkdownString($"Helm chart values prepared for **{environment.Name}**"), 368var overrideFilePath = Path.Combine(outputPath, GetDeployValuesFileName(environment.Name)); 427new MarkdownString($"Deploying **{environment.Name}** to Kubernetes namespace **{@namespace}** as Helm release **{releaseName}**"), 457var deployValuesFilePath = Path.Combine(outputPath, GetDeployValuesFileName(environment.Name)); 491var stateSection = await deploymentStateManager.AcquireSectionAsync($"Helm:{environment.Name}", context.CancellationToken).ConfigureAwait(false); 558var dashboardServiceName = environment.Dashboard.Resource.Name.ToKubernetesResourceName() + "-service"; 563var dashboardDeploymentName = environment.Dashboard.Resource.Name.ToKubernetesResourceName(); 667environment.Name);
Extensions\ResourceExtensions.cs (1)
223bindingsByVolumeName[binding.Volume.Name] = binding;
KubernetesEnvironmentExtensions.cs (9)
143item => item.Annotation.Volume.Name, 150var environmentNames = string.Join(", ", volumes.Select(volume => $"'{volume.Parent.Name}'")); 165item => item.Annotation.Volume.Parent.Name, 169item => item.Annotation.Volume.Name, 190$"Kubernetes persistent volume '{volume.Name}' is used by both local container and host-process resources ({resourceNames}). " + 218string.Equals(item.VolumeName, annotation.Volume.Name, StringComparison.Ordinal)) 246$"Kubernetes persistent volume '{annotation.Volume.Name}' which belongs to environment " + 247$"'{volumeEnvironment.Name}'. A workload can only bind persistent volumes declared on its " + 294string.Equals(mount.Source, binding.Volume.Name, StringComparison.Ordinal))
KubernetesEnvironmentResource.cs (39)
241Name = $"prepare-deployment-targets-{Name}", 242Description = $"Prepares Kubernetes deployment targets for {Name}.", 253Name = $"publish-{Name}", 254Description = $"Publishes the Kubernetes environment configuration for {Name}.", 278Name = $"tls-bootstrap-{environment.Name}", 282tlsBootstrapStep.DependsOn($"helm-deploy-{environment.Name}"); 294Name = $"tls-fqdn-discovery-{environment.Name}", 298fqdnDiscoveryStep.DependsOn($"helm-deploy-{environment.Name}"); 302fqdnDiscoveryStep.DependsOn($"tls-bootstrap-{environment.Name}"); 322Name = $"gateway-field-cleanup-{environment.Name}", 326cleanupStep.RequiredBy($"helm-deploy-{environment.Name}"); 327cleanupStep.DependsOn($"prepare-{environment.Name}"); 681var valueKey = parameter.Name.ToHelmValuesSectionName(); 735ingressResource.Name); 745EndpointRoutingValidation.ThrowIfEndpointNotExternal(path.Endpoint, "Ingress", ingressResource.Name); 750EndpointRoutingValidation.ThrowIfEndpointNotExternal(defaultBackend.Endpoint, "Ingress", ingressResource.Name); 771Name = ingressResource.Name.ToKubernetesResourceName(), 777ingress.Spec.IngressClassName = await ResolveExpressionAsync(ingressResource.IngressClassName, ingressResource.Name, cancellationToken).ConfigureAwait(false); 782ingress.Metadata.Annotations[key] = await ResolveExpressionAsync(value, ingressResource.Name, cancellationToken).ConfigureAwait(false); 787ingressResource.Name, 820var backend = ResolveIngressBackend(pathRule.Endpoint, deploymentTargets, ingressResource.Name, logger); 842var defaultBackend = ResolveIngressBackend(ingressResource.DefaultBackend.Endpoint, deploymentTargets, ingressResource.Name, logger); 853SecretName = await ResolveExpressionAsync(tls.SecretName, ingressResource.Name, cancellationToken).ConfigureAwait(false), 908logger.LogWarning("Ingress '{IngressName}' produced no valid rules or default backend. Skipping.", ingressResource.Name); 976gatewayResource.Name); 984EndpointRoutingValidation.ThrowIfEndpointNotExternal(route.Endpoint, "Gateway", gatewayResource.Name); 1021claim.Metadata.Annotations[key] = await ResolveExpressionAsync(value, volumeResource.Name, cancellationToken).ConfigureAwait(false); 1039? await ResolveExpressionAsync(capacityExpression, volumeResource.Name, cancellationToken).ConfigureAwait(false) 1045var storageClass = await ResolveExpressionAsync(storageClassExpression, volumeResource.Name, cancellationToken).ConfigureAwait(false); 1068$"Gateway '{gatewayResource.Name}' must have a GatewayClassName set via WithGatewayClass(). " + 1072var gatewayName = gatewayResource.Name.ToKubernetesResourceName(); 1086gatewayResource.Name, 1093$"Gateway '{gatewayResource.Name}' configures {resolvedHostnames.Count} hostnames that would be inherited by a hostless route, " + 1099gateway.Spec.GatewayClassName = await ResolveExpressionAsync(gatewayResource.GatewayClassName, gatewayResource.Name, cancellationToken).ConfigureAwait(false); 1103gateway.Metadata.Annotations[key] = await ResolveExpressionAsync(value, gatewayResource.Name, cancellationToken).ConfigureAwait(false); 1120var resolvedSecretName = await ResolveExpressionAsync(tls.SecretName, gatewayResource.Name, cancellationToken).ConfigureAwait(false); 1201var backendRef = ResolveGatewayBackendRef(route.Endpoint, deploymentTargets, gatewayResource.Name, logger); 1410var gatewayName = gateway.Name.ToKubernetesResourceName(); 1864var gatewayName = gateway.Name.ToKubernetesResourceName();
KubernetesGatewayExtensions.cs (1)
266var secretName = $"{builder.Resource.Name}-tls";
KubernetesHelmChartExtensions.cs (16)
104installStep.DependsOn($"helm-deploy-{environment.Name}"); 116Tags = [HelmDeploymentEngine.GetKubernetesDestroyTag(environment.Name)] 293chart.Name, chart.ChartReference, chart.ChartVersion, @namespace); 359? $"helm upgrade --install for chart '{chart.Name}' failed with exit code {exitCode}" 360: $"helm upgrade --install for chart '{chart.Name}' failed: {errorOutput}"; 380chart.Name, releaseName, @namespace); 394environment.Name); 421releaseName, chart.Name, @namespace); 453? $"helm uninstall for chart '{chart.Name}' failed with exit code {exitCode}" 454: $"helm uninstall for chart '{chart.Name}' failed: {errorOutput}"; 468var releaseName = chart.ReleaseName ?? chart.Name; 469var @namespace = chart.Namespace ?? chart.Name; 484$"Cannot derive a Helm release name from resource name '{chart.Name}'. " + 499$"Cannot derive a Kubernetes namespace from resource name '{chart.Name}'. " + 509=> $"HelmChart:{environment.Name}:{chart.Name}";
KubernetesIngressExtensions.cs (1)
289var secretName = $"{builder.Resource.Name}-tls";
KubernetesPersistentVolumeExtensions.cs (4)
269builder.WithAnnotation(new VolumeMountBindingAnnotation(volume.Resource.Name) 431var binding = new VolumeMountBindingAnnotation(volume.Resource.Name) 443volume.Resource.Name, 483var environmentName = volume.Resource.Parent.Name.ToKubernetesResourceName();
KubernetesPersistentVolumeLocalStorage.cs (1)
32VolumeMountPathResolver.GetStablePathSegment(volume.Parent.Name),
KubernetesPersistentVolumeResource.cs (1)
124internal string GetClaimName() => Name.ToKubernetesResourceName();
KubernetesPublishingContext.cs (1)
476podSpec.NodeSelector[nodePool.NodeSelectorLabelKey] = nodePool.Name;
KubernetesResource.cs (6)
678var formattedName = conditionParam.Name.ToHelmValuesSectionName(); 753if (!mappings.TryGetValue(parameter.Name, out var existing)) 755mappings.Add(parameter.Name, helmValue); 765var valuesKey = helmValue.ValuesKey ?? parameter.Name.ToHelmValuesSectionName(); 767$"Resource '{TargetResource.Name}' maps multiple distinct {sourceKind} sources named '{parameter.Name}' " + 828var formattedName = parameter.Name.ToHelmValuesSectionName();
Aspire.Hosting.Kubernetes.Tests (15)
CertManagerTests.cs (5)
23Assert.Equal("cert-manager", certManager.Resource.Name); 28Assert.Equal("cert-manager-chart", certManager.Resource.HelmChart.Name); 39Assert.Contains(appModel.Resources, r => r is CertManagerResource c && c.Name == "cert-manager"); 40Assert.Contains(appModel.Resources, r => r is KubernetesHelmChartResource c && c.Name == "cert-manager-chart"); 54Assert.Equal("letsencrypt-prod", issuer.Resource.Name);
KubernetesDeployTests.cs (4)
1155c.Parameter.Name == "my-password"); 1351c.Parameter.Name == "cache-password"); 1357c.Parameter.Name == "cache-password"); 1429c.Parameter.Name == "cache-password");
KubernetesHelmChartTests.cs (6)
24Assert.Equal("cert-manager", chart.Resource.Name); 27Assert.Equal("env", chart.Resource.Parent.Name); 104Assert.NotEqual(chart1.Resource.Name, chart2.Resource.Name); 105Assert.Equal("env", chart1.Resource.Parent.Name); 106Assert.Equal("env", chart2.Resource.Parent.Name);
Aspire.Hosting.Maui (13)
Lifecycle\MauiBuildQueueEventSubscriber.cs (2)
111logger.LogInformation("Queued — waiting for another build of project '{ProjectName}' to complete.", parent.Name); 123logger.LogInformation("Building project '{ProjectName}' for {ResourceName}.", parent.Name, resource.Name);
MauiAndroidExtensions.cs (2)
54var name = $"{builder.Resource.Name}-android-device"; 256var name = $"{builder.Resource.Name}-android-emulator";
MauiiOSExtensions.cs (2)
58var name = $"{builder.Resource.Name}-ios-device"; 279var name = $"{builder.Resource.Name}-ios-simulator";
MauiMacCatalystExtensions.cs (1)
47var name = $"{builder.Resource.Name}-maccatalyst";
MauiOtlpExtensions.cs (4)
107var tunnelName = parentBuilder.Resource.Name; 130string.Equals(devTunnelResource.Name, tunnelName, StringComparisons.ResourceName)) 142var exception = new DistributedApplicationException($"The MAUI OTLP dev tunnel for resource '{parentBuilder.Resource.Name}' requires the Aspire dashboard to be enabled or an explicit OTLP endpoint URL to be configured."); 179var exception = new DistributedApplicationException($"The Aspire dashboard resource '{KnownResourceNames.AspireDashboard}' terminated or does not have a concrete OTLP endpoint named '{KnownEndpointNames.OtlpHttpEndpointName}' or '{KnownEndpointNames.OtlpGrpcEndpointName}', so the MAUI OTLP dev tunnel for resource '{parentBuilder.Resource.Name}' cannot start. Ensure dashboard OTLP ingestion is enabled, or configure an explicit OTLP endpoint URL.");
MauiPlatformHelper.cs (1)
212context.EnvironmentVariables[KnownOtelConfigNames.ServiceName] = resource.Name;
MauiWindowsExtensions.cs (1)
47var name = $"{builder.Resource.Name}-windows";
Aspire.Hosting.Maui.Tests (17)
MauiBuildQueueTests.cs (6)
131if (evt.Resource.Name == env.MacCatalyst.Name && evt.Snapshot.State?.Text == "Queued") 165if (evt.Resource.Name == env.Android.Name && evt.Snapshot.State?.Text == "Building") 538env.CancelResource(env.MacCatalyst.Name); 629env.CancelResource(env.Android.Name); 1065env.CancelResource(env.MacCatalyst.Name); 1152ResourceName = env.Android.Name,
MauiPlatformExtensionsTests.cs (10)
348Assert.NotEqual(androidDevice.Resource.Name, androidEmulator.Resource.Name); 369Assert.Equal("my-device", device.Resource.Name); 392Assert.Equal("my-emulator", emulator.Resource.Name); 415Assert.Equal("my-device", device.Resource.Name); 443Assert.Equal("my-simulator", simulator.Resource.Name); 499Assert.NotEqual(device.Resource.Name, simulator.Resource.Name); 738var stubName = tunnelConfig.OtlpStub.Name; 1206tunnelConfig.DevTunnel.Resource.Name,
MauiProjectResourceValidationTests.cs (1)
62Assert.Equal("my-maui-app", maui.Resource.Name);
Aspire.Hosting.Milvus (2)
MilvusBuilderExtensions.cs (2)
147containerName ??= $"{builder.Resource.Name}-attu"; 248context.EnvironmentVariables["MILVUS_URL"] = $"{resource.PrimaryEndpoint.Scheme}://{resource.Name}:{resource.PrimaryEndpoint.TargetPort}";
Aspire.Hosting.Milvus.Tests (10)
AddMilvusTests.cs (1)
193Assert.Equal("my-milvus", milvusResource.Name);
MilvusFunctionalTests.cs (9)
32await app.WaitForTextAsync("Milvus Proxy successfully initialized and ready to serve", milvus.Resource.Name); 37hb.Configuration[$"ConnectionStrings:{db.Resource.Name}"] = await db.Resource.ConnectionStringExpression.GetValueAsync(default); 39hb.AddMilvusClient(db.Resource.Name); 108await app.WaitForTextAsync("Milvus Proxy successfully initialized and ready to serve", milvus1.Resource.Name); 115hb.Configuration[$"ConnectionStrings:{db1.Resource.Name}"] = await db1.Resource.ConnectionStringExpression.GetValueAsync(default); 117hb.AddMilvusClient(db1.Resource.Name); 156await app.WaitForTextAsync("Milvus Proxy successfully initialized and ready to serve", milvus2.Resource.Name); 163hb.Configuration[$"ConnectionStrings:{db2.Resource.Name}"] = await db2.Resource.ConnectionStringExpression.GetValueAsync(default); 165hb.AddMilvusClient(db2.Resource.Name);
Aspire.Hosting.MongoDB (55)
MongoDBBuilderExtensions.cs (11)
104?? throw new DistributedApplicationException($"ConnectionStringAvailableEvent was published for the '{resource.Name}' resource but the connection string was null."); 239Title = $"mongosh ({resource.Name})", 281throw new DistributedApplicationException($"ConnectionStringAvailableEvent was published for the '{mongoDBDatabase.Name}' resource but the connection string was null."); 318containerName ??= $"{builder.Resource.Name}-mongoexpress"; 503name ??= builder.Resource.ReplicaSetName ?? builder.Resource.Name; 511throw new InvalidOperationException($"The MongoDB server resource '{builder.Resource.Name}' belongs to the advanced replica set '{existingName}'. Configure it with WithMember instead of WithReplicaSet."); 516: throw new InvalidOperationException($"The MongoDB server resource '{builder.Resource.Name}' is already configured as a member of the replica set '{existingName}' and cannot also be a member of '{name}'."); 521builder.WithKeyFile(CreateReplicaSetKeyFile(builder.ApplicationBuilder, builder.Resource.Name)); 596: throw new InvalidOperationException($"The MongoDB server resource '{builder.Resource.Name}' already has a key file configured at '{existingKeyFile.FilePath}'. A MongoDB server can only have one key file; note that adding a server to a replica set gives it the replica set's shared key file."); 721context.EnvironmentVariables["ME_CONFIG_MONGODB_SERVER"] = resource.Name; 733context.EnvironmentVariables["ME_CONFIG_MONGODB_URL"] = $"mongodb://{resource.Name}:{port}";
MongoDBSingleMemberReplicaSet.cs (4)
57?? throw new DistributedApplicationException($"The connection string for MongoDB resource '{resource.Name}' is unavailable."); 69evt.Logger.LogInformation("MongoDB resource '{ResourceName}' is the primary of single-member replica set '{ReplicaSetName}'.", resource.Name, annotation.Name); 73annotation.InitializationError = $"MongoDB resource '{resource.Name}' did not initialize replica set '{annotation.Name}' and elect a primary within 90 seconds. Check the container logs, credentials, and existing data volume, then restart the resource."; 78annotation.InitializationError = $"MongoDB resource '{resource.Name}' could not initialize replica set '{annotation.Name}'. Check the container logs and ensure the data volume belongs to this single-member set and uses the configured credentials.";
ReplicaSet\MongoDBReplicaSetBuilderExtensions.cs (37)
115logger.LogCritical("Cannot initialize MongoDB replica set resource '{ResourceName}' because it does not have any members.", resource.Name); 144throw new DistributedApplicationException($"MongoDB replica set member '{memberWithoutTls.Name}' does not have TLS enabled, which is required for members of a replica set. Ensure an HTTPS/TLS certificate is available for the member, for example by trusting the ASP.NET Core developer certificate."); 150?? throw new DistributedApplicationException($"The connection string of MongoDB replica set member '{member.Name}' could not be resolved.") 157Internal: $"{m.Name}:{m.PrimaryEndpoint.TargetPort!.Value}", 162.ConfigureAwait(false) ?? throw new DistributedApplicationException($"The endpoint of MongoDB replica set member '{m.Name}' could not be resolved.") 181logger.LogInformation("Retrieving MongoDB replica set information ({ResourceName}) from member '{MemberName}'", resource.Name, memberConnection.Resource.Name); 210logger.LogInformation("MongoDB replica set member '{MemberName}' is not accepting connections yet", memberConnection.Resource.Name); 239throw new DistributedApplicationException($"Cannot remove {string.Join(", ", removedHosts.Select(h => $"'{h}'"))} from the existing MongoDB replica set '{rsResource.Name}': removing members from a replica set that has already been initialized is not supported yet. Add the member(s) back, or start over from an empty replica set by removing the data volumes of its members."); 249logger.LogInformation("MongoDB replica set resource '{ResourceName}' is already configured as declared — leaving it as it is", resource.Name); 254logger.LogInformation("Re-configuring MongoDB replica set resource '{ResourceName}' from member '{MemberName}' — last version {Version}", resource.Name, existing.Connection.Resource.Name, existing.Version); 260["_id"] = rsResource.Name, 297logger.LogInformation("Initializing MongoDB replica set resource '{ResourceName}'", resource.Name); 307["_id"] = rsResource.Name, 318["_id"] = rsResource.Name, 335logger.LogInformation("MongoDB replica set member '{MemberName}' stopped accepting connections before initialization completed", initialPrimary.Resource.Name); 354$"Failed to configure MongoDB replica set resource '{resource.Name}' after {MaxRetriesAttempt} attempts.{(lastConfigurationError is null ? "" : $" The last error reported by MongoDB was: {lastConfigurationError.Message}")}", 366logger.LogCritical(ex, "Failed to initialize MongoDB replica set resource '{ResourceName}'", resource.Name); 406throw new InvalidOperationException($"The MongoDB server resource '{member.Resource.Name}' is configured as a single-member replica set. Remove WithReplicaSet before adding it to the advanced replica set '{builder.Resource.Name}'. Migrating existing single-member data to an advanced replica set is not supported."); 411throw new InvalidOperationException($"The MongoDB replica set '{builder.Resource.Name}' already has the maximum of {MaxMembers} members that MongoDB allows a replica set to hold."); 420string.Equals(existingReplicaSetName, builder.Resource.Name, StringComparisons.ResourceName) 421? $"The MongoDB server resource '{member.Resource.Name}' has already been added as a member of the replica set '{builder.Resource.Name}'." 422: $"The MongoDB server resource '{member.Resource.Name}' is already a member of the replica set '{existingReplicaSetName}' and cannot also be a member of '{builder.Resource.Name}'."); 432$"The MongoDB server resource '{member.Resource.Name}' was given a key file of its own, which conflicts with the one shared by the members of the replica set '{builder.Resource.Name}'. Members are given the replica set's key file automatically, so remove the '{nameof(MongoDBBuilderExtensions.WithKeyFile)}' call on the member."); 446$"The MongoDB server resource '{member.Resource.Name}' was given an explicit user name that differs from the one of the replica set '{builder.Resource.Name}'. Members of a replica set share a single set of credentials: pass the user name to '{nameof(AddMongoDBReplicaSet)}' instead of to the individual members."); 452$"The MongoDB server resource '{member.Resource.Name}' was given an explicit password that differs from the one of the replica set '{builder.Resource.Name}'. Members of a replica set share a single set of credentials: pass the password to '{nameof(AddMongoDBReplicaSet)}' instead of to the individual members."); 455MongoDBBuilderExtensions.ConfigureReplicaSetMember(member, builder.Resource.Name); 495builder.Resource.StoppedMembers.Add(stopped.Name); 513builder.Resource.StoppedMembers.Remove(starting.Name); 535&& !builder.Resource.StoppedMembers.Contains(ready.Name)
ReplicaSet\MongoDBReplicaSetResource.cs (3)
84throw new InvalidOperationException($"Cannot build connection string for MongoDB replica set resource '{Name}' because it does not have any members."); 111builder.AppendLiteral($"/?replicaSet={Name}"); 137yield return new("ReplicaSetName", ReferenceExpression.Create($"{Name}"));
Aspire.Hosting.MongoDB.Tests (49)
AddMongoDBTests.cs (2)
47Assert.Equal("mongodb", containerResource.Name); 75Assert.Equal("mongodb", containerResource.Name);
MongoDbFunctionalTests.cs (18)
56await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running, cts.Token); 58await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting, cts.Token); 62await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Resource.Name, cts.Token); 64await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running, cts.Token); 90hb.Configuration[$"ConnectionStrings:{db.Resource.Name}"] = await db.Resource.ConnectionStringExpression.GetValueAsync(default); 92hb.AddMongoDBClient(db.Resource.Name); 132await app.ResourceNotifications.WaitForResourceHealthyAsync(mongodb.Resource.Name, cts.Token); 135await app.ResourceNotifications.WaitForResourceAsync(mongoExpress.Resource.Name, KnownResourceStates.Running, cts.Token); 176hb.Configuration[$"ConnectionStrings:{db.Resource.Name}"] = connectionString; 179hb.AddMongoDBClient(db.Resource.Name); 240hb.Configuration[$"ConnectionStrings:{db1.Resource.Name}"] = await db1.Resource.ConnectionStringExpression.GetValueAsync(default); 242hb.AddMongoDBClient(db1.Resource.Name); 285hb.Configuration[$"ConnectionStrings:{db2.Resource.Name}"] = await db2.Resource.ConnectionStringExpression.GetValueAsync(default); 287hb.AddMongoDBClient(db2.Resource.Name); 406hb.Configuration[$"ConnectionStrings:{db.Resource.Name}"] = await db.Resource.ConnectionStringExpression.GetValueAsync(default); 408hb.AddMongoDBClient(db.Resource.Name); 496hb.Configuration[$"ConnectionStrings:{db.Resource.Name}"] = await db.Resource.ConnectionStringExpression.GetValueAsync(default); 498hb.AddMongoDBClient(db.Resource.Name);
ReplicaSet\AddMongoDBReplicaSetTests.cs (3)
39Assert.Equal("rs0", resource.Name); 347var stoppedResourceEvent = new ResourceEvent(mongo1.Resource, mongo1.Resource.Name, stoppedSnapshot); 368Assert.True(notifications.TryGetCurrentState(replicaSet.Resource.Name, out var resourceEvent));
ReplicaSet\MongoDbReplicaSetFunctionalTests.cs (12)
58await app.ResourceNotifications.WaitForResourceHealthyAsync(mongo.Resource.Name, cts.Token); 59await app.ResourceNotifications.WaitForResourceHealthyAsync(rs.Resource.Name, cts.Token); 95await app.ResourceNotifications.WaitForResourceHealthyAsync(rs.Resource.Name, cts.Token); 130await app.ResourceNotifications.WaitForResourceHealthyAsync(rs.Resource.Name, cts.Token); 167await app.ResourceNotifications.WaitForResourceHealthyAsync(rs.Resource.Name, cts.Token); 209await app.ResourceNotifications.WaitForResourceHealthyAsync(rs.Resource.Name, cts.Token); 211await app.ResourceNotifications.WaitForResourceHealthyAsync(mongo1.Resource.Name, cts.Token); 212await app.ResourceNotifications.WaitForResourceHealthyAsync(mongo2.Resource.Name, cts.Token); 213await app.ResourceNotifications.WaitForResourceHealthyAsync(mongo3.Resource.Name, cts.Token); 303await app.ResourceNotifications.WaitForResourceHealthyAsync(rs.Resource.Name, cts.Token); 371await app.ResourceNotifications.WaitForResourceHealthyAsync(rs.Resource.Name, secondPhaseCts.Token); 442await app.ResourceNotifications.WaitForResourceAsync(rs.Resource.Name, KnownResourceStates.FailedToStart, cts.Token);
SingleMemberReplicaSetFunctionalTests.cs (10)
50await app.ResourceNotifications.WaitForResourceHealthyAsync(database.Resource.Name, ready.Token); 101await app.ResourceNotifications.WaitForResourceAsync(mongo.Resource.Name, 103await app.ResourceNotifications.WaitForResourceAsync(consumer.Resource.Name, KnownResourceStates.Waiting, ready.Token); 107var completed = await app.ResourceNotifications.WaitForResourceAsync(consumer.Resource.Name, 137var running = await app.ResourceNotifications.WaitForResourceHealthyAsync(mongo1.Resource.Name, ready.Token); 148await app.ResourceNotifications.WaitForResourceAsync(mongo1.Resource.Name, KnownResourceStates.Exited, restart.Token); 150await app.ResourceNotifications.WaitForResourceAsync(mongo1.Resource.Name, KnownResourceStates.Running, restart.Token); 151await app.ResourceNotifications.WaitForResourceHealthyAsync(mongo1.Resource.Name, restart.Token); 158await app.ResourceNotifications.WaitForResourceAsync(mongo1.Resource.Name, KnownResourceStates.Exited, stop.Token); 167await app2.ResourceNotifications.WaitForResourceHealthyAsync(mongo2.Resource.Name, secondReady.Token);
SingleMemberReplicaSetTests.cs (1)
55Assert.Equal(["key"], builder.Resources.OfType<ParameterResource>().Select(r => r.Name));
tests\Shared\ContainerReplCommandTestBase.cs (3)
85ResourceName = resource.Resource.Name, 108ResourceName = resource.Resource.Name, 165await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Name, readiness.Token);
Aspire.Hosting.MySql (7)
MySqlBuilderExtensions.cs (6)
56throw new DistributedApplicationException($"ConnectionStringAvailableEvent was published for the '{resource.Name}' resource but the connection string was null."); 64throw new DistributedApplicationException($"ResourceReadyEvent was published for the '{resource.Name}' resource but the connection string was null."); 72throw new InvalidOperationException($"Could not open connection to '{resource.Name}'"); 131Title = $"mysql ({resource.Name})", 365var configStoreFilename = aspireStore.GetFileNameWithContent($"{builder.Resource.Name}-config.user.inc.php", tempConfigFile); 501writer.WriteLine($"$cfg['Servers'][$i]['verbose'] = '{mySqlInstance.Name}';");
MySqlServerResource.cs (1)
117_databases.TryAdd(database.Name, database.DatabaseName);
Aspire.Hosting.MySql.Tests (38)
AddMySqlTests.cs (5)
47Assert.Equal("mysql", containerResource.Name); 229var phpMyAdmin = Assert.Single(builder.Resources.OfType<ContainerResource>(), resource => resource.Name == "phpmyadmin"); 267Assert.Equal($"{mysql.Resource.Name}:{mysql.Resource.PrimaryEndpoint.TargetPort}", config["PMA_HOST"]); 299string pattern1 = $@"\$cfg\['Servers'\]\[\$i\]\['host'\] = '{mysql1.Resource.Name}:{mysql1.Resource.PrimaryEndpoint.TargetPort}';"; 300string pattern2 = $@"\$cfg\['Servers'\]\[\$i\]\['host'\] = '{mysql2.Resource.Name}:{mysql2.Resource.PrimaryEndpoint.TargetPort}';";
MySqlFunctionalTests.cs (30)
51await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running, cts.Token); 53await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting, cts.Token); 57await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Resource.Name, cts.Token); 59await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running, cts.Token); 93[$"ConnectionStrings:{db.Resource.Name}"] = await db.Resource.ConnectionStringExpression.GetValueAsync(default) 96hb.AddMySqlDataSource(db.Resource.Name); 170[$"ConnectionStrings:{db1.Resource.Name}"] = await db1.Resource.ConnectionStringExpression.GetValueAsync(default) 173hb.AddMySqlDataSource(db1.Resource.Name); 240[$"ConnectionStrings:{db2.Resource.Name}"] = await db2.Resource.ConnectionStringExpression.GetValueAsync(cts.Token) 243hb.AddMySqlDataSource(db2.Resource.Name); 351[$"ConnectionStrings:{db.Resource.Name}"] = await db.Resource.ConnectionStringExpression.GetValueAsync(cts.Token) 354hb.AddMySqlDataSource(db.Resource.Name); 435[$"ConnectionStrings:{db.Resource.Name}"] = await db.Resource.ConnectionStringExpression.GetValueAsync(cts.Token) 438hb.AddMySqlDataSource(db.Resource.Name); 506[$"ConnectionStrings:{db.Resource.Name}"] = await db.Resource.ConnectionStringExpression.GetValueAsync(cts.Token) 509hb.AddMySqlDbContext<TestDbContext>(db.Resource.Name); 664hb.Configuration[$"ConnectionStrings:{newDb.Resource.Name}"] = await newDb.Resource.ConnectionStringExpression.GetValueAsync(default); 666hb.AddMySqlDataSource(newDb.Resource.Name); 672await app.ResourceNotifications.WaitForResourceHealthyAsync(newDb.Resource.Name, cts.Token); 678resourceName: mysql.Resource.Name, 747hb.Configuration[$"ConnectionStrings:{newDb.Resource.Name}"] = await newDb.Resource.ConnectionStringExpression.GetValueAsync(default); 749hb.AddMySqlDataSource(newDb.Resource.Name); 755await app.ResourceNotifications.WaitForResourceHealthyAsync(mysql.Resource.Name, cts.Token); 807hb.Configuration[$"ConnectionStrings:{db.Resource.Name}"] = await db.Resource.ConnectionStringExpression.GetValueAsync(default); 808hb.AddKeyedMySqlDataSource(db.Resource.Name); 817await app.ResourceNotifications.WaitForResourceHealthyAsync(db.Resource.Name, cts.Token); 819var conn = host.Services.GetRequiredKeyedService<MySqlConnection>(db.Resource.Name); 850hb.Configuration[$"ConnectionStrings:{newDb.Resource.Name}"] = await newDb.Resource.ConnectionStringExpression.GetValueAsync(default); 851hb.AddMySqlDataSource(newDb.Resource.Name); 856await app.ResourceNotifications.WaitForResourceHealthyAsync(newDb.Resource.Name, cts.Token);
tests\Shared\ContainerReplCommandTestBase.cs (3)
85ResourceName = resource.Resource.Name, 108ResourceName = resource.Resource.Name, 165await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Name, readiness.Token);
Aspire.Hosting.Nats (1)
NatsBuilderExtensions.cs (1)
67?? throw new DistributedApplicationException($"ConnectionStringAvailableEvent was published for the '{nats.Name}' resource but the connection string was null.");
Aspire.Hosting.Nats.Tests (16)
AddNatsTests.cs (2)
102Assert.Equal("nats", containerResource.Name); 144Assert.Equal("nats", containerResource.Name);
NatsFunctionalTests.cs (14)
37await app.WaitForTextAsync("Listening for client connections", nats.Resource.Name); 42hb.Configuration[$"ConnectionStrings:{nats.Resource.Name}"] = await nats.Resource.ConnectionStringExpression.GetValueAsync(default); 83await app.WaitForTextAsync("Listening for client connections", nats.Resource.Name); 89hb.Configuration[$"ConnectionStrings:{nats.Resource.Name}"] = connectionString; 126await app.WaitForTextAsync("Listening for client connections", nats.Resource.Name); 136hb.Configuration[$"ConnectionStrings:{nats.Resource.Name}"] = modifiedConnectionString; 189await app.WaitForTextAsync("Listening for client connections", nats1.Resource.Name); 195hb.Configuration[$"ConnectionStrings:{nats1.Resource.Name}"] = await nats1.Resource.ConnectionStringExpression.GetValueAsync(default); 238await app.WaitForTextAsync("Listening for client connections", nats2.Resource.Name); 244hb.Configuration[$"ConnectionStrings:{nats2.Resource.Name}"] = await nats2.Resource.ConnectionStringExpression.GetValueAsync(default); 349await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running, cts.Token); 351await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting, cts.Token); 355await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Resource.Name, cts.Token); 357await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running, cts.Token);
Aspire.Hosting.OpenAI (1)
OpenAIExtensions.cs (1)
207var healthCheckKey = $"{builder.Resource.Name}_check";
Aspire.Hosting.OpenAI.Tests (13)
OpenAIExtensionTests.cs (5)
61Assert.Equal("chat", model.Resource.Name); 74Assert.Equal("openai-openai-apikey", parent.Resource.Key.Name); 149Assert.Equal("openai-openai-apikey", parent.Resource.Key.Name); 165Assert.Equal("test", resource.Name); 363Assert.Equal("chat", openai.Resource.Name);
OpenAIFunctionalTests.cs (8)
43await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running, cts.Token); 45await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting, cts.Token); 49await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Resource.Name, cts.Token); 51await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running, cts.Token); 90await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running, cts.Token); 92await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting, cts.Token); 96await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Resource.Name, cts.Token); 98await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running, cts.Token);
Aspire.Hosting.Oracle (1)
OracleDatabaseBuilderExtensions.cs (1)
51throw new DistributedApplicationException($"ConnectionStringAvailableEvent was published for the '{oracleDatabaseServer.Name}' resource but the connection string was null.");
Aspire.Hosting.Oracle.Tests (14)
OracleFunctionalTests.cs (14)
53hb.Configuration[$"ConnectionStrings:{db.Resource.Name}"] = await db.Resource.ConnectionStringExpression.GetValueAsync(default); 55hb.AddOracleDatabaseDbContext<TestDbContext>(db.Resource.Name); 139hb.Configuration[$"ConnectionStrings:{db1.Resource.Name}"] = await db1.Resource.ConnectionStringExpression.GetValueAsync(default); 141hb.AddOracleDatabaseDbContext<TestDbContext>(db1.Resource.Name); 200hb.Configuration[$"ConnectionStrings:{db2.Resource.Name}"] = await db2.Resource.ConnectionStringExpression.GetValueAsync(default); 202hb.AddOracleDatabaseDbContext<TestDbContext>(db2.Resource.Name); 307hb.Configuration[$"ConnectionStrings:{db.Resource.Name}"] = await db.Resource.ConnectionStringExpression.GetValueAsync(default); 309hb.AddOracleDatabaseDbContext<TestDbContext>(db.Resource.Name); 404hb.Configuration[$"ConnectionStrings:{db.Resource.Name}"] = await db.Resource.ConnectionStringExpression.GetValueAsync(default); 406hb.AddOracleDatabaseDbContext<TestDbContext>(db.Resource.Name); 467await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running, cts.Token); 469await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting, cts.Token); 473await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Resource.Name, cts.Token); 475await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running, cts.Token);
Aspire.Hosting.PostgreSQL (9)
PostgresBuilderExtensions.cs (9)
72throw new DistributedApplicationException($"ConnectionStringAvailableEvent was published for the '{postgresServer.Name}' resource but the connection string was null."); 80throw new DistributedApplicationException($"ResourceReadyEvent was published for the '{postgresServer.Name}' resource but the connection string was null."); 90throw new InvalidOperationException($"Could not open connection to '{postgresServer.Name}'"); 165Title = $"psql ({resource.Name})", 204builder.Resource.AddDatabase(postgresDatabase.Name, postgresDatabase.DatabaseName); 433containerName ??= $"{builder.Resource.Name}-mcp"; 702host = "{postgresDatabase.Parent.Name}" 712Name = $"{postgresDatabase.Name}.toml", 739writer.WriteString("Name", postgresInstance.Name);
Aspire.Hosting.PostgreSQL.Tests (44)
AddPostgresTests.cs (3)
535Assert.Equal(pg1.Resource.Name, servers.GetProperty("1").GetProperty("Name").GetString()); 547Assert.Equal(pg2.Resource.Name, servers.GetProperty("2").GetProperty("Name").GetString()); 680host = "{postgresDatabase.Parent.Name}"
PostgresFunctionalTests.cs (37)
54await app.ResourceNotifications.WaitForResourceAsync(postgres.Resource.Name, KnownResourceStates.Running).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 57await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 63await app.ResourceNotifications.WaitForResourceHealthyAsync(postgres.Resource.Name).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 66await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 88await app.WaitForTextAsync("Listening at", resourceName: adminBuilder.Resource.Name); 90var client = app.CreateHttpClient(adminBuilder.Resource.Name, "http"); 121[$"ConnectionStrings:{db.Resource.Name}"] = await db.Resource.ConnectionStringExpression.GetValueAsync(default) 124hb.AddNpgsqlDataSource(db.Resource.Name); 130await app.ResourceNotifications.WaitForResourceHealthyAsync(postgres.Resource.Name, cts.Token); 167var client = app.CreateHttpClient(pgWebBuilder.Resource.Name, "http"); 169await app.ResourceNotifications.WaitForResourceHealthyAsync(pgWebBuilder.Resource.Name).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 235await app.ResourceNotifications.WaitForResourceHealthyAsync(db1.Resource.Name, cts.Token); 244[$"ConnectionStrings:{db1.Resource.Name}"] = await db1.Resource.ConnectionStringExpression.GetValueAsync(default) 247hb.AddNpgsqlDataSource(db1.Resource.Name); 298await app.ResourceNotifications.WaitForResourceHealthyAsync(db2.Resource.Name, cts.Token); 307[$"ConnectionStrings:{db2.Resource.Name}"] = await db2.Resource.ConnectionStringExpression.GetValueAsync(default) 310hb.AddNpgsqlDataSource(db2.Resource.Name); 410[$"ConnectionStrings:{db.Resource.Name}"] = await db.Resource.ConnectionStringExpression.GetValueAsync(default) 413hb.AddNpgsqlDataSource(db.Resource.Name); 419await app.ResourceNotifications.WaitForResourceHealthyAsync(db.Resource.Name, cts.Token); 494[$"ConnectionStrings:{db.Resource.Name}"] = await db.Resource.ConnectionStringExpression.GetValueAsync(default) 497hb.AddNpgsqlDataSource(db.Resource.Name); 503await app.ResourceNotifications.WaitForResourceHealthyAsync(db.Resource.Name, cts.Token); 622hb.Configuration[$"ConnectionStrings:{newDb.Resource.Name}"] = await newDb.Resource.ConnectionStringExpression.GetValueAsync(default); 624hb.AddNpgsqlDataSource(newDb.Resource.Name); 630await app.ResourceNotifications.WaitForResourceHealthyAsync(newDb.Resource.Name, cts.Token); 636resourceName: postgres.Resource.Name, 671hb.Configuration[$"ConnectionStrings:{newDb.Resource.Name}"] = await newDb.Resource.ConnectionStringExpression.GetValueAsync(default); 673hb.AddNpgsqlDataSource(newDb.Resource.Name); 679await app.ResourceNotifications.WaitForResourceHealthyAsync(newDb.Resource.Name, cts.Token); 741hb.Configuration[$"ConnectionStrings:{newDb.Resource.Name}"] = await newDb.Resource.ConnectionStringExpression.GetValueAsync(default); 743hb.AddNpgsqlDataSource(newDb.Resource.Name); 749await app.ResourceNotifications.WaitForResourceHealthyAsync(postgres.Resource.Name, cts.Token); 801hb.Configuration[$"ConnectionStrings:{db.Resource.Name}"] = await db.Resource.ConnectionStringExpression.GetValueAsync(default); 802hb.AddKeyedNpgsqlDataSource(db.Resource.Name); 811await app.ResourceNotifications.WaitForResourceHealthyAsync(db.Resource.Name, cts.Token); 813var conn = host.Services.GetRequiredKeyedService<NpgsqlConnection>(db.Resource.Name);
PostgresMcpBuilderTests.cs (1)
30Assert.Equal("db-mcp", mcpContainer.Name);
tests\Shared\ContainerReplCommandTestBase.cs (3)
85ResourceName = resource.Resource.Name, 108ResourceName = resource.Resource.Name, 165await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Name, readiness.Token);
Aspire.Hosting.Python (6)
PythonAppResourceBuilderExtensions.cs (6)
1300var installerName = $"{builder.Resource.Name}-installer"; 1381var venvCreatorName = $"{builder.Resource.Name}-venv-creator"; 1420var venvCreatorName = $"{builder.Resource.Name}-venv-creator"; 1435var venvCreatorName = $"{resource.Name}-venv-creator"; 1436var installerName = $"{resource.Name}-installer"; 1443builder.TryCreateResourceBuilder<PythonAppResource>(resource.Name, out var appBuilder);
Aspire.Hosting.Python.Tests (19)
AddPythonAppTests.cs (18)
162Assert.Equal("pythonProject", pythonProjectResource.Name); 201Assert.Equal("pythonProject", pythonProjectResource.Name); 244Assert.Equal("pythonProject", pythonProjectResource.Name); 740Assert.Equal("pythonProject-installer", installerResource.Name); 830Assert.Equal("pythonProject-installer", uvEnvironmentResource.Name); 849Assert.Equal("pythonProject-installer", installerResource.Name); 874Assert.Equal("pythonProject-installer", installerResource.Name); 905Assert.Equal("pythonProject-installer", installerResource.Name); 929Assert.Equal("python-script", resource.Name); 948Assert.Equal("flask-app", resource.Name); 967Assert.Equal("pytest", resource.Name); 990Assert.Equal("pythonProject", pythonProjectResource.Name); 2032Assert.Equal("pythonProject-installer", installerResource.Name); 2067Assert.Equal("pythonProject-installer", installerResource.Name); 2171Assert.Equal("pythonProject-venv-creator", venvCreatorResource.Name); 2199Assert.Equal("pythonProject-venv-creator", venvCreatorResource.Name); 2493Assert.Equal("pythonProject-installer", installerResource.Name); 2526Assert.Equal("pythonProject-installer", installerResource.Name);
AddUvicornAppTests.cs (1)
25Assert.Equal("uvicorn-app", uvicornApp.Resource.Name);
Aspire.Hosting.Qdrant (1)
QdrantBuilderExtensions.cs (1)
59?? throw new DistributedApplicationException($"ConnectionStringAvailableEvent was published for the '{qdrant.Name}' resource but the connection string was null.");
Aspire.Hosting.Qdrant.Tests (11)
AddQdrantTests.cs (1)
420Assert.Equal("my-qdrant", qdrantResource.Name);
QdrantFunctionalTests.cs (10)
47[$"ConnectionStrings:{qdrant.Resource.Name}"] = await qdrant.Resource.ConnectionStringExpression.GetValueAsync(default) 50hb.AddQdrantClient(qdrant.Resource.Name); 133[$"ConnectionStrings:{qdrant1.Resource.Name}"] = await qdrant1.Resource.ConnectionStringExpression.GetValueAsync(default) 136hb.AddQdrantClient(qdrant1.Resource.Name); 179[$"ConnectionStrings:{qdrant2.Resource.Name}"] = await qdrant2.Resource.ConnectionStringExpression.GetValueAsync(default) 182hb.AddQdrantClient(qdrant2.Resource.Name); 278await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running, cts.Token); 280await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting, cts.Token); 284await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, (re => re.Snapshot.HealthStatus == HealthStatus.Healthy), cts.Token); 286await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running, cts.Token);
Aspire.Hosting.RabbitMQ (3)
RabbitMQBuilderExtensions.cs (3)
53throw new DistributedApplicationException($"ConnectionStringAvailableEvent was published for the '{rabbitMq.Name}' resource but the connection string was null."); 240throw new DistributedApplicationException($"Cannot configure the RabbitMQ resource '{builder.Resource.Name}' to enable the management plugin as it uses an unrecognized container image registry, name, or tag."); 294var nodeName = $"{builder.Resource.Name}@localhost";
Aspire.Hosting.RabbitMQ.Tests (11)
AddRabbitMQTests.cs (1)
53Assert.Equal("rabbit", containerResource.Name);
RabbitMQFunctionalTests.cs (10)
43await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 45await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 49await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Resource.Name).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 51await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 72hb.Configuration[$"ConnectionStrings:{rabbitMQ.Resource.Name}"] = await rabbitMQ.Resource.ConnectionStringExpression.GetValueAsync(default); 73hb.AddRabbitMQClient(rabbitMQ.Resource.Name); 136hb.Configuration[$"ConnectionStrings:{rabbitMQ1.Resource.Name}"] = await rabbitMQ1.Resource.ConnectionStringExpression.GetValueAsync(default); 137hb.AddRabbitMQClient(rabbitMQ1.Resource.Name); 193hb.Configuration[$"ConnectionStrings:{rabbitMQ2.Resource.Name}"] = await rabbitMQ2.Resource.ConnectionStringExpression.GetValueAsync(default); 194hb.AddRabbitMQClient(rabbitMQ2.Resource.Name);
Aspire.Hosting.Radius (99)
Publishing\RadCredentialRegisterStep.cs (7)
55Name = $"register-radius-credentials-{_environment.Name}", 56Description = $"Register Radius cloud-provider credentials for '{_environment.Name}' via rad credential register", 59step.DependsOn($"publish-radius-{_environment.Name}"); 61step.RequiredBy($"deploy-radius-{_environment.Name}"); 192azure.Add((env.Name, AzureCredentialIdentity(azureConfig.Credential))); 197aws.Add((env.Name, AwsCredentialIdentity(awsConfig.Credential))); 232AwsRadiusCredential.AccessKey ak => $"access-key|{ak.AccessKeyId.Resource.Name}",
Publishing\RadiusBicepPublishingContext.cs (9)
42Name = $"publish-radius-{_environment.Name}", 43Description = $"Publish Radius environment '{_environment.Name}' as Bicep", 58_environment.Name); 61$"Generating Bicep for Radius environment '{_environment.Name}'...", 80_environment.Name); 86var bicepContent = BicepPostProcessor.CompileBicep(options, _environment.Name, logger); 107_environment.Name, 118_environment.Name); 141return BicepPostProcessor.CompileBicep(options, _environment.Name, logger);
Publishing\RadiusDeploymentPipelineStep.cs (11)
498Name = $"deploy-radius-{_environment.Name}", 499Description = $"Deploy Radius environment '{_environment.Name}' via rad CLI", 502step.DependsOn($"publish-radius-{_environment.Name}"); 521logger.LogInformation("rad CLI detected on PATH for environment '{EnvironmentName}'", _environment.Name); 541$"Deploying Radius environment '{_environment.Name}' via rad deploy...", 609logger.LogWarning("Cancellation requested — terminating rad deploy process for environment '{EnvironmentName}'", _environment.Name); 625logger.LogInformation("rad deploy exited with code {ExitCode} for environment '{EnvironmentName}'", exitCode, _environment.Name); 634logger.LogError("rad deploy failed for environment '{EnvironmentName}': {ErrorMessage}", _environment.Name, errorMessage); 641$"Radius deployment complete for '{_environment.Name}'", 646logger.LogError(ex, "Unexpected error during rad deploy for environment '{EnvironmentName}'", _environment.Name); 725parameters.Count, _environment.Name);
Publishing\RadiusInfrastructureBuilder.cs (34)
238var envIdentifier = BicepPostProcessor.SanitizeIdentifier(_environment.Name); 821if (!storeConstructs.TryGetValue(store.Name, out var construct)) 1773construct.EnvironmentName = _environment.Name; 2003construct.EnvironmentName = _environment.Name; 2228$"workload without authentication: {reason}. The parameter '{passwordParameter.Name}' cannot be " + 2425$"Parameter '{userNameParameter.Name}' is used as both the user name and the password of " + 2491$"Parameter '{recipeUserName.Name}' is used as both the user name and the password of " + 2764$"Parameter '{userNameParameter.Name}' is used as both the user name and the password of " + 2964parameter.Name, 2999parameter.Name, 3354$"Resource '{resource.Name}' is deployed by a Radius recipe in a different environment than '{_environment.Name}', " + 4599$"Parameter '{parameter.Name}' is used as the credential of both '{existing.Owner.Name}' and '{owner.Name}', " + 4773if (_envParametersByName.TryGetValue(parameter.Name, out var existing)) 4778var identifier = BicepPostProcessor.SanitizeIdentifier(parameter.Name); 4788if (_recipeParameters.TryGetValue(parameter.Name, out var recipeParameter)) 4798_envParametersByName[parameter.Name] = provisioningParameter; 5424if (!_recipeParameters.TryGetValue(parameter.Name, out var provisioningParameter)) 5437if (_envParametersByName.TryGetValue(parameter.Name, out var envParameter)) 5442var identifier = BicepPostProcessor.SanitizeIdentifier(parameter.Name); 5451$"Recipe parameters bound to Aspire parameters '{existingName}' and '{parameter.Name}' both " + 5460_recipeParameters[parameter.Name] = provisioningParameter; 5461_recipeParameterIdentifiers[identifier] = parameter.Name; 5496new($"A recipe parameter on Radius environment '{_environment.Name}' references {cloud} provider " + 5522resourceType, _environment.Name); 5558var identifier = BicepPostProcessor.SanitizeIdentifier(store.Name); 5561StoreName = store.Name, 5579storeConstructs[store.Name] = construct; 5629$"Unknown secret-store consumer kind '{consumer.Kind}' for store '{consumer.Store.Name}'."); 5672if (storeConstructs.TryGetValue(store.Name, out var construct)) 5682$"Environment '{_environment.Name}' references secret store '{store.Name}', but that store is not " + 5760if (!options.SealedSecretManifests.TryGetValue(store.Name, out var manifest)) 5762manifest = SealedSecretManifest.ReadValidated(store.Name, manifestPath, defaultNamespace); 5763options.SealedSecretManifests[store.Name] = manifest;
Publishing\SealedSecretApplyStep.cs (11)
45Name = $"apply-sealed-secrets-{_environment.Name}", 46Description = $"Apply and await sealed secrets for '{_environment.Name}' before rad deploy", 49step.DependsOn($"publish-radius-{_environment.Name}"); 51step.RequiredBy($"deploy-radius-{_environment.Name}"); 107var manifestPath = ResolveManifestPath(storeOutputDir, store.Name, sourceManifestPath); 113var validated = SealedSecretManifest.ReadValidated(store.Name, manifestPath, defaultNamespace); 132ct => ApplyManifestAsync(validated.Content, applyNamespace, kubeContext, store.Name, metadata.Namespace, metadata.Name, manifestPath, logger, ct), 135() => CreateOperationTimeoutException(store.Name, metadata.Namespace, metadata.Name, "apply", store.MaterializationTimeout)) 139store.Name, metadata.Namespace, metadata.Name, appliedGeneration, deadline, store.MaterializationTimeout, s_pollInterval, 154() => CreateOperationTimeoutException(store.Name, metadata.Namespace, metadata.Name, "verify", store.MaterializationTimeout)) 161$"'{store.Name}' is missing the declared key(s) {string.Join(", ", missing.Select(k => $"'{k}'"))}. " +
RadiusEnvironmentResource.cs (6)
49Name = $"prepare-deployment-targets-{Name}", 50Description = $"Prepares Radius deployment targets for {Name}.", 65Name = $"validate-radius-secret-stores-{Name}", 66Description = $"Validates Radius secret stores for {Name}.", 84Name = $"verify-radius-control-plane-{Name}", 85Description = $"Verifies the Radius control plane version for {Name}.",
RadiusInfrastructure.cs (2)
63environment.Name, 117environment.Name);
Secrets\RadiusSecretStoreExtensions.cs (1)
375$"Secret store '{store.Name}' already declares a population mode; declare exactly one of " +
Secrets\RadiusSecretStoreValidation.cs (18)
76.Select(static s => s.Name) 127$"Secret store '{store.Name}' must declare exactly one population mode " + 147$"Secret store '{store.Name}' declares the key '{key}' more than once. " + 159$"Secret store '{store.Name}' of type '{store.Type.ToRadiusTypeString()}' is missing " + 172$"Secret store '{store.Name}' binds key '{key}' to the non-secret parameter " + 173$"'{binding.Parameter.Name}'. Bind a parameter created with secret: true. " + 180$"Secret store '{store.Name}' sets encoding '{binding.Encoding}' on key '{key}', which is " + 192$"Secret store '{store.Name}' sets WithMaterializationTimeout but is not populated with " + 208$"Application-scoped secret store '{store.Name}' references the existing Secret '{reference}' " + 252$"Secret store '{store.Name}' of type '{store.Type.ToRadiusTypeString()}' is referenced as a " + 273$"Secret store '{store.Name}' is referenced as a {DescribeKind(consumer.Kind)} consumer but does not " + 296$"Secret store '{store.Name}' declares no keys, but the recipe environment secret " + 305$"Secret store '{store.Name}' does not declare the key '{key}' referenced by the recipe " + 334$"Application-scoped secret store '{store.Name}' references the SealedSecret manifest at " + 353var identifier = BicepPostProcessor.SanitizeIdentifier(store.Name); 372var envKey = (store.OwningEnvironment?.Name, identifier); 393$"Secret stores '{existing.Name}' and '{store.Name}' map to the same Bicep identifier " +
Aspire.Hosting.Radius.Tests (11)
CloudProviders\MultiEnvironmentProvidersTests.cs (2)
73var devAnn = envs.Single(e => e.Name == "dev").Annotations.OfType<RadiusCloudProvidersAnnotation>().Single(); 74var prodAnn = envs.Single(e => e.Name == "prod").Annotations.OfType<RadiusCloudProvidersAnnotation>().Single();
Publishing\BackingResourceProjectionTests.cs (1)
173var radiusEnvA = model.Resources.OfType<RadiusEnvironmentResource>().First(e => e.Name == "enva");
Publishing\ContainerEnvironmentEmissionTests.cs (1)
104var frontend = model.Resources.OfType<RadiusEnvironmentResource>().First(e => e.Name == "frontend-env");
Publishing\MultiEnvironmentPublishTests.cs (1)
97Assert.Contains($"name: '{env.Name}'", bicep);
RadiusEnvironmentResourceTests.cs (1)
19Assert.Equal("my-radius", resource.Name);
RadiusExtensionsTests.cs (2)
23Assert.Equal("radius", resourceBuilder.Resource.Name); 34Assert.Equal("staging", resourceBuilder.Resource.Name);
Secrets\AddRadiusSecretStoreTests.cs (3)
24Assert.Equal("db-creds", store.Resource.Name); 46Assert.Equal("api-key", store.Name); 112Assert.Equal(valid, store.Resource.Name);
Aspire.Hosting.Redis (7)
RedisBuilderExtensions.cs (7)
90throw new DistributedApplicationException($"ConnectionStringAvailableEvent was published for the '{redis.Name}' resource but the connection string was null."); 184logger.LogError($"Cannot configure an encrypted certificate for redis resource '{redis.Name}'"); 248Title = $"redis-cli ({resource.Name})", 329var hostString = $"{(hostsVariableBuilder.Length > 0 ? "," : string.Empty)}{redisInstance.Name}:{redisInstance.Name}:{endpoint.TargetPort}:0"; 398context.EnvironmentVariables[$"RI_REDIS_ALIAS{counter}"] = redisInstance.Name; 437logger.LogError($"Cannot configure an encrypted certificate for redis insight resource '{resource.Name}'");
Aspire.Hosting.Redis.Tests (60)
AddRedisTests.cs (13)
42Assert.Equal("myRedis", containerResource.Name); 70Assert.Equal("myRedis", containerResource.Name); 309Assert.Equal(insight.Name, managementUrl.Endpoint?.Resource.Name); 335Assert.Equal(commander.Name, managementUrl.Endpoint?.Resource.Name); 375Assert.Equal($"{redis1.Resource.Name}.dev.internal", item.Value); 385Assert.Equal(redis1.Resource.Name, item.Value); 397Assert.Equal($"{redis2.Resource.Name}.dev.internal", item.Value); 407Assert.Equal(redis2.Resource.Name, item.Value); 419Assert.Equal($"{redis3.Resource.Name}.dev.internal", item.Value); 429Assert.Equal(redis3.Resource.Name, item.Value); 571Assert.Equal($"myredis1:{redis.Resource.Name}:6379:0:{redis.Resource.PasswordParameter?.Value}", config["REDIS_HOSTS"]); 593Assert.Equal($"myredis1:{redis.Resource.Name}:6379:0:{password}", config["REDIS_HOSTS"]); 618Assert.Equal($"myredis1:{redis1.Resource.Name}:6379:0:{redis1.Resource.PasswordParameter?.Value},myredis2:myredis2:6379:0:{redis2.Resource.PasswordParameter?.Value}", config["REDIS_HOSTS"]);
RedisFunctionalTests.cs (44)
53await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running, cts.Token); 55await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting, cts.Token); 59await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Resource.Name, cts.Token); 61await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running, cts.Token); 82await app.WaitForTextAsync("Redis Connection", resourceName: commanderBuilder.Resource.Name); 84var client = app.CreateHttpClient(commanderBuilder.Resource.Name, "http"); 93var path = $"/apiv2/server/R:{redis.Resource.Name}:{endpoint.TargetPort}:0/info"; 121commanderBuilder.Resource.Name, 129redis.Resource.Name, 167redis.Resource.Name, 179commanderBuilder.Resource.Name, 185redis.Resource.Name, 198redis.Resource.Name, 222[$"ConnectionStrings:{redis.Resource.Name}"] = await redis.Resource.GetConnectionStringAsync() 225hb.AddRedisClient(redis.Resource.Name); 255await app.ResourceNotifications.WaitForResourceHealthyAsync(redis.Resource.Name, cts.Token); 262[$"ConnectionStrings:{redis.Resource.Name}"] = $"{await redis.Resource.GetConnectionStringAsync()},allowAdmin=true" 265hb.AddRedisClient(redis.Resource.Name); 296await rns.WaitForResourceAsync(redisInsightBuilder.Resource.Name, KnownResourceStates.Running).WaitAsync(cts.Token); 298var client = app.CreateHttpClient(redisInsightBuilder.Resource.Name, "http"); 314Assert.Equal(redis1.Resource.Name, db.Name); 315Assert.Equal($"{redis1.Resource.Name}.dev.internal", db.Host); 320Assert.Equal(redis2.Resource.Name, db.Name); 321Assert.Equal($"{redis2.Resource.Name}.dev.internal", db.Host); 326Assert.Equal(redis3.Resource.Name, db.Name); 327Assert.Equal($"{redis3.Resource.Name}.dev.internal", db.Host); 364[$"ConnectionStrings:{redis1.Resource.Name}"] = $"{await redis1.Resource.GetConnectionStringAsync()},allowAdmin=true" 367hb.AddRedisClient(redis1.Resource.Name); 401[$"ConnectionStrings:{redis2.Resource.Name}"] = await redis2.Resource.GetConnectionStringAsync() 404hb.AddRedisClient(redis2.Resource.Name); 447[$"ConnectionStrings:{redis1.Resource.Name}"] = $"{await redis1.Resource.GetConnectionStringAsync()},allowAdmin=true" 450hb.AddRedisClient(redis1.Resource.Name); 482[$"ConnectionStrings:{redis2.Resource.Name}"] = await redis2.Resource.GetConnectionStringAsync() 485hb.AddRedisClient(redis2.Resource.Name); 532[$"ConnectionStrings:{redis1.Resource.Name}"] = $"{await redis1.Resource.GetConnectionStringAsync()},allowAdmin=true" 535hb.AddRedisClient(redis1.Resource.Name); 563[$"ConnectionStrings:{redis2.Resource.Name}"] = await redis2.Resource.GetConnectionStringAsync() 566hb.AddRedisClient(redis2.Resource.Name); 631await rns.WaitForResourceAsync(redisInsightBuilder1.Resource.Name, KnownResourceStates.Running).WaitAsync(cts.Token); 635var httpClient = app.CreateHttpClient(redisInsightBuilder1.Resource.Name, "http"); 666await rns.WaitForResourceAsync(redisInsightBuilder2.Resource.Name, KnownResourceStates.Running).WaitAsync(cts.Token); 670var httpClient = app.CreateHttpClient(redisInsightBuilder2.Resource.Name, "http"); 787await app.ResourceNotifications.WaitForResourceHealthyAsync(redis.Resource.Name, cts.Token); 788await app.ResourceNotifications.WaitForResourceHealthyAsync(redisCommander.Name, cts.Token);
tests\Shared\ContainerReplCommandTestBase.cs (3)
85ResourceName = resource.Resource.Name, 108ResourceName = resource.Resource.Name, 165await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Name, readiness.Token);
Aspire.Hosting.RemoteHost.Tests (4)
CapabilityDispatcherTests.cs (4)
2530TestResourceWithProperties resource => resource.Name, 2682return $"{prefix}, {Name}!"; 2695ReferenceExpression.Create($"Host=localhost;Database={Name}"); 2700yield return new("Database", ReferenceExpression.Create($"{Name}"));
Aspire.Hosting.Rust (25)
RustDockerfileGenerator.cs (12)
77ValidateDockerfileValue(options.ManifestPath, "cargo manifest path", resource.Name); 78var containerManifestPath = ValidateManifestPath(options.ManifestPath, workingDirectory, resource.Name); 79var targetCacheId = BuildTargetCacheId(resource.Name, containerManifestPath, workingDirectory); 84.ReadAsync(workingDirectory, options.ManifestPath, resource.Name, ReadOnlyDictionary<string, string>.Empty, context.CancellationToken) 91resource.Name); 95ValidateDockerfileValue(target.Name, "resolved Cargo target executable name", resource.Name); 96ValidateDockerfileValue(target.ProfileDirectory, "resolved Cargo profile directory", resource.Name); 97ValidateDockerfileValue(target.Target, "resolved Cargo target triple directory", resource.Name); 108ValidateCargoArgumentsDoNotContainCredentials(cargoArgs, resource.Name); 112ValidateDockerfileValue(cargoArg, "cargo argument", resource.Name); 122ValidateDockerfileValue(buildImage, "Dockerfile build image", resource.Name); 123ValidateDockerfileValue(runtimeImage, "Dockerfile runtime image", resource.Name);
RustHostingExtensions.cs (13)
112$"Cargo arguments for resource '{resource.Name}' have not been resolved yet. " + 150if (!builder.TryCreateResourceBuilder<ContainerResource>(resource.Name, out var containerBuilder) 154$"The published Rust app '{resource.Name}' was not converted to a Dockerfile container resource."); 652$"Cargo arguments for resource '{resource.Name}' have not been resolved yet. " + 699.ReadAsync(workingDirectory, options.ManifestPath, resource.Name, environment, cancellationToken) 702var target = RustCargoTargetResolver.Resolve(metadata, options, executionContext, resource.Name); 726if (!applicationBuilder.TryCreateResourceBuilder<ContainerResource>(resource.Name, out var containerBuilder)) 729$"The published Rust app '{resource.Name}' was not converted to a container resource."); 800$"The Rust app '{resource.Name}' targets '{cargoTarget}', " + 906$"The Rust app '{resource.Name}' targets '{target}', which is not compatible with the default " + 915$"The Rust app '{resource.Name}' targets '{target}', but the default Rust build image does not support " + 922$"The Rust app '{resource.Name}' targets '{target}', but the default Rust runtime image is not compatible " + 933$"The Rust app '{resource.Name}' targets '{target}', which cannot be mapped to a supported Docker Linux " +
Aspire.Hosting.Seq.Tests (10)
AddSeqTests.cs (4)
24Assert.Equal("mySeq", containerResource.Name); 52Assert.Equal("mySeq", containerResource.Name); 178Assert.Equal("mySeq", containerResource.Name); 211Assert.Equal("mySeq", containerResource.Name);
SeqFunctionalTests.cs (6)
28await app.WaitForTextAsync("Seq listening on", seq.Resource.Name); 37await app.ResourceNotifications.WaitForResourceHealthyAsync(seq.Resource.Name, default); 106await app.WaitForTextAsync("Seq listening on", seq1.Resource.Name); 117await app.ResourceNotifications.WaitForResourceHealthyAsync(seq1.Resource.Name, default); 145await app.WaitForTextAsync("Seq listening on", seq2.Resource.Name); 156await app.ResourceNotifications.WaitForResourceHealthyAsync(seq2.Resource.Name, default);
Aspire.Hosting.SqlServer (5)
SqlServerBuilderExtensions.cs (4)
72throw new DistributedApplicationException($"ConnectionStringAvailableEvent was published for the '{sqlServer.Name}' resource but the connection string was null."); 79throw new DistributedApplicationException($"ResourceReadyEvent was published for the '{sqlServer.Name}' resource but the connection string was null."); 87throw new InvalidOperationException($"Could not open connection to '{sqlServer.Name}'"); 152Title = $"sqlcmd ({resource.Name})",
SqlServerServerResource.cs (1)
146_databases.TryAdd(database.Name, database.DatabaseName);
Aspire.Hosting.SqlServer.Tests (31)
AddSqlServerTests.cs (1)
46Assert.Equal("sqlserver", containerResource.Name);
SqlServerFunctionalTests.cs (27)
46await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running, cts.Token); 48await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting, cts.Token); 52await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Resource.Name, cts.Token); 54await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running, cts.Token); 84hb.Configuration[$"ConnectionStrings:{newDb.Resource.Name}"] = await newDb.Resource.ConnectionStringExpression.GetValueAsync(default); 86hb.AddSqlServerDbContext<TestDbContext>(newDb.Resource.Name); 87hb.AddSqlServerClient(newDb.Resource.Name); 182await app1.ResourceNotifications.WaitForResourceHealthyAsync(db1.Resource.Name, cts.Token); 191[$"ConnectionStrings:{db1.Resource.Name}"] = await db1.Resource.ConnectionStringExpression.GetValueAsync(default), 194hb1.AddSqlServerClient(db1.Resource.Name); 268await app2.ResourceNotifications.WaitForResourceHealthyAsync(db2.Resource.Name, cts.Token); 277[$"ConnectionStrings:{db2.Resource.Name}"] = await db2.Resource.ConnectionStringExpression.GetValueAsync(default), 280hb2.AddSqlServerClient(db2.Resource.Name); 374hb.Configuration[$"ConnectionStrings:{newDb.Resource.Name}"] = await newDb.Resource.ConnectionStringExpression.GetValueAsync(default); 376hb.AddSqlServerClient(newDb.Resource.Name); 382await app.ResourceNotifications.WaitForResourceHealthyAsync(newDb.Resource.Name, cts.Token); 388resourceName: sqlserver.Resource.Name, 435hb.Configuration[$"ConnectionStrings:{newDb.Resource.Name}"] = await newDb.Resource.ConnectionStringExpression.GetValueAsync(default); 437hb.AddSqlServerClient(newDb.Resource.Name); 443await app.ResourceNotifications.WaitForResourceHealthyAsync(newDb.Resource.Name, cts.Token); 508hb.Configuration[$"ConnectionStrings:{newDb.Resource.Name}"] = await newDb.Resource.ConnectionStringExpression.GetValueAsync(default); 510hb.AddSqlServerClient(newDb.Resource.Name); 516await app.ResourceNotifications.WaitForResourceHealthyAsync(sqlserver.Resource.Name, cts.Token); 569hb.Configuration[$"ConnectionStrings:{db.Resource.Name}"] = await db.Resource.ConnectionStringExpression.GetValueAsync(default); 570hb.AddKeyedSqlServerClient(db.Resource.Name); 579await app.ResourceNotifications.WaitForResourceHealthyAsync(db.Resource.Name, cts.Token); 581var conn = host.Services.GetRequiredKeyedService<SqlConnection>(db.Resource.Name);
tests\Shared\ContainerReplCommandTestBase.cs (3)
85ResourceName = resource.Resource.Name, 108ResourceName = resource.Resource.Name, 165await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Name, readiness.Token);
Aspire.Hosting.Testing.Tests (2)
TestingBuilderTests.cs (1)
170Assert.Contains(appModel.GetProjectResources(), p => p.Name == "myworker1");
TestingFactoryTests.cs (1)
44Assert.Contains(appModel.GetProjectResources(), p => p.Name == "myworker1");
Aspire.Hosting.Tests (333)
AddConnectionStringTests.cs (1)
30Assert.Equal("mycs", connectionStringResource.Name);
AddParameterTests.cs (9)
98var parameterResource = Assert.Single(appModel.Resources.OfType<ParameterResource>(), r => r.Name == "pass"); 104var paramManifest = await ManifestUtils.GetManifest(appModel.Resources.OfType<ParameterResource>().Single(r => r.Name == "pass")).DefaultTimeout(); 150var parameterResource = Assert.Single(appModel.Resources.OfType<ParameterResource>(), r => r.Name == "pass"); 156var paramManifest = await ManifestUtils.GetManifest(appModel.Resources.OfType<ParameterResource>().Single(r => r.Name == "pass")).DefaultTimeout(); 231var parameterResource = Assert.Single(appModel.Resources.OfType<ParameterResource>(), r => r.Name == "pass"); 248var paramManifest = await ManifestUtils.GetManifest(appModel.Resources.OfType<ParameterResource>().Single(r => r.Name == "pass")).DefaultTimeout(); 299var parameterResource = Assert.Single(appModel.Resources.OfType<ParameterResource>(), r => r.Name == "val"); 305var paramManifest = await ManifestUtils.GetManifest(appModel.Resources.OfType<ParameterResource>().Single(r => r.Name == "val")).DefaultTimeout(); 332Assert.Equal("mycs", connectionStringResource.Name);
ApplicationModel\Docker\WithDockerfileBuilderTests.cs (2)
289Assert.Equal("mycontainer", container.Resource.Name); 310Assert.Equal("mycontainer", container.Resource.Name);
Backchannel\AuxiliaryBackchannelRpcTargetTests.cs (2)
1234ResourceName = custom.Resource.Name, 1621hosts[i] = new TerminalHostResource($"{resource.Name}-terminalhost-{i}", resource, layout);
Codespaces\CodespacesUrlRewriterTests.cs (1)
81resource.Resource.Name,
ContainerRegistryResourceTests.cs (9)
23Assert.Equal("docker-hub", registry.Resource.Name); 39Assert.Equal("acr", registry.Resource.Name); 57Assert.Equal("my-registry", registry.Resource.Name); 74Assert.Equal("my-registry", registry.Resource.Name); 158Assert.Equal("docker-hub", registry.Name); 190Assert.Equal("my-registry", registry.Name); 295Assert.Contains(registries, r => r.Name == "docker-hub"); 296Assert.Contains(registries, r => r.Name == "ghcr"); 297Assert.Contains(registries, r => r.Name == "acr");
ContainerTunnelTests.cs (8)
39await app.ResourceNotifications.WaitForResourceHealthyAsync(yarp.Resource.Name).DefaultTimeout(TestConstants.DefaultOrchestratorTestLongTimeout); 41using var clientA = app.CreateHttpClient(yarp.Resource.Name, "http"); 82await app.ResourceNotifications.WaitForResourceHealthyAsync(yarp.Resource.Name).DefaultTimeout(TestConstants.DefaultOrchestratorTestLongTimeout); 84using var clientA = app.CreateHttpClient(yarp.Resource.Name, "http"); 122await app.ResourceNotifications.WaitForResourceAsync(c.Resource.Name, KnownResourceStates.Running) 154foreach (var resourceName in new[] { upstreamService.Resource.Name, tunnelDependentContainer.Resource.Name, downstreamService.Resource.Name })
Dashboard\DashboardResourceTests.cs (4)
65Assert.Equal("aspire-dashboard", dashboard.Name); 359Assert.Equal("aspire-dashboard", dashboard.Name); 743Assert.Equal("aspire-dashboard", dashboard.Name); 800Assert.Equal("aspire-dashboard", dashboard.Name);
Dashboard\DashboardServiceDataTerminalTests.cs (3)
37var snapshot = await data.WaitForResourceAsync(resource.Name, _ => true).DefaultTimeout(); 52var snapshot = await data.WaitForResourceAsync(resource.Name, r => HasTerminalProperty(r, "terminal.enabled")).DefaultTimeout(); 112var snapshot = await data.WaitForResourceAsync(resource.Name, r => HasTerminalProperty(r, "terminal.enabled")).DefaultTimeout();
Dashboard\DashboardServiceTests.cs (5)
218await dashboardServiceData.WaitForResourceAsync(testResource.Name, r => 326ResourceName = testResource.Name, 385ResourceName = testResource.Name, 448ResourceName = testResource.Name, 1581Assert.True(terminalService.TryGetTerminal(ResourceTerminalCatalog.BuildId(resource.Name, 0), out var terminal));
Dcp\DcpExecutorTests.cs (35)
700var executables = GetCreatedExecutablesForResource(kubernetesService, resource.Name); 719executables = GetCreatedExecutablesForResource(kubernetesService, resource.Name); 1304Assert.Single(kubernetesService.CreatedResources.OfType<Container>(), c => c.AppModelResourceName == emulator.Resource.Name); 5130var executable = GetCreatedExecutableForResource(kubernetesService, resource.Name); 9430.Where(c => c.AppModelResourceName == container.Resource.Name) 9447await AssertEndpoint(container.Resource, "proxied", KnownNetworkIdentifiers.DefaultAspireContainerNetwork, $"{container.Resource.Name}.dev.internal", 11234); 9448await AssertEndpoint(container.Resource, "notProxied", KnownNetworkIdentifiers.DefaultAspireContainerNetwork, $"{container.Resource.Name}.dev.internal", 18765); 9453await AssertEndpoint(containerWithAlias.Resource, "proxied", KnownNetworkIdentifiers.DefaultAspireContainerNetwork, $"{containerWithAlias.Resource.Name}.dev.internal", 21234); 9454await AssertEndpoint(containerWithAlias.Resource, "notProxied", KnownNetworkIdentifiers.DefaultAspireContainerNetwork, $"{containerWithAlias.Resource.Name}.dev.internal", 28765); 9538s => s.AppModelResourceName == executable.Resource.Name 9965Assert.Equal(executable.Resource.Name, tunnelService.AppModelResourceName); 9970resource => resource.AppModelResourceName == executable.Resource.Name); 9999target.Resource.Name, 10016Assert.Equal(target.Resource.Name, tunnelService.AppModelResourceName); 10020resource => resource.AppModelResourceName == source.Resource.Name); 10053Assert.Equal(project.Resource.Name, tunnelService.AppModelResourceName); 10057resource => resource.AppModelResourceName == project.Resource.Name); 10092Assert.Equal(target.Resource.Name, tunnelService.AppModelResourceName); 10097resource => resource.AppModelResourceName == source.Resource.Name); 10149resource => resource.AppModelResourceName == executable.Resource.Name); 10216resource => resource.AppModelResourceName == executable.Resource.Name); 10257resource => resource.AppModelResourceName == source.Resource.Name); 10306resource => resource.AppModelResourceName == executable.Resource.Name); 10443while (!kubernetesService.CreatedResources.OfType<Container>().Any(c => c.AppModelResourceName == container.Resource.Name)) 10459Assert.Single(createdContainers, c => c.AppModelResourceName == container.Resource.Name); 10460Assert.Single(createdContainers, c => c.AppModelResourceName == waiting.Resource.Name); 10461var waitingConsumingContainer = Assert.Single(createdContainers, c => c.AppModelResourceName == waitingConsumingEndpoint.Resource.Name); 10468Assert.Single(tunnelServices, s => s.AppModelResourceName == executableA.Resource.Name); 10469var executableBTunnelService = Assert.Single(tunnelServices, s => s.AppModelResourceName == executableB.Resource.Name); 10504while (!kubernetesService.CreatedResources.OfType<Executable>().Any(e => e.AppModelResourceName == upstreamExecutable.Resource.Name)) 10512while (!kubernetesService.CreatedResources.OfType<Container>().Any(c => c.AppModelResourceName == tunnelDependentContainer.Resource.Name)) 10528var upstreamExecutableResource = Assert.Single(createdResources.OfType<Executable>(), e => e.AppModelResourceName == upstreamExecutable.Resource.Name); 10529var downstreamExecutableResource = Assert.Single(createdResources.OfType<Executable>(), e => e.AppModelResourceName == downstreamExecutable.Resource.Name); 10530var tunnelDependentDcpContainer = Assert.Single(createdResources.OfType<Container>(), c => c.AppModelResourceName == tunnelDependentContainer.Resource.Name); 10541var upstreamTunnelService = Assert.Single(tunnelServices, s => s.AppModelResourceName == upstreamExecutable.Resource.Name);
Dcp\ExecutableLaunchPlanTests.cs (4)
26resource.Name, 73resource.Name, 102resource.Name, 163resource.Name,
Dcp\ResourceSnapshotBuilderTests.cs (11)
68executable.Annotate(DcpCustomResource.ResourceNameAnnotation, project.Name); 78[project.Name] = project 95resource.Name, 99var executable = Executable.Create(resource.Name, "python"); 100executable.Annotate(DcpCustomResource.ResourceNameAnnotation, resource.Name); 104[resource.Name] = resource 133executable.Annotate(DcpCustomResource.ResourceNameAnnotation, project.Name); 143[project.Name] = project 146Assert.Contains(project.Name, exception.Message); 161executable.Annotate(DcpCustomResource.ResourceNameAnnotation, resource.Name); 171[resource.Name] = resource
DistributedApplicationTests.cs (16)
784using var clientA = app.CreateHttpClient(testProgram.ServiceABuilder.Resource.Name, "http"); 785using var clientC = app.CreateHttpClient(testProgram.ServiceCBuilder.Resource.Name, "http"); 792var uri = app.GetEndpoint(testProgram.ServiceBBuilder.Resource.Name, "http"); 1110var dependentRunningResourceEvent = await rns.WaitForResourceAsync(container.Resource.Name, e => e.Snapshot.State?.Text == KnownResourceStates.Running).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 1271using var serviceAClient = app.CreateHttpClientWithResilience(testProgram.ServiceABuilder.Resource.Name, "http"); 1783await app.WaitForTextAsync("Content root path:", resourceName: testProgram.ServiceABuilder.Resource.Name).DefaultTimeout(TestConstants.LongTimeoutDuration); 1786var httpEndPoint = app.GetEndpoint(testProgram.ServiceABuilder.Resource.Name, endpointName: "http"); 1804var httpsEndpoint = app.GetEndpoint(testProgram.ServiceABuilder.Resource.Name, endpointName: "https"); 1854using var clientA = app.CreateHttpClient(servicea.Resource.Name, "http"); 1928using var clientA = app.CreateHttpClient(servicea.Resource.Name, "http"); 2057await app.ResourceNotifications.WaitForResourceAsync(container.Resource.Name, KnownResourceStates.NotStarted, token) 2059await app.ResourceNotifications.WaitForResourceAsync(executable.Resource.Name, KnownResourceStates.NotStarted, token) 2065var dcpContainer = Assert.Single(containers, c => c.AppModelResourceName == container.Resource.Name); 2074var dcpExecutable = Assert.Single(executables, e => e.AppModelResourceName == executable.Resource.Name); 2358var expectedServiceName = hasMultipleEndpoints ? $"{redis.Name}-{endpoint.EndpointName}" : redis.Name;
ExpressionResolverTests.cs (1)
334return new ValueTask<string?>(base.Name);
ExternalServiceTests.cs (16)
22Assert.Equal("nuget", externalService.Resource.Name); 35Assert.Equal("nuget", externalService.Resource.Name); 48Assert.Equal("nuget", externalService.Resource.Name); 51Assert.Equal("nuget-url", externalService.Resource.UrlParameter.Name); 86Assert.Equal("nuget", externalService.Resource.Name); 102Assert.Equal("nuget", externalService.Resource.Name); 233Assert.NotNull(healthCheckAnnotations.FirstOrDefault(hc => hc.Key.StartsWith($"{externalService.Resource.Name}_external"))); 249Assert.NotNull(healthCheckAnnotations.FirstOrDefault(hc => hc.Key.StartsWith($"{externalService.Resource.Name}_external"))); 341externalService.Resource.Name, 368externalService.Resource.Name, 395externalService.Resource.Name, 420var healthCheckAnnotation = healthCheckAnnotations.FirstOrDefault(hc => hc.Key.StartsWith($"{externalService.Resource.Name}_external")); 441var healthCheckAnnotation = healthCheckAnnotations.FirstOrDefault(hc => hc.Key.StartsWith($"{externalService.Resource.Name}_external")); 466var healthCheckKey = healthCheckAnnotations.First(hc => hc.Key.StartsWith($"{externalService.Resource.Name}_external")).Key; 507Assert.Equal("service", externalService.Resource.Name); 522Assert.Equal("service", externalService.Resource.Name);
Health\FriendlyHealthCheckErrorMessagesTests.cs (4)
33var healthCheckKey = healthCheckAnnotations.First(hc => hc.Key.StartsWith($"{externalService.Resource.Name}_external")).Key; 73var healthCheckKey = healthCheckAnnotations.First(hc => hc.Key.StartsWith($"{externalService.Resource.Name}_external")).Key; 113var healthCheckKey = healthCheckAnnotations.First(hc => hc.Key.StartsWith($"{externalService.Resource.Name}_external")).Key; 150var healthCheckKey = healthCheckAnnotations.First(hc => hc.Key.StartsWith($"{externalService.Resource.Name}_external")).Key;
Health\ResourceHealthCheckServiceTests.cs (2)
233await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Resource.Name, abortTokenSource.Token).DefaultTimeout(); 317await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running, abortTokenSource.Token).DefaultTimeout();
HealthCheckTests.cs (4)
137await rns.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running).DefaultTimeout(TestConstants.DefaultOrchestratorTestLongTimeout); 139await rns.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting).DefaultTimeout(TestConstants.DefaultOrchestratorTestLongTimeout); 143await rns.WaitForResourceHealthyAsync(resource.Resource.Name).DefaultTimeout(TestConstants.DefaultOrchestratorTestLongTimeout); 145await rns.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running).DefaultTimeout(TestConstants.DefaultOrchestratorTestLongTimeout);
ModelNameTests.cs (1)
120Assert.Equal(longName, rebuilder.Name);
Orchestrator\ApplicationOrchestratorTests.cs (35)
44await notifications.PublishUpdateAsync(resource.Resource, resource.Resource.Name, 70CancellationToken.None, KnownResourceTypes.Executable, resource.Resource, resource.Resource.Name, 519Assert.True(resourceNotificationService.TryGetCurrentState(resource.Resource.Name, out var currentState)); 647await resourceNotificationService.WaitForResourceAsync(waiter.Resource.Name, KnownResourceStates.Waiting, TestContext.Current.CancellationToken).DefaultTimeout(); 650Assert.True(resourceNotificationService.TryGetCurrentState(waiter.Resource.Name, out var waitingEvent)); 655await resourceNotificationService.WaitForResourceAsync(blocker.Resource.Name, KnownResourceStates.Running, TestContext.Current.CancellationToken).DefaultTimeout(); 656await resourceNotificationService.WaitForResourceAsync(waiter.Resource.Name, KnownResourceStates.Running, TestContext.Current.CancellationToken).DefaultTimeout(); 687CancellationToken.None, KnownResourceTypes.Executable, waiter.Resource, waiter.Resource.Name)); 689await resourceNotificationService.WaitForResourceAsync(waiter.Resource.Name, KnownResourceStates.Waiting, TestContext.Current.CancellationToken).DefaultTimeout(); 691Assert.True(resourceNotificationService.TryGetCurrentState(dependency.Resource.Name, out var dependencyEvent)); 696await resourceNotificationService.WaitForResourceAsync(dependency.Resource.Name, KnownResourceStates.Running, TestContext.Current.CancellationToken).DefaultTimeout(); 739waiter.Resource.Name, 797waiter.Resource.Name, 848waiter.Resource.Name, 902waiter.Resource.Name, 910waiter.Resource.Name, 957await resourceNotificationService.WaitForResourceAsync(waiter.Resource.Name, KnownResourceStates.Waiting, TestContext.Current.CancellationToken).DefaultTimeout(); 962await resourceNotificationService.WaitForResourceAsync(waiter.Resource.Name, KnownResourceStates.Running, TestContext.Current.CancellationToken).DefaultTimeout(); 964Assert.True(resourceNotificationService.TryGetCurrentState(blocker.Resource.Name, out var blockerEvent)); 1009waiter.Resource.Name, 1013while (!resourceNotificationService.TryGetCurrentState(waiter.Resource.Name, out var waiterEvent) 1028await resourceNotificationService.WaitForResourceAsync(waiter.Resource.Name, KnownResourceStates.Running, cancellationToken).DefaultTimeout(); 1030Assert.True(resourceNotificationService.TryGetCurrentState(blocker.Resource.Name, out var blockerEvent)); 1061await resourceNotificationService.WaitForResourceAsync(connectionString.Resource.Name, KnownResourceStates.Waiting, TestContext.Current.CancellationToken).DefaultTimeout(); 1065await resourceNotificationService.WaitForResourceAsync(referenced.Resource.Name, KnownResourceStates.Running, TestContext.Current.CancellationToken).DefaultTimeout(); 1066await resourceNotificationService.WaitForResourceAsync(connectionString.Resource.Name, KnownResourceStates.Running, TestContext.Current.CancellationToken).DefaultTimeout(); 1097waiter.Resource.Name, 1102Assert.Equal(new[] { blocker.Resource.Name }, Assert.IsAssignableFrom<IEnumerable<string>>(waitingFor)); 1108await resourceNotificationService.WaitForResourceAsync(blocker.Resource.Name, KnownResourceStates.Running, TestContext.Current.CancellationToken).DefaultTimeout(); 1109await resourceNotificationService.WaitForResourceAsync(waiter.Resource.Name, KnownResourceStates.Running, TestContext.Current.CancellationToken).DefaultTimeout(); 1241public ReferenceExpression ConnectionStringExpression => ReferenceExpression.Create($"{Name}-connection-string"); 1367var childContainerState = resourceNotificationService.TryGetCurrentState(childContainer.Resource.Name, out var childContainerEvent) ? childContainerEvent.Snapshot.State?.Text : null; 1368var customChildState = resourceNotificationService.TryGetCurrentState(customChild.Resource.Name, out var customChildEvent) ? customChildEvent.Snapshot.State?.Text : null; 1415var childProjectState = resourceNotificationService.TryGetCurrentState(childProject.Resource.Name, out var childProjectEvent) ? childProjectEvent.Snapshot.State?.Text : null; 1416var customChildState = resourceNotificationService.TryGetCurrentState(customChild.Resource.Name, out var customChildEvent) ? customChildEvent.Snapshot.State?.Text : null;
Orchestrator\ParameterProcessorTests.cs (14)
605var explicitParameterResource = model.Resources.OfType<ParameterResource>().First(p => p.Name == "explicitParam"); 606var referencedParameterResource = model.Resources.OfType<ParameterResource>().First(p => p.Name == "referencedParam"); 651Assert.Equal("explicitParam", explicitParameterResource.Name); 677Assert.Equal("envParam", parameterResource.Name); 856Assert.Equal("excludedParam", parameterResource.Name); 1101Assert.Equal(string.Format(CultureInfo.InvariantCulture, CommandStrings.ResourceSetParameter, parameter.Name), result.Message); 1152Assert.True(capturingStateManager.State.TryGetPropertyValue($"Parameters:{parameter.Name}", out var savedValueNode)); 1158Assert.True(capturingStateManager.State.TryGetPropertyValue($"Parameters:{parameter.Name}", out savedValueNode)); 1185Assert.True(capturingStateManager.State.TryGetPropertyValue($"Parameters:{parameter.Name}", out var savedValueNode)); 1532Assert.Equal(string.Format(CultureInfo.InvariantCulture, CommandStrings.ResourceDeletedParameter, parameter.Name), result.Message); 1533var section = await capturingStateManager.AcquireSectionAsync($"Parameters:{parameter.Name}").DefaultTimeout(); 1550Assert.True(capturingStateManager.State.TryGetPropertyValue($"Parameters:{parameter.Name}", out var savedValueNode)); 1568Assert.True(capturingStateManager.State.TryGetPropertyValue($"Parameters:{parameter.Name}", out var savedValueNode)); 1634var section = await capturingStateManager.AcquireSectionAsync($"Parameters:{parameter.Name}").DefaultTimeout();
Pipelines\DistributedApplicationPipelineTests.cs (1)
2071var paramResource = builder.Resources.OfType<ParameterResource>().FirstOrDefault(p => p.Name == "test-param");
ProjectResourceBuilderExtensionTests.cs (4)
72Assert.Contains(executable.Resource.Name, exception.Message); 92Assert.Contains(project.Resource.Name, exception.Message); 121Assert.Contains(project.Resource.Name, exception.Message); 138Assert.Contains(project.Resource.Name, exception.Message);
ProjectResourceTests.cs (2)
133Assert.Equal("projectName", resource.Name); 263Assert.Equal("projectName", resource.Name);
PublishAsDockerfileTests.cs (9)
29Assert.Equal("frontend", containerResource.Name); 75Assert.Equal("frontend", containerResource.Name); 124Assert.Equal("frontend", containerResource.Name); 173Assert.Equal("frontend", containerResource.Name); 233Assert.Equal("project", containerResource.Name); 372Assert.Equal("frontend", containerResource.Name); 398Assert.Equal("frontend", containerResource.Name); 418Assert.Equal("project", containerResource.Name); 445Assert.Equal("project", containerResource.Name);
ResourceCommandServiceTests.cs (1)
1753await resourceNotificationService.WaitForResourceAsync(project.Resource.Name, e => KnownResourceStates.BuildableStates.Contains(e.Snapshot.State?.Text), cts.Token).DefaultTimeout(TimeSpan.FromMinutes(2));
ResourceFailureLoggingTests.cs (3)
36await app.ResourceNotifications.WaitForResourceAsync(executable.Resource.Name, KnownResourceStates.Finished, cts.Token).DefaultTimeout(TestConstants.DefaultOrchestratorTestLongTimeout); 59await app.ResourceNotifications.WaitForResourceAsync(executable.Resource.Name, KnownResourceStates.FailedToStart, cts.Token).DefaultTimeout(TestConstants.DefaultOrchestratorTestLongTimeout); 90await app.ResourceNotifications.WaitForResourceAsync(executable.Resource.Name, KnownResourceStates.FailedToStart, cts.Token).DefaultTimeout(TestConstants.DefaultOrchestratorTestLongTimeout);
ResourceLoggerServiceTests.cs (6)
87Assert.Empty(service.GetResourceLoggerState(testResource.Name).GetBacklogSnapshot()); 137service.ClearBacklog(testResource.Name); 200Assert.Empty(service.GetResourceLoggerState(testResource.Name).GetBacklogSnapshot()); 477using (service.Subscribe(testResource.Name, _ => { })) 479service.AddLogEntries(testResource.Name, [CreateLogEntry("dcp-snapshot-log")], inMemorySource: false, skipExisting: false); 486service.SetConsoleLogsService(new TestConsoleLogsService(name => name == testResource.Name
ResourceNotificationTests.cs (45)
159Assert.True(notificationService.TryGetCurrentState(resource.Name, out var resourceEvent)); 372resource.Name, 374GetWaitingForDependencies(re).SequenceEqual(new[] { dependency1.Name, dependency2.Name }), 385resource.Name, 387GetWaitingForDependencies(re).SequenceEqual(new[] { dependency2.Name }), 390Assert.Equal(new[] { dependency2.Name }, GetWaitingForDependencies(updatedWaitingEvent)); 399Assert.True(notificationService.TryGetCurrentState(resource.Name, out var completedWaitingEvent)); 420resource.Name, 422GetWaitingForDependencies(re).SequenceEqual(new[] { dependency1.Name, dependency2.Name }), 438resource.Name, 440GetWaitingForDependencies(re).SequenceEqual(new[] { dependency2.Name }), 443Assert.Equal(new[] { dependency2.Name }, GetWaitingForDependencies(updatedWaitingEvent)); 457Assert.True(notificationService.TryGetCurrentState(resource.Name, out var completedWaitingEvent)); 476resource.Name, 478GetWaitingForDependencies(re).SequenceEqual(new[] { dependency1.Name, dependency2.Name }), 490resource.Name, 492GetWaitingForDependencies(re).SequenceEqual(new[] { dependency2.Name }), 495Assert.Equal(new[] { dependency2.Name }, GetWaitingForDependencies(updatedWaitingEvent)); 505Assert.True(notificationService.TryGetCurrentState(resource.Name, out var completedWaitingEvent)); 530resource.Name, 535Assert.Equal(new[] { dependency.Name }, GetWaitingForDependencies(waitingEvent)); 576Assert.True(notificationService.TryGetCurrentState(resource.Name, out var resourceEvent)); 610resource.Name, 681resource.Name, 685Assert.Equal(new[] { dependency.Name }, GetWaitingForDependencies(waitingEvent)); 720resource.Name, 724Assert.Equal(new[] { dependency.Name }, GetWaitingForDependencies(waitingEvent)); 752resource.Name, 765resource.Name, 779Assert.True(notificationService.TryGetCurrentState(resource.Name, out var completedWaitingEvent)); 795Assert.True(notificationService.TryGetCurrentState(resource.Name, out var waitingEvent)); 803Assert.True(notificationService.TryGetCurrentState(resource.Name, out var runningEvent)); 822Properties = [new ResourcePropertySnapshot(KnownProperties.Resource.WaitingFor, new[] { dependency.Name })] 826var waitTask = notificationService.WaitForResourceAsync(resource.Name, KnownResourceStates.Running, cts.Token); 856resource.Name, 858GetWaitingForDependencies(re).SequenceEqual(new[] { dependency.Name }), 1554Assert.True(notificationService.TryGetCurrentState(resource.Name, out var initial)); 1561Assert.True(notificationService.TryGetCurrentState(resource.Name, out var unchanged)); 1577Assert.True(notificationService.TryGetCurrentState(resource.Name, out var initial)); 1580Assert.True(notificationService.TryGetCurrentState(resource.Name, out var changed)); 1606Assert.True(notificationService.TryGetCurrentState(resource.Name, out var initial)); 1612Assert.True(notificationService.TryGetCurrentState(resource.Name, out var changed));
SlimTestProgramTests.cs (3)
36using var clientA = app.CreateHttpClientWithResilience(testProgram.ServiceABuilder.Resource.Name, "http"); 39using var clientB = app.CreateHttpClientWithResilience(testProgram.ServiceBBuilder.Resource.Name, "http"); 42using var clientC = app.CreateHttpClientWithResilience(testProgram.ServiceCBuilder.Resource.Name, "http");
TestProgramFixture.cs (3)
68using var clientA = App.CreateHttpClientWithResilience(TestProgram.ServiceABuilder.Resource.Name, "http"); 72using var clientB = App.CreateHttpClientWithResilience(TestProgram.ServiceBBuilder.Resource.Name, "http"); 76using var clientC = App.CreateHttpClientWithResilience(TestProgram.ServiceCBuilder.Resource.Name, "http");
WaitForTests.cs (37)
33await app.ResourceNotifications.WaitForResourceAsync(throwingResource.Resource.Name, KnownResourceStates.FailedToStart, abortCts.Token); 34await app.ResourceNotifications.WaitForResourceAsync(dependingContainerResource.Resource.Name, KnownResourceStates.FailedToStart, abortCts.Token); 35await app.ResourceNotifications.WaitForResourceAsync(dependingExecutableResource.Resource.Name, KnownResourceStates.FailedToStart, abortCts.Token); 108await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.Waiting, waitingStateCts.Token); 139await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.Waiting, waitingStateCts.Token); 176await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.Waiting, waitingStateCts.Token); 217await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.Waiting, waitingStateCts.Token); 224await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.FailedToStart, waitingStateCts.Token); 245dependency.Resource.Name, 269dependency.Resource.Name, 299await app.ResourceNotifications.WaitForResourceHealthyAsync(dependency.Resource.Name) 328await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.Waiting, waitingStateCts.Token); 335await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.FailedToStart, waitingStateCts.Token); 362await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.Waiting, waitingStateCts.Token); 369await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.Waiting, waitingStateCts.Token); 377await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.Running, waitingStateCts.Token); 409await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.Waiting, waitingStateCts.Token); 416await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.Waiting, waitingStateCts.Token); 424await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.Running, waitingStateCts.Token); 454await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.Waiting, waitingStateCts.Token); 469await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.Running, runningStateCts.Token); 501await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, "Waiting", waitingStateCts.Token); 516await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.FailedToStart, runningStateCts.Token); 556await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, "Waiting", waitingStateCts.Token); 572await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.FailedToStart, runningStateCts.Token); 610await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.Waiting, waitingStateCts.Token); 624await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.FailedToStart, runningStateCts.Token); 661await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.Waiting, waitingStateCts.Token); 669await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.Waiting, waitingStateCts.Token); 677await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.Running, waitingStateCts.Token); 714await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.Waiting, waitingStateCts.Token); 722await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.Waiting, waitingStateCts.Token); 730await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.Running, waitingStateCts.Token); 763await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.Waiting, waitingStateCts.Token); 771await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.Running, waitingStateCts.Token); 875await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.Waiting, waitingStateCts.Token); 885await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.Running, runningStateCts.Token);
WithEndpointTests.cs (1)
413Assert.Equal("foo", resource.Name);
WithHttpCommandTests.cs (8)
211Assert.Equal($"{resourceBuilder.Resource.Name}-http-http-post-/some-path", command.Name); 631await app.ResourceNotifications.WaitForResourceAsync(serviceA.Resource.Name, KnownResourceStates.Running).DefaultTimeout(); 664Assert.Equal(service.Resource.Name, requestContext.ResourceName); 708Assert.Equal(service.Resource.Name, resultContext.ResourceName); 956service.Resource.Name, 969service.Resource.Name, 1012service.Resource.Name, 1027service.Resource.Name,
WithProcessCommandTests.cs (4)
276Assert.Equal(resource.Resource.Name, capturedContext.ResourceName); 390Assert.Equal(resource.Resource.Name, capturedContext.ResourceName); 444ResourceName = resource.Resource.Name, 800Assert.Equal(resource.Resource.Name, capturedContext.ResourceName);
WithTerminalTests.cs (6)
174Assert.Equal("myapp-terminalhost-0", single.Name); 237Assert.Equal("mycontainer-terminalhost-0", single.Name); 276$"'{host.Name}' should be hidden by default."); 296$"'{host.Name}' should be visible when ShowTerminalHost=true."); 1173Assert.Equal($"myapp-terminalhost-{i}", hosts[i].Name); 1198Assert.Equal($"myapp-terminalhost-{i}", hosts[i].Name);
WithUrlsTests.cs (13)
268Assert.StartsWith($"http://{projectB.Resource.Name.ToLowerInvariant()}{expectedHostSuffix}", u.Url); 389servicea.Resource.Name, 414servicea.Resource.Name, 447servicea.Resource.Name, 497await rns.WaitForResourceAsync(servicea.Resource.Name, KnownResourceStates.Running).DefaultTimeout(); 613await rns.WaitForResourceAsync(custom.Resource.Name, KnownResourceStates.Running).DefaultTimeout(); 1062resourceB.Resource.Name, 1067using var resourceAClient = app.CreateHttpClientWithResilience(resourceA.Resource.Name, "api"); 1068using var resourceBClient = app.CreateHttpClientWithResilience(resourceB.Resource.Name, "http"); 1114resourceB.Resource.Name, 1125using var resourceAClient = app.CreateHttpClientWithResilience(resourceA.Resource.Name, "api"); 1129resourceB.Resource.Name, 1138resourceB.Resource.Name,
Aspire.Hosting.Valkey (2)
ValkeyBuilderExtensions.cs (2)
138throw new DistributedApplicationException($"ConnectionStringAvailableEvent was published for the '{valkey.Name}' resource but the connection string was null."); 219Title = $"valkey-cli ({resource.Name})",
Aspire.Hosting.Valkey.Tests (15)
AddValkeyTests.cs (2)
25Assert.Equal("myValkey", containerResource.Name); 53Assert.Equal("myValkey", containerResource.Name);
tests\Shared\ContainerReplCommandTestBase.cs (3)
85ResourceName = resource.Resource.Name, 108ResourceName = resource.Resource.Name, 165await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Name, readiness.Token);
ValkeyFunctionalTests.cs (10)
39[$"ConnectionStrings:{valkey.Resource.Name}"] = await valkey.Resource.ConnectionStringExpression.GetValueAsync(default) 42hb.AddRedisClient(valkey.Resource.Name); 103[$"ConnectionStrings:{valkey1.Resource.Name}"] = $"{await valkey1.Resource.ConnectionStringExpression.GetValueAsync(default)},allowAdmin=true" 106hb.AddRedisClient(valkey1.Resource.Name); 155[$"ConnectionStrings:{valkey2.Resource.Name}"] = await valkey2.Resource.ConnectionStringExpression.GetValueAsync(default) 158hb.AddRedisClient(valkey2.Resource.Name); 227await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running, cts.Token); 229await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting, cts.Token); 233await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Resource.Name, cts.Token); 235await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running, cts.Token);
Aspire.Hosting.Yarp (1)
ConfigurationBuilder\YarpCluster.cs (1)
63: this(externalService.Name, externalService)
Aspire.Hosting.Yarp.Tests (3)
YarpFunctionalTests.cs (3)
54await app.ResourceNotifications.WaitForResourceHealthyAsync(backend.Resource.Name, cts.Token); 55await app.ResourceNotifications.WaitForResourceHealthyAsync(yarp.Resource.Name, cts.Token); 57using var httpClient = app.CreateHttpClient(yarp.Resource.Name);
Aspire.Playground.Tests (3)
Infrastructure\DistributedApplicationExtensions.cs (3)
32builder.Configuration[$"Parameters:{parameter.Name}"] = parameter.Secret 218using (var checkHttpClient = app.CreateHttpClient(project.Name)) 246using var applyMigrationsHttpClient = app.CreateHttpClient(project.Name, useHttpClientFactory: false);
CustomResources.AppHost (2)
TestResource.cs (2)
52logger.LogInformation("Starting test resource {ResourceName} with update interval {Interval} seconds", resource.Name, seconds); 70logger.LogInformation("Test resource {ResourceName} is now in state {State}", resource.Name, randomState);
ExternalServices.AppHost (2)
AppHost.cs (2)
15Label = p.Name, 16Placeholder = $"Enter value for {p.Name}",
KafkaBasic.AppHost (2)
AppHost.cs (2)
11.WithArgs(kafka.Resource.Name); 15.WithArgs(kafka.Resource.Name);
Pipelines.Library (3)
DistributedApplicationPipelineExtensions.cs (3)
66var publishTask = await context.ReportingStep.CreateTaskAsync($"Publishing {projectResource.Name}", cancellationToken).ConfigureAwait(false); 122var uploadTask = await context.ReportingStep.CreateTaskAsync($"Uploading to {projectResource.Name}", cancellationToken).ConfigureAwait(false); 127var siteName = websiteResource.Outputs[$"{Infrastructure.NormalizeBicepIdentifier(websiteResource.Name)}_name"]?.ToString();
Stress.AppHost (2)
TestResource.cs (2)
166logger.LogInformation("Starting test resource {ResourceName} with update interval {Interval} seconds", resource.Name, seconds); 184logger.LogInformation("Test resource {ResourceName} is now in state {State}", resource.Name, randomState);
Terminals.AppHost (3)
TerminalInteractionCommands.cs (3)
88title: $"Shell into '{container.Resource.Name}'", 177Title = container.Resource.Name, 559: container.Name;
Testing.Tests (14)
WaitFailures.cs (14)
34await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, cancellationToken: cts.Token); 49await app.ResourceNotifications.WaitForResourceAsync(pwsh.Resource.Name, cancellationToken: cts.Token); 68await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, cancellationToken: cts.Token); 72await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.TerminalStates, cancellationToken: cts.Token); 87await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, "StateThatIsNeverUsed", cts.Token); 102await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, ["States", "That", "Are", "Never", "Used"], cts.Token); 117await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, x => false, cts.Token); 136await app.ResourceNotifications.WaitForResourceHealthyAsync(nginx.Resource.Name, cts.Token); 156await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, x => x.Snapshot.HealthReports.All(x => x.Status.HasValue), cts.Token); 159await app.ResourceNotifications.WaitForResourceHealthyAsync(nginx.Resource.Name, cts.Token); 176await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, x => x.Snapshot.HealthStatus == HealthStatus.Healthy, cts.Token); 180await app.ResourceNotifications.WaitForResourceHealthyAsync(nginx.Resource.Name, cts.Token); 228await app.ResourceNotifications.WaitForResourceAsync(dependency.Resource.Name, cancellationToken: cts.Token); 252await app.ResourceNotifications.WaitForResourceAsync(dependency.Resource.Name, cancellationToken: cts.Token);
TestProject.AppHost (1)
TestProgram.cs (1)
178root[project.Name] = projectJson;