150 references to Snapshot
Aspire.Hosting (27)
ApplicationModel\ResourceNotificationService.cs (11)
132&& resourceEvent.Snapshot.State?.Text is { Length: > 0 } stateText 162var resourceEvent = await WaitForResourceCoreAsync(dependency.Name, re => re.ResourceId == resourceId && IsContinuableState(waitBehavior, re.Snapshot), cancellationToken: cancellationToken).ConfigureAwait(false); 163var snapshot = resourceEvent.Snapshot; 197await WaitForResourceCoreAsync(dependency.Name, re => re.ResourceId == resourceId && re.Snapshot.HealthStatus == HealthStatus.Healthy, cancellationToken).ConfigureAwait(false); 202resourceEvent = await WaitForResourceCoreAsync(dependency.Name, re => re.ResourceId == resourceId && re.Snapshot.ResourceReadyEvent is not null, cancellationToken: cancellationToken).ConfigureAwait(false); 205await resourceEvent.Snapshot.ResourceReadyEvent!.EventTask.WaitAsync(cancellationToken).ConfigureAwait(false); 278var resourceEvent = await WaitForResourceCoreAsync(resourceName, re => ShouldYield(waitBehavior, re.Snapshot), cancellationToken: cancellationToken).ConfigureAwait(false); 280if (resourceEvent.Snapshot.HealthStatus != HealthStatus.Healthy) 324var resourceEvent = await WaitForResourceCoreAsync(dependency.Name, re => re.ResourceId == resourceId && IsKnownTerminalState(re.Snapshot), cancellationToken: cancellationToken).ConfigureAwait(false); 325var snapshot = resourceEvent.Snapshot; 493if (versionsSeen.TryGetValue(item.ResourceId, out var maxVersionSeen) && item.Snapshot.Version <= maxVersionSeen)
Backchannel\AppHostRpcTarget.cs (4)
66var healthStatus = CustomResourceSnapshot.ComputeHealthStatus(resourceEvent.Snapshot.HealthReports, resourceEvent.Snapshot.State?.Text); 71Type = resourceEvent.Snapshot.ResourceType, 72State = resourceEvent.Snapshot.State?.Text ?? "Unknown",
Dashboard\DashboardServiceData.cs (1)
70var 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
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)
90e => e.Snapshot.State?.Text != KnownResourceStates.Waiting,
ResourceBuilderExtensions.cs (1)
1710var 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)
43e => KnownResourceStates.TerminalStates.Contains(e.Snapshot.State?.Text), 46Assert.Equal(KnownResourceStates.Exited, state.Snapshot.State);
Aspire.Hosting.MySql.Tests (2)
MySqlFunctionalTests.cs (2)
600return evt.Snapshot.Properties.FirstOrDefault(x => x.Name == "container.id")?.Value != null; 603return resourceEvent.Snapshot.Properties.FirstOrDefault(x => x.Name == "container.id")?.Value?.ToString();
Aspire.Hosting.PostgreSQL.Tests (2)
PostgresFunctionalTests.cs (2)
581return evt.Snapshot.Properties.FirstOrDefault(x => x.Name == "container.id")?.Value != null; 584return resourceEvent.Snapshot.Properties.FirstOrDefault(x => x.Name == "container.id")?.Value?.ToString();
Aspire.Hosting.Qdrant.Tests (1)
QdrantFunctionalTests.cs (1)
280await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, (re => re.Snapshot.HealthStatus == HealthStatus.Healthy), cts.Token);
Aspire.Hosting.Tests (113)
Codespaces\CodespacesUrlRewriterTests.cs (3)
84var match = re.Snapshot.Urls.Length > 0 && re.Snapshot.Urls[0].Url.Contains("app.github.dev"); 90resourceEvent.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);
Health\ResourceHealthCheckServiceTests.cs (24)
38var startingEvent = await app.ResourceNotifications.WaitForResourceAsync("resource", e => e.Snapshot.State?.Text == KnownResourceStates.Starting).DefaultTimeout(); 39Assert.Null(startingEvent.Snapshot.HealthStatus); 47Assert.Equal(HealthStatus.Healthy, healthyEvent.Snapshot.HealthStatus); 78var startingEvent = await app.ResourceNotifications.WaitForResourceAsync("resource", e => e.Snapshot.State?.Text == KnownResourceStates.Starting).DefaultTimeout(); 79Assert.Null(startingEvent.Snapshot.HealthStatus); 86var runningEvent = await app.ResourceNotifications.WaitForResourceAsync("resource", e => e.Snapshot.State?.Text == KnownResourceStates.Running).DefaultTimeout(); 88Assert.Equal(HealthStatus.Unhealthy, runningEvent.Snapshot.HealthStatus); 121var startingEvent = await app.ResourceNotifications.WaitForResourceAsync("resource", e => e.Snapshot.State?.Text == KnownResourceStates.Starting).DefaultTimeout(); 122Assert.Null(startingEvent.Snapshot.HealthStatus); 130e => e.Snapshot.State?.Text == KnownResourceStates.Running && e.Snapshot.HealthReports.Single().Status == HealthStatus.Unhealthy).DefaultTimeout(); 132Assert.Equal(HealthStatus.Unhealthy, runningEvent.Snapshot.HealthStatus); 133Assert.Equal("Error calling HealthCheckService.", runningEvent.Snapshot.HealthReports.Single().Description); 591var startingEvent = await app.ResourceNotifications.WaitForResourceAsync("resource", e => e.Snapshot.State?.Text == KnownResourceStates.Starting).DefaultTimeout(); 592Assert.Null(startingEvent.Snapshot.HealthStatus); 600var runningEvent = await app.ResourceNotifications.WaitForResourceAsync("resource", e => e.Snapshot.State?.Text == KnownResourceStates.Running).DefaultTimeout(); 601Assert.Equal(HealthStatus.Unhealthy, runningEvent.Snapshot.HealthStatus); 608Assert.Equal(HealthStatus.Healthy, healthyEvent.Snapshot.HealthStatus); 637var startingEvent = await app.ResourceNotifications.WaitForResourceAsync("resource", e => e.Snapshot.State?.Text == KnownResourceStates.Starting).DefaultTimeout(); 638Assert.Null(startingEvent.Snapshot.HealthStatus); 645var runningEvent = await app.ResourceNotifications.WaitForResourceAsync("resource", e => e.Snapshot.State?.Text == KnownResourceStates.Running).DefaultTimeout(); 647Assert.Equal(HealthStatus.Unhealthy, runningEvent.Snapshot.HealthStatus); 653var unhealthyEvent = await app.ResourceNotifications.WaitForResourceAsync("resource", e => e.Snapshot.HealthStatus == HealthStatus.Unhealthy).DefaultTimeout(); 654Assert.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(); 186childParentResourceId = item.Snapshot.Properties.SingleOrDefault(p => p.Name == KnownProperties.Resource.ParentName)?.Value?.ToString(); 190nestedChildParentResourceId = item.Snapshot.Properties.SingleOrDefault(p => p.Name == KnownProperties.Resource.ParentName)?.Value?.ToString(); 194child2ParentResourceId = item.Snapshot.Properties.SingleOrDefault(p => p.Name == KnownProperties.Resource.ParentName)?.Value?.ToString(); 254childParentResourceId = item.Snapshot.Properties.SingleOrDefault(p => p.Name == KnownProperties.Resource.ParentName)?.Value?.ToString(); 301projectBParentResourceId = item.Snapshot.Properties.SingleOrDefault(p => p.Name == KnownProperties.Resource.ParentName)?.Value?.ToString(); 412var connectionStringProp = item.Snapshot.Properties.SingleOrDefault(p => p.Name == KnownProperties.Resource.ConnectionString);
ResourceNotificationTests.cs (12)
82Assert.Equal("CustomResource", c.Snapshot.ResourceType); 83Assert.Equal("value", c.Snapshot.Properties.Single(p => p.Name == "A").Value); 84Assert.Null(c.Snapshot.HealthStatus); 90Assert.Equal("CustomResource", c.Snapshot.ResourceType); 91Assert.Equal("value", c.Snapshot.Properties.Single(p => p.Name == "B").Value); 92Assert.Null(c.Snapshot.HealthStatus); 137Assert.Equal("CustomResource", c.Snapshot.ResourceType); 138Assert.Equal("value", c.Snapshot.Properties.Single(p => p.Name == "A").Value); 144Assert.Equal("CustomResource", c.Snapshot.ResourceType); 145Assert.Equal("value", c.Snapshot.Properties.Single(p => p.Name == "B").Value); 151Assert.Equal("CustomResource", c.Snapshot.ResourceType); 152Assert.Equal("value", c.Snapshot.Properties.Single(p => p.Name == "C").Value);
WithHttpCommandTests.cs (2)
387var commandSnapshot = resourceEvent.Snapshot.Commands.First(c => c.Name == "mycommand"); 457var commandSnapshot = resourceEvent.Snapshot.Commands.First(c => c.Name == "mycommand");
WithUrlsTests.cs (23)
341if (notification.Snapshot.Urls.Length > 0 && initialUrlSnapshot == default) 343initialUrlSnapshot = notification.Snapshot.Urls; 377if (notification.Snapshot.Urls.Length > 0 && initialUrlSnapshot == default) 379initialUrlSnapshot = notification.Snapshot.Urls; 465if (notification.Resource == servicea.Resource && notification.Snapshot.Urls.Length > 0) 469var urls = notification.Snapshot.Urls; 477else if (!projectEndpointsAllocated && notification.Snapshot.Urls.Length == 2) 479var urls = notification.Snapshot.Urls; 489else if (!projectRunning && notification.Snapshot.State == KnownResourceStates.Running && 491notification.Snapshot.Urls[^1].IsInactive == false && 492notification.Snapshot.Urls[^2].IsInactive == false) 494var urls = notification.Snapshot.Urls; 505else if (notification.Resource == custom.Resource && notification.Snapshot.Urls.Length > 0) 509var urls = notification.Snapshot.Urls; 517else if (!customEndpointsAllocated && notification.Snapshot.Urls.Length == 2) 519var urls = notification.Snapshot.Urls; 529else if (!customRunning && notification.Snapshot.State == KnownResourceStates.Running && 531notification.Snapshot.Urls[^1].IsInactive == false && 532notification.Snapshot.Urls[^2].IsInactive == false) 534var urls = notification.Snapshot.Urls; 586if (string.Equals(notification.Snapshot.State?.Text, KnownResourceStates.Running)) 588if (notification.Snapshot.Urls.Length > 1 && urlSnapshot == default) 590urlSnapshot = 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)));