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;
2372 references to Name
Aspire.Hosting (72)
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 (2)
125var originalImageName = Name.ToLowerInvariant(); 285return $@"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)
288containerExec.Annotate(CustomResource.OtelServiceNameAnnotation, containerExecutable.Name); 290containerExec.Annotate(CustomResource.ResourceNameAnnotation, containerExecutable.Name);
Dcp\ExecutableCreator.cs (1)
210throw new InvalidOperationException($"Project resource '{project.Name}' is missing required metadata.");
ExecutableResourceBuilderExtensions.cs (4)
134if (builder.ApplicationBuilder.TryCreateResourceBuilder<ExecutableContainerResource>(builder.Resource.Name, out var existingBuilder)) 157cb.WithImage(builder.Resource.Name); 226throw new InvalidOperationException($"The resource '{builder.Resource.Name}' is missing the ExecutableAnnotation"); 230private 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)
989if (builder.ApplicationBuilder.TryCreateResourceBuilder<ProjectContainerResource>(builder.Resource.Name, out var existingBuilder)) 1008cb.WithImage(builder.Resource.Name); 1231private sealed class ProjectContainerResource(ProjectResource pr) : ContainerResource(pr.Name)
Publishing\ManifestPublishingContext.cs (5)
179throw new DistributedApplicationException($"Project metadata was not found for resource '{project.Name}'."); 284Writer.WriteString("value", $"{{{parameter.Name}.inputs.value}}"); 329throw new DistributedApplicationException($"Could not get the container image name for resource '{container.Name}'."); 378var resourceDockerfilePath = Path.Combine(manifestDirectory, $"{container.Name}.Dockerfile"); 784resourceName = CreateFormattedParameterResourceName(parameter.Name, format);
ResourceBuilderExtensions.cs (9)
447throw new DistributedApplicationException($"The URL parameter '{externalService.Resource.UrlParameter.Name}' for source resource '{externalService.Resource.Name}' is invalid while configuring target resource '{builder.Resource.Name}': {message}"); 1320var encodedResourceName = EnvironmentVariableNameEncoder.Encode(externalService.Resource.Name); 1326var envVarName = $"services__{externalService.Resource.Name}__{uri.Scheme}__0"; 1336var encodedResourceName = EnvironmentVariableNameEncoder.Encode(externalService.Resource.Name); 1341discoveryEnvVarName = $"services__{externalService.Resource.Name}__default__0"; 1346discoveryEnvVarName = $"services__{externalService.Resource.Name}__{uri.Scheme}__0"; 1352throw new DistributedApplicationException($"The URL parameter '{externalService.Resource.UrlParameter.Name}' for source resource '{externalService.Resource.Name}' is invalid while configuring target resource '{builder.Resource.Name}': {message}");
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)
202logger.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 (18)
AzureContainerAppEnvironmentResource.cs (1)
332$"The container registry configured for the Azure Container App Environment '{Name}' is not an Azure Container Registry. " +
AzureContainerAppExtensions.cs (14)
101environments.Select(environment => environment.Name).ToHashSet(StringComparer.Ordinal)); 125.SingleOrDefault(step => step.Name == $"{PrepareContainerAppsStepNamePrefix}{environment.Name}"); 327newIdentity = new UserAssignedIdentity(Infrastructure.NormalizeBicepIdentifier($"{appEnvResource.Name}_mi")) 349throw new InvalidOperationException($"No container registry associated with environment '{appEnvResource.Name}'. This should have been added automatically."); 371laWorkspace = new OperationalInsightsWorkspace(Infrastructure.NormalizeBicepIdentifier($"{appEnvResource.Name}_law")) 431storageVolume = new StorageAccount(Infrastructure.NormalizeBicepIdentifier($"{appEnvResource.Name}_storageVolume")) 560appEnvResource.Name, 580var sanitizedPrefix = new string(appEnvResource.Name.ToLowerInvariant() 697appEnvResource.Name, 765$"The Azure Container App Environment '{appEnvResource.Name}' is marked as existing but one or more " + 774$"The Azure Container App Environment '{appEnvResource.Name}' is marked as existing but is also " + 783$"The Azure Container App Environment '{appEnvResource.Name}' is marked as existing but is also " + 816newIdentity = new UserAssignedIdentity(Infrastructure.NormalizeBicepIdentifier($"{appEnvResource.Name}_mi")) 837throw 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)
494$"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)
633siteObj.SiteConfig.AppSettings.Add(new AppServiceNameValuePair { Name = "ASPIRE_ENVIRONMENT_NAME", Value = environmentContext.Environment.Name }); 637slot.SiteConfig.AppSettings.Add(new AppServiceNameValuePair { Name = "ASPIRE_ENVIRONMENT_NAME", Value = environmentContext.Environment.Name }); 904? Infrastructure.NormalizeBicepIdentifier($"{Infra.AspireResource.Name}_slot_ra") 905: 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"; 555var kv = builder.ApplicationBuilder.AddAzureKeyVault($"{builder.Resource.Name}-kv") 602azureResource.ConnectionStringSecretOutput = keyVaultBuilder.Resource.GetSecret($"connectionstrings--{azureResource.Name}"); 603azureResource.PrimaryAccessKeySecretOutput = keyVaultBuilder.Resource.GetSecret($"primaryaccesskey--{azureResource.Name}"); 657Tags = { { "aspire-resource-name", infrastructure.AspireResource.Name } } 671var cosmosSqlDatabase = new CosmosDBSqlDatabase(Infrastructure.NormalizeBicepIdentifier(database.Name)) 684var cosmosContainer = new CosmosDBSqlContainer(Infrastructure.NormalizeBicepIdentifier(container.Name)) 719Name = $"connectionstrings--{azureResource.Name}", 730Name = $"primaryaccesskey--{azureResource.Name}", 740var dbSecret = new KeyVaultSecret(Infrastructure.NormalizeBicepIdentifier(database.Name + "_connectionString")) 743Name = AzureCosmosDBResource.GetKeyValueSecretName(database.Name), 753var containerSecret = new KeyVaultSecret(Infrastructure.NormalizeBicepIdentifier(container.Name + "_connectionString")) 756Name = 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)
69Description = $"Deploys compute resource '{resource.TargetResource.Name}' to ACA sandbox '{resource.Name}'.", 79Description = $"Deletes ACA sandbox deployment '{resource.Name}'.", 170$"Azure sandbox resource '{resource.TargetResource.Name}' in sandbox group '{resource.Parent.Name}' references resource '{dependency.Name}' in sandbox group '{producer.Parent.Name}', but cross-group sandbox references are not supported. Deploy both resources to the same sandbox group."); 194var expectedName = $"destroy-azure-{environment.Name}"; 266resource.Name); 273resource.Name); 310resource.Name, 337resource.Name, 345var lifecycleTask = await context.ReportingStep.CreateTaskAsync($"Configuring lifecycle for {resource.Name}", context.CancellationToken).ConfigureAwait(false); 405stateSection.Data["ResourceName"] = resource.Name; 439resource.Name, 465resource.Name, 487resource.Name); 491$"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.", 543resource.Name, 572["aspire-resource"] = resource.Name, 988throw new NotSupportedException($"Resource '{resource.TargetResource.Name}' cannot be deployed to Azure sandbox group '{resource.Parent.Name}' because it does not produce or reference a container image."); 1340var stableOwnerId = CreateStableOwnerId(appHostIdentity, environmentName, fallbackScope, resource.Name); 1346resource.Name, 1364var legacyOwnerId = CreateLegacyStableOwnerId(appHostIdentity, scope, resource.Name); 1370await DeleteRemoteDeploymentsByResourceLabelAsync(context, client, scope, ownerId, resource.Name, s_noExcludedIds, s_noExcludedIds, s_noExcludedIds, throwOnError: true).ConfigureAwait(false); 1383await DeleteRemoteDeploymentsByResourceLabelAsync(context, client, scope, pendingOwnerCleanupId, resource.Name, s_noExcludedIds, s_noExcludedIds, s_noExcludedIds, throwOnError: true).ConfigureAwait(false); 1385var stableOwnerIdForScope = CreateStableOwnerId(appHostIdentity, environmentName, scope, resource.Name); 1388await DeleteRemoteDeploymentsByResourceLabelAsync(context, client, scope, stableOwnerIdForScope, resource.Name, s_noExcludedIds, s_noExcludedIds, s_noExcludedIds, throwOnError: true).ConfigureAwait(false); 2102stateSection.Data["ResourceName"] ??= resource.Name; 2317throw new InvalidOperationException($"Azure resource '{resource.Name}' is missing required output '{name}'. Ensure Azure infrastructure provisioning completed successfully."); 2333$"Azure sandbox group '{sandboxGroup.Name}' returned an invalid resource ID '{resourceId}'."); 2364internal static string GetStateSectionName(AzureSandboxContainerResource resource) => $"{SandboxStateSectionPrefix}{resource.Name}"; 2368internal static string GetDeployStepName(AzureSandboxContainerResource resource) => $"deploy-{resource.Name}"; 2370private static string GetDestroyStepName(AzureSandboxContainerResource resource) => $"destroy-{resource.Name}";
AzureSandboxEndpointPropertyValueProvider.cs (1)
46$"{{{_resource.Name}.endpoints.{_endpointReferenceExpression.Endpoint.EndpointName}.{_endpointReferenceExpression.Property.ToString().ToLowerInvariant()}}}";
AzureSandboxesExtensions.cs (4)
72Infrastructure.NormalizeBicepIdentifier($"{sandboxResource.Name}_mi")); 90Tags = { { "aspire-resource-name", infrastructure.AspireResource.Name } } 99throw new InvalidOperationException($"No container registry associated with Azure sandbox group '{sandboxResource.Name}'. This should have been added automatically."); 331$"Existing Azure sandbox group '{sandboxGroup.Name}' requires a user-assigned ACR pull identity. " +
AzureSandboxGroupResource.cs (14)
48Name = $"prepare-azure-sandboxes-{Name}", 49Description = $"Prepares Azure sandbox deployment targets for {Name}.", 56Name = $"print-azure-sandboxes-dashboard-{Name}", 57Description = $"Adds the Azure sandbox dashboard for {Name} to the deployment summary.", 153$"The container registry configured for the Azure sandbox group '{Name}' is not an Azure Container Registry. " + 175context.Summary.Add($"{Name} sandbox dashboard", new MarkdownString($"[{dashboardUrl}]({dashboardUrl})")); 198throw new InvalidOperationException($"No container registry associated with Azure sandbox group '{Name}'. This should have been added automatically."); 206$"Azure sandbox group '{Name}' uses identity '{imagePullIdentity.Name}' for both image pulls and workloads. " + 242$"Compute resource '{resource.Name}' uses managed identity '{userAssignedIdentity.Name}', but workload identities are not supported when publishing to existing Azure sandbox group '{Name}'."); 248$"Azure sandbox group '{Name}' uses identity '{userAssignedIdentity.Name}' for both image pulls and workload '{resource.Name}'. " + 310throw 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)
384var identityName = $"{proj.Name}-identity"; 385var projIdentity = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == identityName); 461var identityName = $"{proj.Name}-identity"; 462var projIdentity = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == identityName); 1096var projIdentity = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "api-identity"); 1097var projRolesStorage = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "api-roles-storage"); 1140var projIdentity = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "api-identity"); 1141var projRolesStorage = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "api-roles-cosmos"); 1181var projIdentity = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "api-identity"); 1182var projRolesStorage = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "api-roles-redis"); 1959var env1Resource = Assert.Single(envResources, r => r.Name == "cae1"); 1960var env2Resource = Assert.Single(envResources, r => r.Name == "cae2"); 2010var env1Resource = Assert.Single(envResources, r => r.Name == "cae1"); 2011var env2Resource = Assert.Single(envResources, r => r.Name == "cae2"); 2321var env1Resource = Assert.Single(envResources, r => r.Name == "cae1"); 2322var env2Resource = Assert.Single(envResources, r => r.Name == "cae2"); 2836Assert.Contains("acr", defaultAcr.Name); 2858Assert.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)
811Name = 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); 4915Assert.Equal("azure-environment2", resource.Name); 5476_configuredResources.Add(resource.Name); 5487_provisionedResources.Add(resource.Name); 5488_provisionedLocations[resource.Name] = resource.Parameters.TryGetValue(AzureBicepResource.KnownParameters.Location, out var location) 5612_provisionedResources.Add(resource.Name); 5622resource.Outputs["blobEndpoint"] = $"https://{resource.Name}.blob.core.windows.net/"; 5698var section = await deploymentStateManager.AcquireSectionAsync($"Azure:Deployments:{resource.Name}", cancellationToken).ConfigureAwait(false); 5776if (string.Equals(resource.Name, childResourceName, StringComparison.Ordinal)) 5785if (string.Equals(resource.Name, parentResourceName, StringComparison.Ordinal) && 5798_provisionedResources.Add(resource.Name); 5801resource.Outputs["id"] = $"/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/test-rg/providers/Microsoft.Test/resources/{resource.Name}"; 5802resource.Outputs["name"] = resource.Name; 5803resource.Outputs["vaultUri"] = $"https://{resource.Name}.vault.azure.net/"; 5804resource.Outputs["connectionString"] = $"Host={resource.Name}.postgres.database.azure.com"; 5805resource.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)
419resource => resource.Name == "sandboxes-mi"); 422resource => resource.Name == "sandboxes-mi-roles-registry"); 2466Name = $"destroy-azure-{azureEnvironment.Name}", 2600var project = Assert.Single(model.GetProjectResources(), resource => resource.Name == "frontend"); 2643resource => resource.Name == "frontend"); 2669resource => resource.Name == "frontend"); 2706resource => 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); 756Assert.Equal("sb", serviceBus.Resource.Name); 775var sbRoles = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "sb-roles"); 848await app.ResourceNotifications.WaitForResourceAsync(serviceBus.Resource.Name, KnownResourceStates.Running, cts.Token); 849await 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); 355.WaitForResourceAsync(deployment.Resource.Name, KnownResourceStates.Running, cancellation.Token) 668var 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 (16)
BlazorGatewayExtensions.cs (9)
233var pathPrefix = wasmApp.Resource.Name; 461var envPrefix = $"ClientApps__{reg.Resource.Name}"; 480BlazorGatewayLog.FailedToBuild(logger, reg.Resource.Name); 487BlazorGatewayLog.FailedToResolveManifests(logger, reg.Resource.Name); 493reg.Resource.Name, paths.Value.endpointsManifest, paths.Value.runtimeManifest); 515var destEndpoints = Path.Combine(outputDir, $"{reg.Resource.Name}.endpoints.json"); 518BlazorGatewayLog.WrotePrefixedEndpoints(context.Logger, reg.Resource.Name, destEndpoints); 520var envPrefix = $"ClientApps__{reg.Resource.Name}"; 535var publishResourceName = $"{wasmApp.Resource.Name}publish";
BlazorHostedExtensions.cs (3)
105var debuggerName = $"{host.Resource.Name}-wasm-debugger"; 139?? throw new InvalidOperationException($"The host '{host.Resource.Name}' must define an HTTP or HTTPS endpoint."); 156$"{host.Resource.Name} (client)",
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)
173Assert.Equal("blazorapp-wasm-debugger", debuggerResource.Name); 252ResourceName = 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)
332new MarkdownString($"Successfully deployed **{TargetResource.Name}** to Docker Compose environment **{environment.Name}**. No public endpoints were configured.")); 356new MarkdownString($"Successfully deployed **{TargetResource.Name}** to Docker Compose environment **{environment.Name}**."));
Aspire.Hosting.Docker.Tests (1)
DockerComposePublisherTests.cs (1)
305context.EnvironmentVariables[param.Name] = param;
Aspire.Hosting.Dotnet (9)
DotnetProjectBuildCoordinator.cs (7)
183buildResource.Name, 192$"The coordinated .NET build failed with exit code {exitCode}. See resource '{buildResource.Name}' for build output."); 277$"The coordinated build plan for .NET project resource '{resource.Name}' has not been materialized."); 574conflictingDuplicate.Select(entry => $"'{entry.Registration.Resource.Name}'")); 722$"The build environment of .NET project resource '{snapshot.Entry.Registration.Resource.Name}' " + 741candidate.Name == $"{resource.Name}-rebuilder" && 1106$"The build environment variable '{name}' for .NET project resource '{Resource.Name}' " +
DotnetProjectResource.cs (2)
66Task.FromException(new DistributedApplicationException(GetUnsupportedPublishMessage(Name)))); 91GetUnsupportedPublishMessage(unsupportedResources.Select(resource => resource.Name).ToArray())),
Aspire.Hosting.Dotnet.Tests (3)
DotnetProjectBuildCoordinatorTests.cs (3)
1671@event.Model.Resources[index] = new ExecutableResource(replaced.Resource.Name, "dotnet", workspace.Path); 2067resource => resource.Name == "first") 2071resource => resource.Name == "second")
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 (28)
EFCoreOperationExecutor.cs (2)
319_toolResource.Name, 346_toolResource.Name,
EFMigrationResourceBuilderExtensions.cs (5)
69migrationResource.Name, 79logger.LogError(ex, "EF Core database update on startup failed for resource '{ResourceName}'.", migrationResource.Name); 319builder.WithImage(migrationResource.Name); 380$"Cannot publish migration bundle '{migrationResource.Name}' as a container: add " + 398$"Cannot publish migration bundle '{migrationResource.Name}' as a container: multiple " +
EFResourceBuilderExtensions.cs (21)
158$"The DbContext type '{GetShortTypeName(dbContextTypeName)}' has already been registered for EF migrations on resource '{builder.Resource.Name}'."); 164$"Cannot register a specific DbContext type for migrations when they have already been registered without a context type on resource '{builder.Resource.Name}'."); 172$"Cannot register migrations without a context type when they have already been registered without a context type on resource '{builder.Resource.Name}'."); 176$"Cannot register migrations without a context type when they have already been registered for specific DbContext types on resource '{builder.Resource.Name}'."); 213? $"{migrationResource.Name}-generate-migration-script" 217? $"{migrationResource.Name}-generate-migration-bundle" 245Description = $"Generate EF Core migration SQL script for {migrationResource.Name}", 254? Path.Combine(outputDir, migrationResource.Name + ".sql") 270? [WellKnownPipelineSteps.Publish, $"build-{migrationResource.Name}"] 289Description = $"Generate EF Core migration bundle for {migrationResource.Name}", 329if (StringComparer.Ordinal.Compare(sibling.Name, current.Name) >= 0) 334if (predecessor is null || StringComparer.Ordinal.Compare(sibling.Name, predecessor.Name) > 0) 348? $"{predecessor.Name}-generate-migration-bundle" 349: $"{predecessor.Name}-generate-migration-script"; 375logger.LogInformation("Generating {Operation} for '{ResourceName}'...", operationName, migrationResource.Name); 387logger.LogInformation("{Operation} generated successfully for '{ResourceName}'.", operationName, migrationResource.Name); 391throw new InvalidOperationException($"Failed to generate {operationName} for '{migrationResource.Name}': {result.ErrorMessage}"); 405return migrationResource.Name + (isWindowsBundle ? ".exe" : string.Empty); 640var toolName = $"ef-tool-{migrationResource.Name}";
Aspire.Hosting.EntityFrameworkCore.Tests (11)
AddEFMigrationsTests.cs (7)
23Assert.Equal("mymigrations", migrations.Resource.Name); 37Assert.Equal("mymigrations", migrations.Resource.Name); 51Assert.Equal("mymigrations", migrations.Resource.Name); 66Assert.Equal("mymigrations", migrations.Resource.Name); 83Assert.Equal("mymigrations", migrationResource.Name); 252var toolResource = Assert.Single(appModel.Resources.OfType<DotnetToolResource>(), r => r.Name == "ef-tool-mymigrations"); 272ReferenceExpression.Create($"Host=localhost;Database={Name}");
EFMigrationPipelineTests.cs (3)
725Assert.Contains($"build-{migrations.Resource.Name}", generateStep.RequiredBySteps); 803ReferenceExpression.Create($"Host=localhost;Database={Name}"); 817ReferenceExpression.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)
50Name = $"deploy-{Name}", 54ctx.ReportingStep.Log(LogLevel.Information, new MarkdownString($"Successfully deployed **{Name}** as Hosted Agent (version {version})")); 109throw new InvalidOperationException($"Container image for hosted agent '{Name}' could not be resolved."); 163throw new InvalidOperationException($"Project '{project.Name}' does not have a valid connection string."); 170Name, 200Name, 244context.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); 251context.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); 277context.Logger.LogInformation("Assigned Foundry User role to hosted agent '{Name}' identity '{PrincipalId}'.", Name, principalId); 284Name, 499$"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 (15)
AddFoundryTests.cs (1)
20Assert.Equal(name, resourceBuilder.Resource.Name);
AddProjectTests.cs (1)
22Assert.Equal(name, resourceBuilder.Resource.Name);
HostedAgentExtensionTests.cs (3)
263Assert.Equal("agent-ha", hostedAgent.Name); 791var account = Assert.Single(builder.Resources.OfType<FoundryResource>(), r => r.Name == "account"); 792var 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); 754Assert.Equal(firstDefinition.Connection.Name, secondDefinition.Connection.Name); 805var 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.GitHub.Models (1)
GitHubModelsExtensions.cs (1)
204var healthCheckKey = $"{builder.Resource.Name}_check";
Aspire.Hosting.GitHub.Models.Tests (10)
GitHubModelsExtensionTests.cs (6)
20Assert.Equal("github", github.Resource.Name); 33Assert.Equal("mymodel-gh-apikey", github.Resource.Key.Name); 92Assert.Equal("github-gh-apikey", github.Resource.Key.Name); 119Assert.Equal("github-org", github.Resource.Organization.Name); 190Assert.Equal("test", resource.Name); 206Assert.Equal("test", resource.Name);
GitHubModelsFunctionalTests.cs (4)
41await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running, cts.Token); 43await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting, cts.Token); 47await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Resource.Name, cts.Token); 49await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running, cts.Token);
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)
49throw new DistributedApplicationException($"ConnectionStringAvailableEvent was published for the '{kafka.Name}' resource but the connection string was null."); 227? 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)
653var formattedName = conditionParam.Name.ToHelmValuesSectionName(); 728if (!mappings.TryGetValue(parameter.Name, out var existing)) 730mappings.Add(parameter.Name, helmValue); 740var valuesKey = helmValue.ValuesKey ?? parameter.Name.ToHelmValuesSectionName(); 742$"Resource '{TargetResource.Name}' maps multiple distinct {sourceKind} sources named '{parameter.Name}' " + 803var 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)
146containerName ??= $"{builder.Resource.Name}-attu"; 236context.EnvironmentVariables["MILVUS_URL"] = $"{resource.PrimaryEndpoint.Scheme}://{resource.Name}:{resource.PrimaryEndpoint.TargetPort}";
Aspire.Hosting.Milvus.Tests (10)
AddMilvusTests.cs (1)
191Assert.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 (45)
MongoDBBuilderExtensions.cs (7)
101?? throw new DistributedApplicationException($"ConnectionStringAvailableEvent was published for the '{resource.Name}' resource but the connection string was null."); 199throw new DistributedApplicationException($"ConnectionStringAvailableEvent was published for the '{mongoDBDatabase.Name}' resource but the connection string was null."); 236containerName ??= $"{builder.Resource.Name}-mongoexpress"; 395: 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}'."); 451: 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."); 576context.EnvironmentVariables["ME_CONFIG_MONGODB_SERVER"] = resource.Name; 588context.EnvironmentVariables["ME_CONFIG_MONGODB_URL"] = $"mongodb://{resource.Name}:{port}";
ReplicaSet\MongoDBReplicaSetBuilderExtensions.cs (35)
123logger.LogCritical("Cannot initialize MongoDB replica set resource '{ResourceName}' because it does not have any members.", resource.Name); 152throw 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."); 158?? throw new DistributedApplicationException($"The connection string of MongoDB replica set member '{member.Name}' could not be resolved.") 165Internal: $"{m.Name}:{m.PrimaryEndpoint.TargetPort!.Value}", 170.ConfigureAwait(false) ?? throw new DistributedApplicationException($"The endpoint of MongoDB replica set member '{m.Name}' could not be resolved.") 189logger.LogInformation("Retrieving MongoDB replica set information ({ResourceName}) from member '{MemberName}'", resource.Name, memberConnection.Resource.Name); 218logger.LogInformation("MongoDB replica set member '{MemberName}' is not accepting connections yet", memberConnection.Resource.Name); 247throw 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."); 257logger.LogInformation("MongoDB replica set resource '{ResourceName}' is already configured as declared — leaving it as it is", resource.Name); 262logger.LogInformation("Re-configuring MongoDB replica set resource '{ResourceName}' from member '{MemberName}' — last version {Version}", resource.Name, existing.Connection.Resource.Name, existing.Version); 268["_id"] = rsResource.Name, 305logger.LogInformation("Initializing MongoDB replica set resource '{ResourceName}'", resource.Name); 315["_id"] = rsResource.Name, 326["_id"] = rsResource.Name, 343logger.LogInformation("MongoDB replica set member '{MemberName}' stopped accepting connections before initialization completed", initialPrimary.Resource.Name); 362$"Failed to configure MongoDB replica set resource '{resource.Name}' after {MaxRetriesAttempt} attempts.{(lastConfigurationError is null ? "" : $" The last error reported by MongoDB was: {lastConfigurationError.Message}")}", 374logger.LogCritical(ex, "Failed to initialize MongoDB replica set resource '{ResourceName}'", resource.Name); 413throw new InvalidOperationException($"The MongoDB replica set '{builder.Resource.Name}' already has the maximum of {MaxMembers} members that MongoDB allows a replica set to hold."); 422string.Equals(existingReplicaSetName, builder.Resource.Name, StringComparisons.ResourceName) 423? $"The MongoDB server resource '{member.Resource.Name}' has already been added as a member of the replica set '{builder.Resource.Name}'." 424: $"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}'."); 434$"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."); 448$"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."); 454$"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."); 457member.WithReplicaSet(builder.Resource.Name); 497builder.Resource.StoppedMembers.Add(stopped.Name); 515builder.Resource.StoppedMembers.Remove(starting.Name); 537&& !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 (35)
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); 322var stoppedResourceEvent = new ResourceEvent(mongo1.Resource, mongo1.Resource.Name, stoppedSnapshot); 343Assert.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);
Aspire.Hosting.MySql (6)
MySqlBuilderExtensions.cs (5)
53throw new DistributedApplicationException($"ConnectionStringAvailableEvent was published for the '{resource.Name}' resource but the connection string was null."); 61throw new DistributedApplicationException($"ResourceReadyEvent was published for the '{resource.Name}' resource but the connection string was null."); 69throw new InvalidOperationException($"Could not open connection to '{resource.Name}'"); 296var configStoreFilename = aspireStore.GetFileNameWithContent($"{builder.Resource.Name}-config.user.inc.php", tempConfigFile); 430writer.WriteLine($"$cfg['Servers'][$i]['verbose'] = '{mySqlInstance.Name}';");
MySqlServerResource.cs (1)
117_databases.TryAdd(database.Name, database.DatabaseName);
Aspire.Hosting.MySql.Tests (35)
AddMySqlTests.cs (5)
47Assert.Equal("mysql", containerResource.Name); 229Assert.Single(builder.Resources.OfType<ContainerResource>(), resource => resource.Name == "phpmyadmin"); 251Assert.Equal($"{mysql.Resource.Name}:{mysql.Resource.PrimaryEndpoint.TargetPort}", config["PMA_HOST"]); 283string pattern1 = $@"\$cfg\['Servers'\]\[\$i\]\['host'\] = '{mysql1.Resource.Name}:{mysql1.Resource.PrimaryEndpoint.TargetPort}';"; 284string 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);
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 (8)
PostgresBuilderExtensions.cs (8)
69throw new DistributedApplicationException($"ConnectionStringAvailableEvent was published for the '{postgresServer.Name}' resource but the connection string was null."); 77throw new DistributedApplicationException($"ResourceReadyEvent was published for the '{postgresServer.Name}' resource but the connection string was null."); 87throw new InvalidOperationException($"Could not open connection to '{postgresServer.Name}'"); 158builder.Resource.AddDatabase(postgresDatabase.Name, postgresDatabase.DatabaseName); 383containerName ??= $"{builder.Resource.Name}-mcp"; 624host = "{postgresDatabase.Parent.Name}" 634Name = $"{postgresDatabase.Name}.toml", 661writer.WriteString("Name", postgresInstance.Name);
Aspire.Hosting.PostgreSQL.Tests (41)
AddPostgresTests.cs (3)
513Assert.Equal(pg1.Resource.Name, servers.GetProperty("1").GetProperty("Name").GetString()); 525Assert.Equal(pg2.Resource.Name, servers.GetProperty("2").GetProperty("Name").GetString()); 658host = "{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);
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)
57?? 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)
329Assert.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."); 233throw 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."); 287var 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 (88)
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)
90Name = $"deploy-radius-{_environment.Name}", 91Description = $"Deploy Radius environment '{_environment.Name}' via rad CLI", 94step.DependsOn($"publish-radius-{_environment.Name}"); 113logger.LogInformation("rad CLI detected on PATH for environment '{EnvironmentName}'", _environment.Name); 133$"Deploying Radius environment '{_environment.Name}' via rad deploy...", 201logger.LogWarning("Cancellation requested — terminating rad deploy process for environment '{EnvironmentName}'", _environment.Name); 217logger.LogInformation("rad deploy exited with code {ExitCode} for environment '{EnvironmentName}'", exitCode, _environment.Name); 226logger.LogError("rad deploy failed for environment '{EnvironmentName}': {ErrorMessage}", _environment.Name, errorMessage); 233$"Radius deployment complete for '{_environment.Name}'", 238logger.LogError(ex, "Unexpected error during rad deploy for environment '{EnvironmentName}'", _environment.Name); 309parameters.Count, _environment.Name);
Publishing\RadiusInfrastructureBuilder.cs (25)
122var envIdentifier = BicepPostProcessor.SanitizeIdentifier(_environment.Name); 587if (!storeConstructs.TryGetValue(store.Name, out var construct)) 734construct.EnvironmentName = _environment.Name; 901construct.EnvironmentName = _environment.Name; 1318if (_envParametersByName.TryGetValue(parameter.Name, out var existing)) 1323var identifier = Infrastructure.NormalizeBicepIdentifier(parameter.Name); 1333if (_recipeParameters.TryGetValue(parameter.Name, out var recipeParameter)) 1343_envParametersByName[parameter.Name] = provisioningParameter; 1828if (!_recipeParameters.TryGetValue(parameter.Name, out var provisioningParameter)) 1830var identifier = BicepPostProcessor.SanitizeIdentifier(parameter.Name); 1839$"Recipe parameters bound to Aspire parameters '{existingName}' and '{parameter.Name}' both " + 1848_recipeParameters[parameter.Name] = provisioningParameter; 1849_recipeParameterIdentifiers[identifier] = parameter.Name; 1884new($"A recipe parameter on Radius environment '{_environment.Name}' references {cloud} provider " + 1910resourceType, _environment.Name); 1946var identifier = BicepPostProcessor.SanitizeIdentifier(store.Name); 1949StoreName = store.Name, 1967storeConstructs[store.Name] = construct; 2017$"Unknown secret-store consumer kind '{consumer.Kind}' for store '{consumer.Store.Name}'."); 2060if (storeConstructs.TryGetValue(store.Name, out var construct)) 2070$"Environment '{_environment.Name}' references secret store '{store.Name}', but that store is not " + 2148if (!options.SealedSecretManifests.TryGetValue(store.Name, out var manifest)) 2150manifest = SealedSecretManifest.ReadValidated(store.Name, manifestPath, defaultNamespace); 2151options.SealedSecretManifests[store.Name] = manifest;
Publishing\SealedSecretApplyStep.cs (11)
47Name = $"apply-sealed-secrets-{_environment.Name}", 48Description = $"Apply and await sealed secrets for '{_environment.Name}' before rad deploy", 51step.DependsOn($"publish-radius-{_environment.Name}"); 53step.RequiredBy($"deploy-radius-{_environment.Name}"); 104var manifestPath = ResolveManifestPath(storeOutputDir, store.Name, sourceManifestPath); 110var validated = SealedSecretManifest.ReadValidated(store.Name, manifestPath, defaultNamespace); 129ct => ApplyManifestAsync(validated.Content, applyNamespace, kubeContext, store.Name, metadata.Namespace, metadata.Name, manifestPath, logger, ct), 132() => CreateOperationTimeoutException(store.Name, metadata.Namespace, metadata.Name, "apply", store.MaterializationTimeout)) 136store.Name, metadata.Namespace, metadata.Name, appliedGeneration, deadline, store.MaterializationTimeout, s_pollInterval, 151() => CreateOperationTimeoutException(store.Name, metadata.Namespace, metadata.Name, "verify", store.MaterializationTimeout)) 158$"'{store.Name}' is missing the declared key(s) {string.Join(", ", missing.Select(k => $"'{k}'"))}. " +
RadiusEnvironmentResource.cs (4)
48Name = $"prepare-deployment-targets-{Name}", 49Description = $"Prepares Radius deployment targets for {Name}.", 64Name = $"validate-radius-secret-stores-{Name}", 65Description = $"Validates Radius secret stores 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 (10)
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\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)
21Assert.Equal("radius", resourceBuilder.Resource.Name); 32Assert.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 (6)
RedisBuilderExtensions.cs (6)
88throw new DistributedApplicationException($"ConnectionStringAvailableEvent was published for the '{redis.Name}' resource but the connection string was null."); 182logger.LogError($"Cannot configure an encrypted certificate for redis resource '{redis.Name}'"); 276var hostString = $"{(hostsVariableBuilder.Length > 0 ? "," : string.Empty)}{redisInstance.Name}:{redisInstance.Name}:{endpoint.TargetPort}:0"; 345context.EnvironmentVariables[$"RI_REDIS_ALIAS{counter}"] = redisInstance.Name; 384logger.LogError($"Cannot configure an encrypted certificate for redis insight resource '{resource.Name}'");
Aspire.Hosting.Redis.Tests (57)
AddRedisTests.cs (13)
42Assert.Equal("myRedis", containerResource.Name); 70Assert.Equal("myRedis", containerResource.Name); 309Assert.Equal(insight.Name, managementUrl.Endpoint?.Resource.Name); 334Assert.Equal(commander.Name, managementUrl.Endpoint?.Resource.Name); 373Assert.Equal($"{redis1.Resource.Name}.dev.internal", item.Value); 383Assert.Equal(redis1.Resource.Name, item.Value); 395Assert.Equal($"{redis2.Resource.Name}.dev.internal", item.Value); 405Assert.Equal(redis2.Resource.Name, item.Value); 417Assert.Equal($"{redis3.Resource.Name}.dev.internal", item.Value); 427Assert.Equal(redis3.Resource.Name, item.Value); 569Assert.Equal($"myredis1:{redis.Resource.Name}:6379:0:{redis.Resource.PasswordParameter?.Value}", config["REDIS_HOSTS"]); 591Assert.Equal($"myredis1:{redis.Resource.Name}:6379:0:{password}", config["REDIS_HOSTS"]); 616Assert.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);
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 (4)
SqlServerBuilderExtensions.cs (3)
70throw new DistributedApplicationException($"ConnectionStringAvailableEvent was published for the '{sqlServer.Name}' resource but the connection string was null."); 77throw new DistributedApplicationException($"ResourceReadyEvent was published for the '{sqlServer.Name}' resource but the connection string was null."); 85throw new InvalidOperationException($"Could not open connection to '{sqlServer.Name}'");
SqlServerServerResource.cs (1)
146_databases.TryAdd(database.Name, database.DatabaseName);
Aspire.Hosting.SqlServer.Tests (28)
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);
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 (314)
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 (6)
37using var clientA = app.CreateHttpClient(yarp.Resource.Name, "http"); 76using var clientA = app.CreateHttpClient(yarp.Resource.Name, "http"); 114await app.ResourceNotifications.WaitForResourceAsync(c.Resource.Name, KnownResourceStates.Running) 146foreach (var resourceName in new[] { upstreamService.Resource.Name, tunnelDependentContainer.Resource.Name, downstreamService.Resource.Name })
Dashboard\DashboardResourceTests.cs (4)
58Assert.Equal("aspire-dashboard", dashboard.Name); 347Assert.Equal("aspire-dashboard", dashboard.Name); 731Assert.Equal("aspire-dashboard", dashboard.Name); 788Assert.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 (4)
211await dashboardServiceData.WaitForResourceAsync(testResource.Name, r => 319ResourceName = testResource.Name, 378ResourceName = testResource.Name, 441ResourceName = testResource.Name,
Dcp\DcpExecutorTests.cs (22)
581var executables = GetCreatedExecutablesForResource(kubernetesService, resource.Name); 600executables = GetCreatedExecutablesForResource(kubernetesService, resource.Name); 1185Assert.Single(kubernetesService.CreatedResources.OfType<Container>(), c => c.AppModelResourceName == emulator.Resource.Name); 4751var executable = GetCreatedExecutableForResource(kubernetesService, resource.Name); 8993.Where(c => c.AppModelResourceName == container.Resource.Name) 9010await AssertEndpoint(container.Resource, "proxied", KnownNetworkIdentifiers.DefaultAspireContainerNetwork, $"{container.Resource.Name}.dev.internal", 11234); 9011await AssertEndpoint(container.Resource, "notProxied", KnownNetworkIdentifiers.DefaultAspireContainerNetwork, $"{container.Resource.Name}.dev.internal", 18765); 9016await AssertEndpoint(containerWithAlias.Resource, "proxied", KnownNetworkIdentifiers.DefaultAspireContainerNetwork, $"{containerWithAlias.Resource.Name}.dev.internal", 21234); 9017await AssertEndpoint(containerWithAlias.Resource, "notProxied", KnownNetworkIdentifiers.DefaultAspireContainerNetwork, $"{containerWithAlias.Resource.Name}.dev.internal", 28765); 9101s => s.AppModelResourceName == executable.Resource.Name 9526while (!kubernetesService.CreatedResources.OfType<Container>().Any(c => c.AppModelResourceName == container.Resource.Name)) 9542Assert.Single(createdContainers, c => c.AppModelResourceName == container.Resource.Name); 9543Assert.Single(createdContainers, c => c.AppModelResourceName == waiting.Resource.Name); 9544var waitingConsumingContainer = Assert.Single(createdContainers, c => c.AppModelResourceName == waitingConsumingEndpoint.Resource.Name); 9551Assert.Single(tunnelServices, s => s.AppModelResourceName == executableA.Resource.Name); 9552var executableBTunnelService = Assert.Single(tunnelServices, s => s.AppModelResourceName == executableB.Resource.Name); 9587while (!kubernetesService.CreatedResources.OfType<Executable>().Any(e => e.AppModelResourceName == upstreamExecutable.Resource.Name)) 9595while (!kubernetesService.CreatedResources.OfType<Container>().Any(c => c.AppModelResourceName == tunnelDependentContainer.Resource.Name)) 9611var upstreamExecutableResource = Assert.Single(createdResources.OfType<Executable>(), e => e.AppModelResourceName == upstreamExecutable.Resource.Name); 9612var downstreamExecutableResource = Assert.Single(createdResources.OfType<Executable>(), e => e.AppModelResourceName == downstreamExecutable.Resource.Name); 9613var tunnelDependentDcpContainer = Assert.Single(createdResources.OfType<Container>(), c => c.AppModelResourceName == tunnelDependentContainer.Resource.Name); 9624var 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"); 1779await app.WaitForTextAsync("Content root path:", resourceName: testProgram.ServiceABuilder.Resource.Name).DefaultTimeout(TestConstants.LongTimeoutDuration); 1782var httpEndPoint = app.GetEndpoint(testProgram.ServiceABuilder.Resource.Name, endpointName: "http"); 1800var httpsEndpoint = app.GetEndpoint(testProgram.ServiceABuilder.Resource.Name, endpointName: "https"); 1850using var clientA = app.CreateHttpClient(servicea.Resource.Name, "http"); 1924using var clientA = app.CreateHttpClient(servicea.Resource.Name, "http"); 2053await app.ResourceNotifications.WaitForResourceAsync(container.Resource.Name, KnownResourceStates.NotStarted, token) 2055await app.ResourceNotifications.WaitForResourceAsync(executable.Resource.Name, KnownResourceStates.NotStarted, token) 2061var dcpContainer = Assert.Single(containers, c => c.AppModelResourceName == container.Resource.Name); 2070var dcpExecutable = Assert.Single(executables, e => e.AppModelResourceName == executable.Resource.Name); 2354var 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 (33)
471Assert.True(resourceNotificationService.TryGetCurrentState(resource.Resource.Name, out var currentState)); 599await resourceNotificationService.WaitForResourceAsync(waiter.Resource.Name, KnownResourceStates.Waiting, TestContext.Current.CancellationToken).DefaultTimeout(); 602Assert.True(resourceNotificationService.TryGetCurrentState(waiter.Resource.Name, out var waitingEvent)); 607await resourceNotificationService.WaitForResourceAsync(blocker.Resource.Name, KnownResourceStates.Running, TestContext.Current.CancellationToken).DefaultTimeout(); 608await resourceNotificationService.WaitForResourceAsync(waiter.Resource.Name, KnownResourceStates.Running, TestContext.Current.CancellationToken).DefaultTimeout(); 639CancellationToken.None, KnownResourceTypes.Executable, waiter.Resource, waiter.Resource.Name)); 641await resourceNotificationService.WaitForResourceAsync(waiter.Resource.Name, KnownResourceStates.Waiting, TestContext.Current.CancellationToken).DefaultTimeout(); 643Assert.True(resourceNotificationService.TryGetCurrentState(dependency.Resource.Name, out var dependencyEvent)); 648await resourceNotificationService.WaitForResourceAsync(dependency.Resource.Name, KnownResourceStates.Running, TestContext.Current.CancellationToken).DefaultTimeout(); 691waiter.Resource.Name, 749waiter.Resource.Name, 800waiter.Resource.Name, 854waiter.Resource.Name, 862waiter.Resource.Name, 909await resourceNotificationService.WaitForResourceAsync(waiter.Resource.Name, KnownResourceStates.Waiting, TestContext.Current.CancellationToken).DefaultTimeout(); 914await resourceNotificationService.WaitForResourceAsync(waiter.Resource.Name, KnownResourceStates.Running, TestContext.Current.CancellationToken).DefaultTimeout(); 916Assert.True(resourceNotificationService.TryGetCurrentState(blocker.Resource.Name, out var blockerEvent)); 961waiter.Resource.Name, 965while (!resourceNotificationService.TryGetCurrentState(waiter.Resource.Name, out var waiterEvent) 980await resourceNotificationService.WaitForResourceAsync(waiter.Resource.Name, KnownResourceStates.Running, cancellationToken).DefaultTimeout(); 982Assert.True(resourceNotificationService.TryGetCurrentState(blocker.Resource.Name, out var blockerEvent)); 1013await resourceNotificationService.WaitForResourceAsync(connectionString.Resource.Name, KnownResourceStates.Waiting, TestContext.Current.CancellationToken).DefaultTimeout(); 1017await resourceNotificationService.WaitForResourceAsync(referenced.Resource.Name, KnownResourceStates.Running, TestContext.Current.CancellationToken).DefaultTimeout(); 1018await resourceNotificationService.WaitForResourceAsync(connectionString.Resource.Name, KnownResourceStates.Running, TestContext.Current.CancellationToken).DefaultTimeout(); 1049waiter.Resource.Name, 1054Assert.Equal(new[] { blocker.Resource.Name }, Assert.IsAssignableFrom<IEnumerable<string>>(waitingFor)); 1060await resourceNotificationService.WaitForResourceAsync(blocker.Resource.Name, KnownResourceStates.Running, TestContext.Current.CancellationToken).DefaultTimeout(); 1061await resourceNotificationService.WaitForResourceAsync(waiter.Resource.Name, KnownResourceStates.Running, TestContext.Current.CancellationToken).DefaultTimeout(); 1193public ReferenceExpression ConnectionStringExpression => ReferenceExpression.Create($"{Name}-connection-string"); 1318var childContainerState = resourceNotificationService.TryGetCurrentState(childContainer.Resource.Name, out var childContainerEvent) ? childContainerEvent.Snapshot.State?.Text : null; 1319var customChildState = resourceNotificationService.TryGetCurrentState(customChild.Resource.Name, out var customChildEvent) ? customChildEvent.Snapshot.State?.Text : null; 1365var childProjectState = resourceNotificationService.TryGetCurrentState(childProject.Resource.Name, out var childProjectEvent) ? childProjectEvent.Snapshot.State?.Text : null; 1366var 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)
132Assert.Equal("projectName", resource.Name); 262Assert.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)
1650await resourceNotificationService.WaitForResourceAsync(project.Resource.Name, e => KnownResourceStates.BuildableStates.Contains(e.Snapshot.State?.Text), cts.Token).DefaultTimeout(TimeSpan.FromMinutes(2));
ResourceFailureLoggingTests.cs (2)
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);
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)
146Assert.Equal("myapp-terminalhost-0", single.Name); 209Assert.Equal("mycontainer-terminalhost-0", single.Name); 248$"'{host.Name}' should be hidden by default."); 268$"'{host.Name}' should be visible when ShowTerminalHost=true."); 1143Assert.Equal($"myapp-terminalhost-{i}", hosts[i].Name); 1168Assert.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(); 974resourceB.Resource.Name, 979using var resourceAClient = app.CreateHttpClientWithResilience(resourceA.Resource.Name, "api"); 980using var resourceBClient = app.CreateHttpClientWithResilience(resourceB.Resource.Name, "http"); 1026resourceB.Resource.Name, 1037using var resourceAClient = app.CreateHttpClientWithResilience(resourceA.Resource.Name, "api"); 1041resourceB.Resource.Name, 1050resourceB.Resource.Name,
Aspire.Hosting.Valkey (1)
ValkeyBuilderExtensions.cs (1)
136throw new DistributedApplicationException($"ConnectionStringAvailableEvent was published for the '{valkey.Name}' resource but the connection string was null.");
Aspire.Hosting.Valkey.Tests (12)
AddValkeyTests.cs (2)
25Assert.Equal("myValkey", containerResource.Name); 53Assert.Equal("myValkey", containerResource.Name);
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);
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;