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;
2121 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)
66Name = $"build-{builder.Resource.Name}", 86Name = $"push-{builder.Resource.Name}", 621throw new InvalidOperationException($"The resource '{builder.Resource.Name}' does not have a container image specified. Use WithImage to specify the container image and tag."); 1156throw new InvalidOperationException($"The resource '{builder.Resource.Name}' does not have a Dockerfile build annotation. Call WithDockerfile before calling WithBuildArg."); 1206throw new InvalidOperationException($"Cannot add secret parameter '{value.Resource.Name}' as build argument '{name}' while configuring resource '{builder.Resource.Name}'. Use WithBuildSecret instead."); 1287throw 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); 223throw new InvalidOperationException($"The resource '{builder.Resource.Name}' is missing the ExecutableAnnotation"); 227private 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)
982if (builder.ApplicationBuilder.TryCreateResourceBuilder<ProjectContainerResource>(builder.Resource.Name, out var existingBuilder)) 1001cb.WithImage(builder.Resource.Name); 1216private 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)
156var moduleDirectory = outputDirectory.CreateSubdirectory(resource.Name); 158var modulePath = Path.Combine(moduleDirectory.FullName, $"{resource.Name}.bicep"); 162var identifier = Infrastructure.NormalizeBicepIdentifier(resource.Name); 164var module = new ModuleImport(identifier, $"{resource.Name}/{resource.Name}.bicep") 166Name = resource.Name 312$"Processing Azure resource {resource.Name}", 340$"Wrote bicep module for resource {resource.Name} to {module.Path}", 437var identifier = Infrastructure.NormalizeBicepIdentifier($"{output.Resource.Name}_{output.Name}"); 454var pid = Infrastructure.NormalizeBicepIdentifier(p.Name);
AzureResourcePreparer.cs (4)
99=> resource.AzureResource is AzureBicepResource bicepResource ? bicepResource.Name : resource.Resource.Name; 418$"{resource.Name}-roles-{targetResource.Name}", 510if (!appModel.Resources.TryGetByName(roleAssignmentResource.Name, out var existingResource)) 568$"{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.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), IResource
AzureCosmosDBExtensions.cs (15)
126throw new DistributedApplicationException($"ConnectionStringAvailableEvent was published for the '{builder.Resource.Name}' resource but the connection string was null."); 179var password = ParameterResourceBuilderExtensions.CreateDefaultPasswordParameter(builder.ApplicationBuilder, $"{builder.Resource.Name}-certificate-passphrase"); 216var healthCheckKey = $"{builder.Resource.Name}_check"; 549var kv = builder.ApplicationBuilder.AddAzureKeyVault($"{builder.Resource.Name}-kv") 596azureResource.ConnectionStringSecretOutput = keyVaultBuilder.Resource.GetSecret($"connectionstrings--{azureResource.Name}"); 597azureResource.PrimaryAccessKeySecretOutput = keyVaultBuilder.Resource.GetSecret($"primaryaccesskey--{azureResource.Name}"); 651Tags = { { "aspire-resource-name", infrastructure.AspireResource.Name } } 665var cosmosSqlDatabase = new CosmosDBSqlDatabase(Infrastructure.NormalizeBicepIdentifier(database.Name)) 678var cosmosContainer = new CosmosDBSqlContainer(Infrastructure.NormalizeBicepIdentifier(container.Name)) 713Name = $"connectionstrings--{azureResource.Name}", 724Name = $"primaryaccesskey--{azureResource.Name}", 734var dbSecret = new KeyVaultSecret(Infrastructure.NormalizeBicepIdentifier(database.Name + "_connectionString")) 737Name = AzureCosmosDBResource.GetKeyValueSecretName(database.Name), 747var containerSecret = new KeyVaultSecret(Infrastructure.NormalizeBicepIdentifier(container.Name + "_connectionString")) 750Name = 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 } } 195$"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 (28)
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 (11)
53logger.LogInformation("Processing AKS environment '{Name}'", Name); 189.FirstOrDefault(p => p.Name == poolName && p.AksParent == environment); 213$"Fetching AKS credentials for {Name}", 224?? Name; 349$"Applying AGC ApplicationLoadBalancer CR for {lb.Name}", 368displaced, lb.Name, displaced); 375$"Could not resolve subnet ID for AGC load balancer '{lb.Name}'."); 380$"Cannot apply AGC ApplicationLoadBalancer CR for '{lb.Name}': " + 381$"kubeconfig was not set by aks-get-credentials-{Name}."); 477$"☸ ALB {lb.Name}", 487$"Failed to apply AGC ApplicationLoadBalancer for {lb.Name}: {ex.Message}",
AzureKubernetesEnvironmentResource.cs (6)
45Name = $"prepare-aks-{Name}", 46Description = $"Prepares Azure Kubernetes Service environment {Name}.", 55$"prepare-deployment-targets-{k8sEnv.Name}" 61Name = $"aks-get-credentials-{Name}", 62Description = $"Fetches AKS credentials for {Name}", 67RequiredBySteps = [$"prepare-{k8sEnv.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 (12)
AzureKubernetesEnvironmentExtensionsTests.cs (8)
27Assert.Equal("aks", aks.Resource.Name); 47Assert.Equal("gpu", gpuPool.Resource.Name); 95Assert.Equal("aks", aks.Resource.KubernetesEnvironment.Name); 269Assert.Equal("gpu", affinity.NodePool.Name); 283Assert.Equal("cpu", pool1.Resource.Name); 284Assert.Equal("gpu", pool2.Resource.Name); 296Assert.Equal("aks-acr", aks.Resource.DefaultContainerRegistry.Name); 415Assert.Equal("gpu", gpuPool.Resource.Name);
AzureKubernetesHelmChartTests.cs (1)
36Assert.Equal("cert-manager", chart.Resource.Name);
AzureKubernetesInfrastructureTests.cs (3)
49Assert.Equal("workload", affinity.NodePool.Name); 72Assert.Equal("gpu", affinity.NodePool.Name); 93Assert.Equal("cpu", affinity.NodePool.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.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 (421)
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)
235AssertResourceGroupPropertyIsNull(services, resource.Name); 270AssertResourceGroupPropertyIsNull(services, resource.Name); 368AssertResourceGroupPropertyIsNull(services, resource.Name); 678Assert.True(notifications.TryGetCurrentState(resource.Name, out var resourceEvent)); 712Assert.True(notifications.TryGetCurrentState(resource.Name, out var resourceEvent)); 749Assert.True(notifications.TryGetCurrentState(resource.Name, out var resourceEvent)); 864Assert.True(notifications.TryGetCurrentState(resource.Name, out var resourceEvent)); 915Assert.True(notifications.TryGetCurrentState(resource.Name, out var resourceEvent)); 1106Assert.True(notifications.TryGetCurrentState(resource.Name, out var resourceEvent)); 1221Assert.True(notifications.TryGetCurrentState(resource.Name, out var resourceEvent)); 1342var deploymentId = GetTestDeploymentId(resource.Name); 1360Assert.Equal(resource.Name, deploymentCollection.DeploymentName); 1364var section = await deploymentStateManager.AcquireSectionAsync($"Azure:Deployments:{resource.Name}"); 1377var deploymentId = GetTestDeploymentId(resource.Name); 1507var deploymentId = GetTestDeploymentId(resource.Name); 1524var section = await deploymentStateManager.AcquireSectionAsync($"Azure:Deployments:{resource.Name}"); 1539var deploymentId = GetTestDeploymentId(resource.Name); 1567var deploymentId = GetTestDeploymentId(resource.Name); 1579var section = await deploymentStateManager.AcquireSectionAsync($"Azure:Deployments:{resource.Name}"); 1591var deploymentId = GetTestDeploymentId(resource.Name); 1605var section = await deploymentStateManager.AcquireSectionAsync($"Azure:Deployments:{resource.Name}"); 1618var deploymentId = GetTestDeploymentId(resource.Name); 1634var section = await deploymentStateManager.AcquireSectionAsync($"Azure:Deployments:{resource.Name}"); 1647var deploymentId = GetTestDeploymentId(resource.Name); 1659Assert.Contains(resource.Name, exception.Message, StringComparison.Ordinal); 1660var section = await deploymentStateManager.AcquireSectionAsync($"Azure:Deployments:{resource.Name}"); 1672var deploymentId = GetTestDeploymentId(resource.Name); 1684Assert.Contains(resource.Name, exception.Message, StringComparison.Ordinal); 1685var section = await deploymentStateManager.AcquireSectionAsync($"Azure:Deployments:{resource.Name}"); 1689Assert.True(notificationService.TryGetCurrentState(resource.Name, out var resourceEvent)); 1701var deploymentId = GetTestDeploymentId(resource.Name); 1718var section = await deploymentStateManager.AcquireSectionAsync($"Azure:Deployments:{resource.Name}"); 1776var section = await deploymentStateManager.AcquireSectionAsync($"Azure:Deployments:{resource.Name}");
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); 1060var projIdentity = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "api-identity"); 1061var projRolesStorage = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "api-roles-storage"); 1104var projIdentity = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "api-identity"); 1105var projRolesStorage = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "api-roles-cosmos"); 1145var projIdentity = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "api-identity"); 1146var projRolesStorage = Assert.Single(model.Resources.OfType<AzureProvisioningResource>(), r => r.Name == "api-roles-redis"); 1923var env1Resource = Assert.Single(envResources, r => r.Name == "cae1"); 1924var env2Resource = Assert.Single(envResources, r => r.Name == "cae2"); 1974var env1Resource = Assert.Single(envResources, r => r.Name == "cae1"); 1975var env2Resource = Assert.Single(envResources, r => r.Name == "cae2"); 2285var env1Resource = Assert.Single(envResources, r => r.Name == "cae1"); 2286var env2Resource = Assert.Single(envResources, r => r.Name == "cae2"); 2800Assert.Contains("acr", defaultAcr.Name); 2822Assert.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); 5473_configuredResources.Add(resource.Name); 5484_provisionedResources.Add(resource.Name); 5485_provisionedLocations[resource.Name] = resource.Parameters.TryGetValue(AzureBicepResource.KnownParameters.Location, out var location) 5609_provisionedResources.Add(resource.Name); 5619resource.Outputs["blobEndpoint"] = $"https://{resource.Name}.blob.core.windows.net/"; 5695var section = await deploymentStateManager.AcquireSectionAsync($"Azure:Deployments:{resource.Name}", cancellationToken).ConfigureAwait(false); 5773if (string.Equals(resource.Name, childResourceName, StringComparison.Ordinal)) 5782if (string.Equals(resource.Name, parentResourceName, StringComparison.Ordinal) && 5795_provisionedResources.Add(resource.Name); 5798resource.Outputs["id"] = $"/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/test-rg/providers/Microsoft.Test/resources/{resource.Name}"; 5799resource.Outputs["name"] = resource.Name; 5800resource.Outputs["vaultUri"] = $"https://{resource.Name}.vault.azure.net/"; 5801resource.Outputs["connectionString"] = $"Host={resource.Name}.postgres.database.azure.com"; 5802resource.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");
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 (4)
22Assert.Equal("myAIFoundry", resource.Name); 34Assert.Equal("deployment1", deployment.Name); 94await rns.WaitForResourceAsync(resource.Name, [KnownResourceStates.FailedToStart, KnownResourceStates.Running], cts.Token); 201var 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); 250ResourceName = 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)
448ErrorMessage = $"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." 543throw new ArgumentException($"Target endpoint '{targetEndpoint.EndpointName}' on resource '{targetEndpoint.Resource.Name}' has already been added to dev tunnel '{tunnel.Name}'.", nameof(targetEndpoint)); 569var portName = $"{tunnel.Name}-{targetResource.Name}-{targetEndpoint.EndpointName}"; 794await eventing.PublishAsync<ResourceStoppedEvent>(new(portResource, e.Services, new(portResource, portResource.Name, stoppedSnapshot!)), ct).ConfigureAwait(false);
Aspire.Hosting.DevTunnels.Tests (5)
DevTunnelResourceBuilderExtensionsTests.cs (5)
469ResourceName = port.Name, 521ResourceName = port.Name, 569ResourceName = port.Name, 629tunnelPort.Name, 665Assert.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}") 414new MarkdownString($"Running compose up for **{Name}** using **{runtime.Name}**"), 426var stateSection = await deploymentStateManager.AcquireSectionAsync($"DockerCompose:{Name}", context.CancellationToken).ConfigureAwait(false); 433new MarkdownString($"Service **{Name}** is now running with Docker Compose locally (runtime: {runtime.Name})"), 460new MarkdownString($"Running compose down for **{Name}** using **{runtime.Name}**"), 471new MarkdownString($"Compose shutdown complete for **{Name}** ({runtime.Name})"), 571var environmentName = hostEnvironment?.EnvironmentName ?? environment.Name; 598return $"aspire-{environment.Name.ToLowerInvariant()}-{appHostSha[..8].ToLowerInvariant()}"; 602return $"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 (2)
DotnetProjectResource.cs (2)
66Task.FromException(new DistributedApplicationException(GetUnsupportedPublishMessage(Name)))); 91GetUnsupportedPublishMessage(unsupportedResources.Select(resource => resource.Name).ToArray())),
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 (63)
FoundryExtensions.cs (7)
190var healthCheckKey = $"{resource.Name}_check"; 420var healthCheckKey = $"{deployment.Name}_check"; 453var accountNamePrefix = infrastructure.AspireResource.Name[..Math.Min(infrastructure.AspireResource.Name.Length, 50)]; 477Tags = { { "aspire-resource-name", infrastructure.AspireResource.Name } } 508var capHost = new CognitiveServicesCapabilityHost(Infrastructure.NormalizeBicepIdentifier($"{resource.Name}-caphost"), "2025-10-01-preview") 526var cdkDeployment = new CognitiveServicesAccountDeployment(Infrastructure.NormalizeBicepIdentifier(deployment.Name))
HostedAgent\AzureHostedAgentResource.cs (11)
54Name = $"deploy-{Name}", 58ctx.ReportingStep.Log(LogLevel.Information, new MarkdownString($"Successfully deployed **{Name}** as Hosted Agent (version {version})")); 113throw new InvalidOperationException($"Container image for hosted agent '{Name}' could not be resolved."); 167throw new InvalidOperationException($"Project '{project.Name}' does not have a valid connection string."); 174Name, 204Name, 248context.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); 255context.Logger.LogWarning("Could not resolve the Microsoft Foundry resource ID for hosted agent '{Name}'. The agent identity '{PrincipalId}' may need the Cognitive Services User role assigned manually.", Name, principalId); 281context.Logger.LogInformation("Assigned Cognitive Services User role to hosted agent '{Name}' identity '{PrincipalId}'.", Name, principalId); 288Name, 503$"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)
264return 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 } }
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 (11)
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);
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}' " + 709? $"cp {ShellQuote(NormalizeContextRelativePath(artifact.RelativePath, resource.Name, appDirectory, "its JAR artifact"))} {ContainerArtifactPath}" 714? SelectQuarkusArtifactCommand(outputDirectory, outputGlob, resource.Name) 716? SelectNamedJarCommand(namedJar, ContainerArtifactPath, resource.Name) 717: SelectSingleJarCommand(outputGlob, ContainerArtifactPath, resource.Name); 740CacheId: $"aspire-java-{tool.ToString().ToLowerInvariant()}-{resource.Name.ToLowerInvariant()}", 1007$"Java application '{resource.Name}' cannot be published because its {wrapper} has no " + 1043$"Java application '{resource.Name}' cannot be published because its wrapper " + 1054$"Java application '{resource.Name}' cannot be published because the wrapper " + 1060$"Java application '{resource.Name}' cannot be published because there is no " + 1079$"Java application '{resource.Name}' cannot be published because its wrapper " + 1095$"Java application '{resource.Name}' cannot be published because its wrapper path " + 1152$"The Java application '{resource.Name}' cannot be published because no build tool was found. " + 1175$"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)
847var 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 (11)
JavaScriptHostingExtensions.cs (11)
1359builder.TryCreateResourceBuilder<ContainerResource>(resource.Name, out var containerBuilder)) 1361var validationStepName = $"validate-javascript-dockerfile-run-script-{resource.Name}"; 1374Description = $"Validates that JavaScript app '{resource.Name}' does not publish an ignored run script with an existing Dockerfile.", 1438$"JavaScript app resource '{resource.Name}' is configured to run script '{runScript.ScriptName}'{argsClause}, but publish is using the existing Dockerfile '{dockerfileBuildAnnotation.DockerfilePath}'. " + 1570resourceLogger.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); 1578var aspireConfigDir = Path.Join(nodeModulesDir, ".aspire", appHostId, resource.Name); 1606resourceLogger.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); 2198$"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."); 2262var debuggerResourceName = $"{parentResource.Name}-browser"; 2284$"Resource '{parentResource.Name}' does not have an HTTP or HTTPS endpoint. Browser debugging requires an endpoint to navigate to."); 2335var installerName = $"{resource.Resource.Name}-installer";
Aspire.Hosting.JavaScript.Tests (24)
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");
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."); 228? 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)
27Assert.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 (125)
CertManagerExtensions.cs (28)
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}'", 426$"ClusterIssuer '{issuer.Name}' has no spec. Configure it with WithLetsEncryptProduction(), " + 433$"ClusterIssuer '{issuer.Name}' has no solvers configured. Add at least one " + 443"Applying cert-manager ClusterIssuer '{IssuerName}'.", issuer.Name); 451var manifestPath = Path.Combine(tempDir.FullName, $"{issuer.Name}.yaml"); 482$"kubectl apply for ClusterIssuer '{issuer.Name}' failed with exit code {result.ExitCode}: {errOut}"); 486context.Logger.LogInformation("ClusterIssuer '{IssuerName}' applied.", issuer.Name); 503var k8sIssuerName = issuer.Name.ToKubernetesResourceName(); 506"Deleting cert-manager ClusterIssuer '{IssuerName}'.", issuer.Name); 542issuer.Name, 549context.Logger.LogInformation("ClusterIssuer '{IssuerName}' deleted.", issuer.Name); 566var k8sIssuerName = issuer.Name.ToKubernetesResourceName(); 590$"Unknown issuer spec type '{issuer.Spec?.GetType().Name}' on issuer '{issuer.Name}'."); 624&& string.Equals(v.Format, issuer.Name, StringComparison.Ordinal)) 640issuer.Name, 641certManager.Parent.Name, 642issuer.Name); 653sb.Append(" name: ").AppendLine(gateway.Name.ToKubernetesResourceName()); 659$"Unknown solver type '{solver.GetType().Name}' on issuer '{issuer.Name}'.");
Deployment\HelmDeploymentEngine.cs (26)
136Name = $"check-helm-prereqs-{environment.Name}", 137Description = $"Verifies Helm CLI is available for {environment.Name}.", 149Name = $"prepare-{environment.Name}", 150Description = $"Prepares Helm chart values for {environment.Name}.", 155prepareStep.DependsOn($"check-helm-prereqs-{environment.Name}"); 161Name = $"helm-deploy-{environment.Name}", 162Description = $"Deploys {environment.Name} to Kubernetes via Helm.", 166helmDeployStep.DependsOn($"prepare-{environment.Name}"); 173Name = $"print-{environment.Name}-instructions", 174Description = $"Prints access instructions for {environment.Name}.", 178instructionsStep.DependsOn($"helm-deploy-{environment.Name}"); 185Name = $"destroy-helm-{environment.Name}", 186Description = $"Confirms and destroys the Helm deployment for {environment.Name}.", 191var stateSection = await deploymentStateManager.AcquireSectionAsync($"Helm:{environment.Name}", ctx.CancellationToken).ConfigureAwait(false); 198$"No Helm deployment state found for '{environment.Name}'. Nothing to destroy.", 229Name = $"helm-uninstall-{environment.Name}", 230Description = $"Uninstalls the Helm release for {environment.Name}.", 234helmUninstallStep.DependsOn($"check-helm-prereqs-{environment.Name}"); 252new MarkdownString($"Preparing Helm chart values for **{environment.Name}**"), 266new MarkdownString($"Helm chart values prepared for **{environment.Name}**"), 362var overrideFilePath = Path.Combine(outputPath, GetDeployValuesFileName(environment.Name)); 421new MarkdownString($"Deploying **{environment.Name}** to Kubernetes namespace **{@namespace}** as Helm release **{releaseName}**"), 451var deployValuesFilePath = Path.Combine(outputPath, GetDeployValuesFileName(environment.Name)); 485var stateSection = await deploymentStateManager.AcquireSectionAsync($"Helm:{environment.Name}", context.CancellationToken).ConfigureAwait(false); 552var dashboardServiceName = environment.Dashboard.Resource.Name.ToKubernetesResourceName() + "-service"; 557var dashboardDeploymentName = environment.Dashboard.Resource.Name.ToKubernetesResourceName();
Extensions\ResourceExtensions.cs (1)
223bindingsByVolumeName[binding.Volume.Name] = binding;
KubernetesEnvironmentResource.cs (44)
238Name = $"prepare-deployment-targets-{Name}", 239Description = $"Prepares Kubernetes deployment targets for {Name}.", 250Name = $"publish-{Name}", 251Description = $"Publishes the Kubernetes environment configuration for {Name}.", 275Name = $"tls-bootstrap-{environment.Name}", 279tlsBootstrapStep.DependsOn($"helm-deploy-{environment.Name}"); 291Name = $"tls-fqdn-discovery-{environment.Name}", 295fqdnDiscoveryStep.DependsOn($"helm-deploy-{environment.Name}"); 299fqdnDiscoveryStep.DependsOn($"tls-bootstrap-{environment.Name}"); 319Name = $"gateway-field-cleanup-{environment.Name}", 323cleanupStep.RequiredBy($"helm-deploy-{environment.Name}"); 324cleanupStep.DependsOn($"prepare-{environment.Name}"); 516$"Resource '{r.Name}' is assigned to Kubernetes environment '{Name}' but binds " + 517$"persistent volume '{binding.Volume.Name}' which belongs to environment " + 518$"'{binding.Volume.Parent.Name}'. A workload can only bind persistent volumes " + 520$"'{Name}', or assign the workload to '{binding.Volume.Parent.Name}' with " + 673var valueKey = parameter.Name.ToHelmValuesSectionName(); 727ingressResource.Name); 737EndpointRoutingValidation.ThrowIfEndpointNotExternal(path.Endpoint, "Ingress", ingressResource.Name); 742EndpointRoutingValidation.ThrowIfEndpointNotExternal(defaultBackend.Endpoint, "Ingress", ingressResource.Name); 763Name = ingressResource.Name.ToKubernetesResourceName(), 769ingress.Spec.IngressClassName = await ResolveExpressionAsync(ingressResource.IngressClassName, ingressResource.Name, cancellationToken).ConfigureAwait(false); 774ingress.Metadata.Annotations[key] = await ResolveExpressionAsync(value, ingressResource.Name, cancellationToken).ConfigureAwait(false); 779ingressResource.Name, 812var backend = ResolveIngressBackend(pathRule.Endpoint, deploymentTargets, ingressResource.Name, logger); 834var defaultBackend = ResolveIngressBackend(ingressResource.DefaultBackend.Endpoint, deploymentTargets, ingressResource.Name, logger); 845SecretName = await ResolveExpressionAsync(tls.SecretName, ingressResource.Name, cancellationToken).ConfigureAwait(false), 900logger.LogWarning("Ingress '{IngressName}' produced no valid rules or default backend. Skipping.", ingressResource.Name); 968gatewayResource.Name); 976EndpointRoutingValidation.ThrowIfEndpointNotExternal(route.Endpoint, "Gateway", gatewayResource.Name); 1013claim.Metadata.Annotations[key] = await ResolveExpressionAsync(value, volumeResource.Name, cancellationToken).ConfigureAwait(false); 1031? await ResolveExpressionAsync(capacityExpression, volumeResource.Name, cancellationToken).ConfigureAwait(false) 1037var storageClass = await ResolveExpressionAsync(storageClassExpression, volumeResource.Name, cancellationToken).ConfigureAwait(false); 1060$"Gateway '{gatewayResource.Name}' must have a GatewayClassName set via WithGatewayClass(). " + 1064var gatewayName = gatewayResource.Name.ToKubernetesResourceName(); 1078gatewayResource.Name, 1085$"Gateway '{gatewayResource.Name}' configures {resolvedHostnames.Count} hostnames that would be inherited by a hostless route, " + 1091gateway.Spec.GatewayClassName = await ResolveExpressionAsync(gatewayResource.GatewayClassName, gatewayResource.Name, cancellationToken).ConfigureAwait(false); 1095gateway.Metadata.Annotations[key] = await ResolveExpressionAsync(value, gatewayResource.Name, cancellationToken).ConfigureAwait(false); 1112var resolvedSecretName = await ResolveExpressionAsync(tls.SecretName, gatewayResource.Name, cancellationToken).ConfigureAwait(false); 1193var backendRef = ResolveGatewayBackendRef(route.Endpoint, deploymentTargets, gatewayResource.Name, logger); 1402var gatewayName = gateway.Name.ToKubernetesResourceName(); 1856var gatewayName = gateway.Name.ToKubernetesResourceName();
KubernetesGatewayExtensions.cs (1)
266var secretName = $"{builder.Resource.Name}-tls";
KubernetesHelmChartExtensions.cs (15)
104installStep.DependsOn($"helm-deploy-{environment.Name}"); 122uninstallStep.DependsOn($"check-helm-prereqs-{environment.Name}"); 298chart.Name, chart.ChartReference, chart.ChartVersion, @namespace); 364? $"helm upgrade --install for chart '{chart.Name}' failed with exit code {exitCode}" 365: $"helm upgrade --install for chart '{chart.Name}' failed: {errorOutput}"; 385chart.Name, releaseName, @namespace); 412releaseName, chart.Name, @namespace); 438? $"helm uninstall for chart '{chart.Name}' failed with exit code {exitCode}" 439: $"helm uninstall for chart '{chart.Name}' failed: {errorOutput}"; 453var releaseName = chart.ReleaseName ?? chart.Name; 454var @namespace = chart.Namespace ?? chart.Name; 469$"Cannot derive a Helm release name from resource name '{chart.Name}'. " + 484$"Cannot derive a Kubernetes namespace from resource name '{chart.Name}'. " + 494=> $"HelmChart:{environment.Name}:{chart.Name}";
KubernetesIngressExtensions.cs (1)
289var secretName = $"{builder.Resource.Name}-tls";
KubernetesPersistentVolumeExtensions.cs (1)
316builder.WithAnnotation(new ContainerMountAnnotation(volume.Resource.Name, mountPath, ContainerMountType.Volume, isReadOnly));
KubernetesPersistentVolumeResource.cs (1)
116internal 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)
1187c.Parameter.Name == "my-password"); 1383c.Parameter.Name == "cache-password"); 1389c.Parameter.Name == "cache-password"); 1461c.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)
83logger.LogInformation("Queued — waiting for another build of project '{ProjectName}' to complete.", parent.Name); 95logger.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)
99var tunnelName = parentBuilder.Resource.Name; 120string.Equals(devTunnelResource.Name, tunnelName, StringComparisons.ResourceName) && 126throw 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."); 129throw new DistributedApplicationException($"The Aspire dashboard resource '{KnownResourceNames.AspireDashboard}' does not have an allocated OTLP endpoint named '{KnownEndpointNames.OtlpGrpcEndpointName}' or '{KnownEndpointNames.OtlpHttpEndpointName}', 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)
201context.EnvironmentVariables[KnownOtelConfigNames.ServiceName] = resource.Name;
MauiWindowsExtensions.cs (1)
47var name = $"{builder.Resource.Name}-windows";
Aspire.Hosting.Maui.Tests (16)
MauiBuildQueueTests.cs (6)
128if (evt.Resource.Name == env.MacCatalyst.Name && evt.Snapshot.State?.Text == "Queued") 162if (evt.Resource.Name == env.Android.Name && evt.Snapshot.State?.Text == "Building") 531env.CancelResource(env.MacCatalyst.Name); 622env.CancelResource(env.Android.Name); 694env.CancelResource(env.MacCatalyst.Name); 776ResourceName = env.Android.Name,
MauiPlatformExtensionsTests.cs (9)
343Assert.NotEqual(androidDevice.Resource.Name, androidEmulator.Resource.Name); 364Assert.Equal("my-device", device.Resource.Name); 387Assert.Equal("my-emulator", emulator.Resource.Name); 410Assert.Equal("my-device", device.Resource.Name); 438Assert.Equal("my-simulator", simulator.Resource.Name); 494Assert.NotEqual(device.Resource.Name, simulator.Resource.Name); 667var stubName = tunnelConfig.OtlpStub.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 (4)
MongoDBBuilderExtensions.cs (4)
73throw new DistributedApplicationException($"ConnectionStringAvailableEvent was published for the '{mongoDBContainer.Name}' resource but the connection string was null."); 127throw new DistributedApplicationException($"ConnectionStringAvailableEvent was published for the '{mongoDBDatabase.Name}' resource but the connection string was null."); 164containerName ??= $"{builder.Resource.Name}-mongoexpress"; 274context.EnvironmentVariables["ME_CONFIG_MONGODB_SERVER"] = resource.Name;
Aspire.Hosting.MongoDB.Tests (16)
AddMongoDBTests.cs (2)
42Assert.Equal("mongodb", containerResource.Name); 70Assert.Equal("mongodb", containerResource.Name);
MongoDbFunctionalTests.cs (14)
54await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running, cts.Token); 56await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting, cts.Token); 60await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Resource.Name, cts.Token); 62await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running, cts.Token); 88hb.Configuration[$"ConnectionStrings:{db.Resource.Name}"] = await db.Resource.ConnectionStringExpression.GetValueAsync(default); 90hb.AddMongoDBClient(db.Resource.Name); 152hb.Configuration[$"ConnectionStrings:{db1.Resource.Name}"] = await db1.Resource.ConnectionStringExpression.GetValueAsync(default); 154hb.AddMongoDBClient(db1.Resource.Name); 197hb.Configuration[$"ConnectionStrings:{db2.Resource.Name}"] = await db2.Resource.ConnectionStringExpression.GetValueAsync(default); 199hb.AddMongoDBClient(db2.Resource.Name); 318hb.Configuration[$"ConnectionStrings:{db.Resource.Name}"] = await db.Resource.ConnectionStringExpression.GetValueAsync(default); 320hb.AddMongoDBClient(db.Resource.Name); 408hb.Configuration[$"ConnectionStrings:{db.Resource.Name}"] = await db.Resource.ConnectionStringExpression.GetValueAsync(default); 410hb.AddMongoDBClient(db.Resource.Name);
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}'"); 274var hostString = $"{(hostsVariableBuilder.Length > 0 ? "," : string.Empty)}{redisInstance.Name}:{redisInstance.Name}:{endpoint.TargetPort}:0"; 343context.EnvironmentVariables[$"RI_REDIS_ALIAS{counter}"] = redisInstance.Name; 382logger.LogError($"Cannot configure an encrypted certificate for redis insight resource '{resource.Name}'");
Aspire.Hosting.Redis.Tests (49)
AddRedisTests.cs (11)
41Assert.Equal("myRedis", containerResource.Name); 69Assert.Equal("myRedis", containerResource.Name); 302Assert.Equal($"{redis1.Resource.Name}.dev.internal", item.Value); 312Assert.Equal(redis1.Resource.Name, item.Value); 324Assert.Equal($"{redis2.Resource.Name}.dev.internal", item.Value); 334Assert.Equal(redis2.Resource.Name, item.Value); 346Assert.Equal($"{redis3.Resource.Name}.dev.internal", item.Value); 356Assert.Equal(redis3.Resource.Name, item.Value); 498Assert.Equal($"myredis1:{redis.Resource.Name}:6379:0:{redis.Resource.PasswordParameter?.Value}", config["REDIS_HOSTS"]); 520Assert.Equal($"myredis1:{redis.Resource.Name}:6379:0:{password}", config["REDIS_HOSTS"]); 545Assert.Equal($"myredis1:{redis1.Resource.Name}:6379:0:{redis1.Resource.PasswordParameter?.Value},myredis2:myredis2:6379:0:{redis2.Resource.PasswordParameter?.Value}", config["REDIS_HOSTS"]);
RedisFunctionalTests.cs (38)
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"; 115[$"ConnectionStrings:{redis.Resource.Name}"] = await redis.Resource.GetConnectionStringAsync() 118hb.AddRedisClient(redis.Resource.Name); 148await app.ResourceNotifications.WaitForResourceHealthyAsync(redis.Resource.Name, cts.Token); 155[$"ConnectionStrings:{redis.Resource.Name}"] = $"{await redis.Resource.GetConnectionStringAsync()},allowAdmin=true" 158hb.AddRedisClient(redis.Resource.Name); 189await rns.WaitForResourceAsync(redisInsightBuilder.Resource.Name, KnownResourceStates.Running).WaitAsync(cts.Token); 191var client = app.CreateHttpClient(redisInsightBuilder.Resource.Name, "http"); 207Assert.Equal(redis1.Resource.Name, db.Name); 208Assert.Equal($"{redis1.Resource.Name}.dev.internal", db.Host); 213Assert.Equal(redis2.Resource.Name, db.Name); 214Assert.Equal($"{redis2.Resource.Name}.dev.internal", db.Host); 219Assert.Equal(redis3.Resource.Name, db.Name); 220Assert.Equal($"{redis3.Resource.Name}.dev.internal", db.Host); 257[$"ConnectionStrings:{redis1.Resource.Name}"] = $"{await redis1.Resource.GetConnectionStringAsync()},allowAdmin=true" 260hb.AddRedisClient(redis1.Resource.Name); 294[$"ConnectionStrings:{redis2.Resource.Name}"] = await redis2.Resource.GetConnectionStringAsync() 297hb.AddRedisClient(redis2.Resource.Name); 340[$"ConnectionStrings:{redis1.Resource.Name}"] = $"{await redis1.Resource.GetConnectionStringAsync()},allowAdmin=true" 343hb.AddRedisClient(redis1.Resource.Name); 375[$"ConnectionStrings:{redis2.Resource.Name}"] = await redis2.Resource.GetConnectionStringAsync() 378hb.AddRedisClient(redis2.Resource.Name); 425[$"ConnectionStrings:{redis1.Resource.Name}"] = $"{await redis1.Resource.GetConnectionStringAsync()},allowAdmin=true" 428hb.AddRedisClient(redis1.Resource.Name); 456[$"ConnectionStrings:{redis2.Resource.Name}"] = await redis2.Resource.GetConnectionStringAsync() 459hb.AddRedisClient(redis2.Resource.Name); 524await rns.WaitForResourceAsync(redisInsightBuilder1.Resource.Name, KnownResourceStates.Running).WaitAsync(cts.Token); 528var httpClient = app.CreateHttpClient(redisInsightBuilder1.Resource.Name, "http"); 559await rns.WaitForResourceAsync(redisInsightBuilder2.Resource.Name, KnownResourceStates.Running).WaitAsync(cts.Token); 563var httpClient = app.CreateHttpClient(redisInsightBuilder2.Resource.Name, "http"); 680await app.ResourceNotifications.WaitForResourceHealthyAsync(redis.Resource.Name, cts.Token); 681await app.ResourceNotifications.WaitForResourceHealthyAsync(redisCommander.Name, cts.Token);
Aspire.Hosting.RemoteHost.Tests (4)
CapabilityDispatcherTests.cs (4)
2512TestResourceWithProperties resource => resource.Name, 2663return $"{prefix}, {Name}!"; 2676ReferenceExpression.Create($"Host=localhost;Database={Name}"); 2681yield 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 (306)
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, 1620hosts[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); 1134Assert.Single(kubernetesService.CreatedResources.OfType<Container>(), c => c.AppModelResourceName == emulator.Resource.Name); 4644var executable = GetCreatedExecutableForResource(kubernetesService, resource.Name); 8886.Where(c => c.AppModelResourceName == container.Resource.Name) 8903await AssertEndpoint(container.Resource, "proxied", KnownNetworkIdentifiers.DefaultAspireContainerNetwork, $"{container.Resource.Name}.dev.internal", 11234); 8904await AssertEndpoint(container.Resource, "notProxied", KnownNetworkIdentifiers.DefaultAspireContainerNetwork, $"{container.Resource.Name}.dev.internal", 18765); 8909await AssertEndpoint(containerWithAlias.Resource, "proxied", KnownNetworkIdentifiers.DefaultAspireContainerNetwork, $"{containerWithAlias.Resource.Name}.dev.internal", 21234); 8910await AssertEndpoint(containerWithAlias.Resource, "notProxied", KnownNetworkIdentifiers.DefaultAspireContainerNetwork, $"{containerWithAlias.Resource.Name}.dev.internal", 28765); 8994s => s.AppModelResourceName == executable.Resource.Name 9419while (!kubernetesService.CreatedResources.OfType<Container>().Any(c => c.AppModelResourceName == container.Resource.Name)) 9435Assert.Single(createdContainers, c => c.AppModelResourceName == container.Resource.Name); 9436Assert.Single(createdContainers, c => c.AppModelResourceName == waiting.Resource.Name); 9437var waitingConsumingContainer = Assert.Single(createdContainers, c => c.AppModelResourceName == waitingConsumingEndpoint.Resource.Name); 9444Assert.Single(tunnelServices, s => s.AppModelResourceName == executableA.Resource.Name); 9445var executableBTunnelService = Assert.Single(tunnelServices, s => s.AppModelResourceName == executableB.Resource.Name); 9480while (!kubernetesService.CreatedResources.OfType<Executable>().Any(e => e.AppModelResourceName == upstreamExecutable.Resource.Name)) 9488while (!kubernetesService.CreatedResources.OfType<Container>().Any(c => c.AppModelResourceName == tunnelDependentContainer.Resource.Name)) 9504var upstreamExecutableResource = Assert.Single(createdResources.OfType<Executable>(), e => e.AppModelResourceName == upstreamExecutable.Resource.Name); 9505var downstreamExecutableResource = Assert.Single(createdResources.OfType<Executable>(), e => e.AppModelResourceName == downstreamExecutable.Resource.Name); 9506var tunnelDependentDcpContainer = Assert.Single(createdResources.OfType<Container>(), c => c.AppModelResourceName == tunnelDependentContainer.Resource.Name); 9517var upstreamTunnelService = Assert.Single(tunnelServices, s => s.AppModelResourceName == upstreamExecutable.Resource.Name);
Dcp\ExecutableLaunchPlanTests.cs (3)
26resource.Name, 73resource.Name, 132resource.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 (15)
780using var clientA = app.CreateHttpClient(testProgram.ServiceABuilder.Resource.Name, "http"); 781using var clientC = app.CreateHttpClient(testProgram.ServiceCBuilder.Resource.Name, "http"); 788var uri = app.GetEndpoint(testProgram.ServiceBBuilder.Resource.Name, "http"); 1106var dependentRunningResourceEvent = await rns.WaitForResourceAsync(container.Resource.Name, e => e.Snapshot.State?.Text == KnownResourceStates.Running).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 1772await app.WaitForTextAsync("Content root path:", resourceName: testProgram.ServiceABuilder.Resource.Name).DefaultTimeout(TestConstants.LongTimeoutDuration); 1775var httpEndPoint = app.GetEndpoint(testProgram.ServiceABuilder.Resource.Name, endpointName: "http"); 1793var httpsEndpoint = app.GetEndpoint(testProgram.ServiceABuilder.Resource.Name, endpointName: "https"); 1843using var clientA = app.CreateHttpClient(servicea.Resource.Name, "http"); 1917using var clientA = app.CreateHttpClient(servicea.Resource.Name, "http"); 2046await app.ResourceNotifications.WaitForResourceAsync(container.Resource.Name, KnownResourceStates.NotStarted, token) 2048await app.ResourceNotifications.WaitForResourceAsync(executable.Resource.Name, KnownResourceStates.NotStarted, token) 2054var dcpContainer = Assert.Single(containers, c => c.AppModelResourceName == container.Resource.Name); 2063var dcpExecutable = Assert.Single(executables, e => e.AppModelResourceName == executable.Resource.Name); 2347var 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(); 1190public ReferenceExpression ConnectionStringExpression => ReferenceExpression.Create($"{Name}-connection-string"); 1315var childContainerState = resourceNotificationService.TryGetCurrentState(childContainer.Resource.Name, out var childContainerEvent) ? childContainerEvent.Snapshot.State?.Text : null; 1316var customChildState = resourceNotificationService.TryGetCurrentState(customChild.Resource.Name, out var customChildEvent) ? customChildEvent.Snapshot.State?.Text : null; 1362var childProjectState = resourceNotificationService.TryGetCurrentState(childProject.Resource.Name, out var childProjectEvent) ? childProjectEvent.Snapshot.State?.Text : null; 1363var 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)); 1529Assert.Equal(string.Format(CultureInfo.InvariantCulture, CommandStrings.ResourceDeletedParameter, parameter.Name), result.Message); 1530var section = await capturingStateManager.AcquireSectionAsync($"Parameters:{parameter.Name}").DefaultTimeout(); 1547Assert.True(capturingStateManager.State.TryGetPropertyValue($"Parameters:{parameter.Name}", out var savedValueNode)); 1565Assert.True(capturingStateManager.State.TryGetPropertyValue($"Parameters:{parameter.Name}", out var savedValueNode)); 1631var 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)
145Assert.Equal("myapp-terminalhost-0", single.Name); 208Assert.Equal("mycontainer-terminalhost-0", single.Name); 247$"'{host.Name}' should be hidden by default."); 267$"'{host.Name}' should be visible when ShowTerminalHost=true."); 1094Assert.Equal($"myapp-terminalhost-{i}", hosts[i].Name); 1119Assert.Equal($"myapp-terminalhost-{i}", hosts[i].Name);
WithUrlsTests.cs (7)
267Assert.StartsWith($"http://{projectB.Resource.Name.ToLowerInvariant()}{expectedHostSuffix}", u.Url); 388servicea.Resource.Name, 413servicea.Resource.Name, 446servicea.Resource.Name, 496await rns.WaitForResourceAsync(servicea.Resource.Name, KnownResourceStates.Running).DefaultTimeout(); 612await rns.WaitForResourceAsync(custom.Resource.Name, KnownResourceStates.Running).DefaultTimeout(); 973resourceB.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;