177 references to Snapshot
Aspire.Hosting (29)
ApplicationModel\ResourceNotificationService.cs (11)
132&& resourceEvent.Snapshot.State?.Text is { Length: > 0 } stateText 152await WaitForResourceCoreAsync(dependency.Name, re => re.ResourceId == resourceId && re.Snapshot.HealthStatus == HealthStatus.Healthy, cancellationToken).ConfigureAwait(false); 157resourceEvent = await WaitForResourceCoreAsync(dependency.Name, re => re.ResourceId == resourceId && re.Snapshot.ResourceReadyEvent is not null, cancellationToken: cancellationToken).ConfigureAwait(false); 160await resourceEvent.Snapshot.ResourceReadyEvent!.EventTask.WaitAsync(cancellationToken).ConfigureAwait(false); 221var resourceEvent = await WaitForResourceCoreAsync(resourceName, re => ShouldYield(waitBehavior, re.Snapshot), cancellationToken: cancellationToken).ConfigureAwait(false); 223if (resourceEvent.Snapshot.HealthStatus != HealthStatus.Healthy) 267var resourceEvent = await WaitForResourceCoreAsync(dependency.Name, re => re.ResourceId == resourceId && IsKnownTerminalState(re.Snapshot), cancellationToken: cancellationToken).ConfigureAwait(false); 268var snapshot = resourceEvent.Snapshot; 322var resourceEvent = await WaitForResourceCoreAsync(dependency.Name, re => re.ResourceId == resourceId && IsContinuableState(waitBehavior, re.Snapshot), cancellationToken: cancellationToken).ConfigureAwait(false); 323var snapshot = resourceEvent.Snapshot; 552if (versionsSeen.TryGetValue(item.ResourceId, out var maxVersionSeen) && item.Snapshot.Version <= maxVersionSeen)
Backchannel\AppHostRpcTarget.cs (4)
93var healthStatus = CustomResourceSnapshot.ComputeHealthStatus(resourceEvent.Snapshot.HealthReports, resourceEvent.Snapshot.State?.Text); 98Type = resourceEvent.Snapshot.ResourceType, 99State = resourceEvent.Snapshot.State?.Text ?? "Unknown",
Dashboard\DashboardServiceData.cs (1)
72var snapshot = CreateResourceSnapshot(@event.Resource, @event.ResourceId, timestamp, @event.Snapshot);
Devcontainers\Codespaces\CodespacesResourceUrlRewriterService.cs (2)
32foreach (var originalUrlSnapshot in resourceEvent.Snapshot.Urls) 57var transformedUrls = from originalUrl in resourceEvent.Snapshot.Urls
Exec\ExecResourceManager.cs (2)
133if ((exitCode = resourceEvent?.Snapshot?.ExitCode) is not null) 144if (resourceEvent?.Snapshot.State == KnownResourceStates.FailedToStart)
Health\ResourceHealthCheckService.cs (7)
42if (resourceEvent.Snapshot.State?.Text == KnownResourceStates.Running) 73else if (KnownResourceStates.TerminalStates.Contains(resourceEvent.Snapshot.State?.Text)) 177if (ContainsAnyHealthReportChange(report, currentEvent.Snapshot.HealthReports)) 375if (currentEvent.Snapshot.Version <= previousEvent.Snapshot.Version) 379if (currentEvent.Snapshot.State?.Text == previousEvent.Snapshot.State?.Text)
Orchestrator\ApplicationOrchestrator.cs (1)
92e => e.Snapshot.State?.Text != KnownResourceStates.Waiting,
ResourceBuilderExtensions.cs (1)
1902var resourceState = resourceEvent.Snapshot.State?.Text;
Aspire.Hosting.Azure.Tests (1)
AzureBicepProvisionerTests.cs (1)
68var parentProperty = resourceEvent.Snapshot.Properties.FirstOrDefault(x => x.Name == KnownProperties.Resource.ParentName)?.Value?.ToString();
Aspire.Hosting.Containers.Tests (2)
DockerSocketBindMountTests.cs (2)
42e => KnownResourceStates.TerminalStates.Contains(e.Snapshot.State?.Text), 45Assert.Equal(KnownResourceStates.Exited, state.Snapshot.State);
Aspire.Hosting.MySql.Tests (2)
MySqlFunctionalTests.cs (2)
601return evt.Snapshot.Properties.FirstOrDefault(x => x.Name == "container.id")?.Value != null; 604return resourceEvent.Snapshot.Properties.FirstOrDefault(x => x.Name == "container.id")?.Value?.ToString();
Aspire.Hosting.PostgreSQL.Tests (2)
PostgresFunctionalTests.cs (2)
580return evt.Snapshot.Properties.FirstOrDefault(x => x.Name == "container.id")?.Value != null; 583return resourceEvent.Snapshot.Properties.FirstOrDefault(x => x.Name == "container.id")?.Value?.ToString();
Aspire.Hosting.Qdrant.Tests (1)
QdrantFunctionalTests.cs (1)
279await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, (re => re.Snapshot.HealthStatus == HealthStatus.Healthy), cts.Token);
Aspire.Hosting.Tests (138)
Codespaces\CodespacesUrlRewriterTests.cs (3)
82var match = re.Snapshot.Urls.Length > 0 && re.Snapshot.Urls[0].Url.Contains("app.github.dev"); 88resourceEvent.Snapshot.Urls,
DistributedApplicationTests.cs (41)
133var resourceEvent = await rns.WaitForResourceAsync(dependentResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.Waiting).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 137await rns.WaitForResourceAsync(dependentResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.Running).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 141await rns.WaitForResourceAsync(dependentResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.Finished).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 145await rns.WaitForResourceAsync(dependentResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.Waiting).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 149await rns.WaitForResourceAsync(dependentResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.Running).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 177var notStartedResourceEvent = await rns.WaitForResourceAsync(notStartedResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.NotStarted).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 178var dependentResourceEvent = await rns.WaitForResourceAsync(dependentResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.Waiting).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 181Assert.Contains("TestProject.ServiceA.csproj", notStartedResourceEvent.Snapshot.Properties.Single(p => p.Name == "project.path").Value?.ToString()); 182Assert.Contains("TestProject.ServiceB.csproj", dependentResourceEvent.Snapshot.Properties.Single(p => p.Name == "project.path").Value?.ToString()); 184Assert.Collection(notStartedResourceEvent.Snapshot.Urls, u => 190Assert.Collection(dependentResourceEvent.Snapshot.Urls, u => 199var runningResourceEvent = await rns.WaitForResourceAsync(notStartedResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.Running).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 200Assert.Collection(runningResourceEvent.Snapshot.Urls, u => 207var dependentResourceRunningEvent = await rns.WaitForResourceAsync(dependentResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.Running).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 208Assert.Collection(dependentResourceRunningEvent.Snapshot.Urls, u => 216await rns.WaitForResourceAsync(notStartedResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.Finished).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 220await rns.WaitForResourceAsync(notStartedResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.Running).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 252var notStartedResourceEvent = await rns.WaitForResourceAsync(notStartedResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.NotStarted).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 253var dependentResourceEvent = await rns.WaitForResourceAsync(dependentResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.Waiting).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 255Assert.Collection(notStartedResourceEvent.Snapshot.Urls, u => 260Assert.Collection(dependentResourceEvent.Snapshot.Urls, u => 268Assert.Equal(RedisImageSource, notStartedResourceEvent.Snapshot.Properties.Single(p => p.Name == "container.image").Value?.ToString()); 269Assert.Contains("TestProject.ServiceB.csproj", dependentResourceEvent.Snapshot.Properties.Single(p => p.Name == "project.path").Value?.ToString()); 273var runningResourceEvent = await rns.WaitForResourceAsync(notStartedResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.Running).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 274Assert.Collection(runningResourceEvent.Snapshot.Urls, u => 280var dependentRunningResourceEvent = await rns.WaitForResourceAsync(dependentResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.Running).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 281Assert.Collection(dependentRunningResourceEvent.Snapshot.Urls, u => 289await rns.WaitForResourceAsync(notStartedResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.Exited).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 293await rns.WaitForResourceAsync(notStartedResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.Running).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 333notStartedResourceEvent = await rns.WaitForResourceAsync(notStartedResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.NotStarted).DefaultTimeout(TestConstants.ExtraLongTimeoutTimeSpan); 334dependentResourceEvent = await rns.WaitForResourceAsync(dependentResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.Waiting).DefaultTimeout(TestConstants.ExtraLongTimeoutTimeSpan); 336Assert.Collection(notStartedResourceEvent.Snapshot.Urls, u => 341Assert.Collection(dependentResourceEvent.Snapshot.Urls, u => 349Assert.Equal(RedisImageSource, notStartedResourceEvent.Snapshot.Properties.Single(p => p.Name == "container.image").Value?.ToString()); 350Assert.Contains("TestProject.ServiceB.csproj", dependentResourceEvent.Snapshot.Properties.Single(p => p.Name == "project.path").Value?.ToString()); 356var runningResourceEvent = await rns.WaitForResourceAsync(notStartedResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.Running).DefaultTimeout(TestConstants.ExtraLongTimeoutTimeSpan); 357Assert.Collection(runningResourceEvent.Snapshot.Urls, u => 363var dependentRunningResourceEvent = await rns.WaitForResourceAsync(dependentResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.Running).DefaultTimeout(TestConstants.ExtraLongTimeoutTimeSpan); 364Assert.Collection(dependentRunningResourceEvent.Snapshot.Urls, u => 372await rns.WaitForResourceAsync(notStartedResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.Exited).DefaultTimeout(TestConstants.ExtraLongTimeoutTimeSpan); 379await rns.WaitForResourceAsync(notStartedResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.Running).DefaultTimeout(TestConstants.ExtraLongTimeoutTimeSpan);
ExternalServiceTests.cs (6)
299e => e.Snapshot.State?.Text == KnownResourceStates.FailedToStart 303Assert.Equal(KnownResourceStates.FailedToStart, resourceEvent.Snapshot.State?.Text); 326e => e.Snapshot.State?.Text == KnownResourceStates.FailedToStart 330Assert.Equal(KnownResourceStates.FailedToStart, resourceEvent.Snapshot.State?.Text); 353e => e.Snapshot.State?.Text == KnownResourceStates.Running 357Assert.Equal(KnownResourceStates.Running, resourceEvent.Snapshot.State?.Text);
Health\ResourceHealthCheckServiceTests.cs (24)
37var startingEvent = await app.ResourceNotifications.WaitForResourceAsync("resource", e => e.Snapshot.State?.Text == KnownResourceStates.Starting).DefaultTimeout(); 38Assert.Null(startingEvent.Snapshot.HealthStatus); 46Assert.Equal(HealthStatus.Healthy, healthyEvent.Snapshot.HealthStatus); 77var startingEvent = await app.ResourceNotifications.WaitForResourceAsync("resource", e => e.Snapshot.State?.Text == KnownResourceStates.Starting).DefaultTimeout(); 78Assert.Null(startingEvent.Snapshot.HealthStatus); 85var runningEvent = await app.ResourceNotifications.WaitForResourceAsync("resource", e => e.Snapshot.State?.Text == KnownResourceStates.Running).DefaultTimeout(); 87Assert.Equal(HealthStatus.Unhealthy, runningEvent.Snapshot.HealthStatus); 120var startingEvent = await app.ResourceNotifications.WaitForResourceAsync("resource", e => e.Snapshot.State?.Text == KnownResourceStates.Starting).DefaultTimeout(); 121Assert.Null(startingEvent.Snapshot.HealthStatus); 129e => e.Snapshot.State?.Text == KnownResourceStates.Running && e.Snapshot.HealthReports.Single().Status == HealthStatus.Unhealthy).DefaultTimeout(); 131Assert.Equal(HealthStatus.Unhealthy, runningEvent.Snapshot.HealthStatus); 132Assert.Equal("Error calling HealthCheckService.", runningEvent.Snapshot.HealthReports.Single().Description); 586var startingEvent = await app.ResourceNotifications.WaitForResourceAsync("resource", e => e.Snapshot.State?.Text == KnownResourceStates.Starting).DefaultTimeout(); 587Assert.Null(startingEvent.Snapshot.HealthStatus); 595var runningEvent = await app.ResourceNotifications.WaitForResourceAsync("resource", e => e.Snapshot.State?.Text == KnownResourceStates.Running).DefaultTimeout(); 596Assert.Equal(HealthStatus.Unhealthy, runningEvent.Snapshot.HealthStatus); 603Assert.Equal(HealthStatus.Healthy, healthyEvent.Snapshot.HealthStatus); 632var startingEvent = await app.ResourceNotifications.WaitForResourceAsync("resource", e => e.Snapshot.State?.Text == KnownResourceStates.Starting).DefaultTimeout(); 633Assert.Null(startingEvent.Snapshot.HealthStatus); 640var runningEvent = await app.ResourceNotifications.WaitForResourceAsync("resource", e => e.Snapshot.State?.Text == KnownResourceStates.Running).DefaultTimeout(); 642Assert.Equal(HealthStatus.Unhealthy, runningEvent.Snapshot.HealthStatus); 648var unhealthyEvent = await app.ResourceNotifications.WaitForResourceAsync("resource", e => e.Snapshot.HealthStatus == HealthStatus.Unhealthy).DefaultTimeout(); 649Assert.Equal(HealthStatus.Unhealthy, unhealthyEvent.Snapshot.HealthStatus);
Orchestrator\ApplicationOrchestratorTests.cs (8)
47childParentResourceId = item.Snapshot.Properties.SingleOrDefault(p => p.Name == KnownProperties.Resource.ParentName)?.Value?.ToString(); 94childParentResourceId = item.Snapshot.Properties.SingleOrDefault(p => p.Name == KnownProperties.Resource.ParentName)?.Value?.ToString(); 193childParentResourceId = item.Snapshot.Properties.SingleOrDefault(p => p.Name == KnownProperties.Resource.ParentName)?.Value?.ToString(); 197nestedChildParentResourceId = item.Snapshot.Properties.SingleOrDefault(p => p.Name == KnownProperties.Resource.ParentName)?.Value?.ToString(); 201child2ParentResourceId = item.Snapshot.Properties.SingleOrDefault(p => p.Name == KnownProperties.Resource.ParentName)?.Value?.ToString(); 261childParentResourceId = item.Snapshot.Properties.SingleOrDefault(p => p.Name == KnownProperties.Resource.ParentName)?.Value?.ToString(); 308projectBParentResourceId = item.Snapshot.Properties.SingleOrDefault(p => p.Name == KnownProperties.Resource.ParentName)?.Value?.ToString(); 419var connectionStringProp = item.Snapshot.Properties.SingleOrDefault(p => p.Name == KnownProperties.Resource.ConnectionString);
Orchestrator\ParameterProcessorTests.cs (8)
82updates.Add((resourceEvent.Resource, resourceEvent.Snapshot)); 250Assert.Equal(KnownResourceStates.Running, updates.Current.Snapshot.State?.Text); 251Assert.Equal("value1", updates.Current.Snapshot.Properties.FirstOrDefault(p => p.Name == KnownProperties.Parameter.Value)?.Value); 254Assert.Equal(KnownResourceStates.Running, updates.Current.Snapshot.State?.Text); 255Assert.Equal("value2", updates.Current.Snapshot.Properties.FirstOrDefault(p => p.Name == KnownProperties.Parameter.Value)?.Value); 258Assert.Equal(KnownResourceStates.Running, updates.Current.Snapshot.State?.Text); 259Assert.Equal("secretValue", updates.Current.Snapshot.Properties.FirstOrDefault(p => p.Name == KnownProperties.Parameter.Value)?.Value); 260Assert.True(updates.Current.Snapshot.Properties.FirstOrDefault(p => p.Name == KnownProperties.Parameter.Value)?.IsSensitive ?? false);
ResourceNotificationTests.cs (20)
81Assert.Equal("CustomResource", c.Snapshot.ResourceType); 82Assert.Equal("value", c.Snapshot.Properties.Single(p => p.Name == "A").Value); 83Assert.Null(c.Snapshot.HealthStatus); 89Assert.Equal("CustomResource", c.Snapshot.ResourceType); 90Assert.Equal("value", c.Snapshot.Properties.Single(p => p.Name == "B").Value); 91Assert.Null(c.Snapshot.HealthStatus); 136Assert.Equal("CustomResource", c.Snapshot.ResourceType); 137Assert.Equal("value", c.Snapshot.Properties.Single(p => p.Name == "A").Value); 143Assert.Equal("CustomResource", c.Snapshot.ResourceType); 144Assert.Equal("value", c.Snapshot.Properties.Single(p => p.Name == "B").Value); 150Assert.Equal("CustomResource", c.Snapshot.ResourceType); 151Assert.Equal("value", c.Snapshot.Properties.Single(p => p.Name == "C").Value); 483Assert.Equal("ExistingIcon", firstEvent.Snapshot.IconName); 484Assert.Equal(IconVariant.Filled, firstEvent.Snapshot.IconVariant); 488Assert.Equal("ExistingIcon", secondEvent.Snapshot.IconName); 489Assert.Equal(IconVariant.Filled, secondEvent.Snapshot.IconVariant); 490Assert.Equal("Running", secondEvent.Snapshot.State?.Text); 524Assert.Equal("AnnotationIcon", value.Snapshot.IconName); 525Assert.Equal(IconVariant.Regular, value.Snapshot.IconVariant); 526Assert.Equal("Starting", value.Snapshot.State?.Text);
WithHttpCommandTests.cs (2)
386var commandSnapshot = resourceEvent.Snapshot.Commands.First(c => c.Name == "mycommand"); 456var commandSnapshot = resourceEvent.Snapshot.Commands.First(c => c.Name == "mycommand");
WithUrlsTests.cs (26)
333if (notification.Snapshot.Urls.Length > 0 && initialUrlSnapshot == default) 335initialUrlSnapshot = notification.Snapshot.Urls; 369if (notification.Snapshot.Urls.Length > 0 && initialUrlSnapshot == default) 371initialUrlSnapshot = notification.Snapshot.Urls; 413if (!projectRunning && notification.Snapshot.State == KnownResourceStates.Running) 416Assert.Equal(2, notification.Snapshot.Urls.Length); 417Assert.Collection(notification.Snapshot.Urls, 502if (notification.Resource == servicea.Resource && notification.Snapshot.Urls.Length > 0) 506var urls = notification.Snapshot.Urls; 514else if (!projectEndpointsAllocated && notification.Snapshot.Urls.Length == 2) 516var urls = notification.Snapshot.Urls; 526else if (!projectRunning && notification.Snapshot.State == KnownResourceStates.Running && 528notification.Snapshot.Urls[^1].IsInactive == false && 529notification.Snapshot.Urls[^2].IsInactive == false) 531var urls = notification.Snapshot.Urls; 542else if (notification.Resource == custom.Resource && notification.Snapshot.Urls.Length > 0) 546var urls = notification.Snapshot.Urls; 554else if (!customEndpointsAllocated && notification.Snapshot.Urls.Length == 2) 556var urls = notification.Snapshot.Urls; 566else if (!customRunning && notification.Snapshot.State == KnownResourceStates.Running && 568notification.Snapshot.Urls[^1].IsInactive == false && 569notification.Snapshot.Urls[^2].IsInactive == false) 571var urls = notification.Snapshot.Urls; 623if (string.Equals(notification.Snapshot.State?.Text, KnownResourceStates.Running)) 625if (notification.Snapshot.Urls.Length > 1 && urlSnapshot == default) 627urlSnapshot = notification.Snapshot.Urls;
Aspire.Playground.Tests (2)
Infrastructure\DistributedApplicationExtensions.cs (2)
106return Task.WhenAll(applicationModel.Resources.Select(r => app.ResourceNotifications.WaitForResourceAsync(r.Name, r => targetStates?.Contains(r.Snapshot.State?.Text, StringComparer.OrdinalIgnoreCase) is true || r.Snapshot.IsHidden, cancellationToken)));