Implemented interface member:
226 references to Metadata
Aspire.Hosting (131)
Dcp\AppResource.cs (5)
25public string DcpResourceName => DcpResource.Metadata.Name; 53dr.Metadata.Name == odr.Metadata.Name && 54dr.Metadata.NamespaceProperty == odr.Metadata.NamespaceProperty;
Dcp\ContainerCreator.cs (7)
395var containerExes = _appResources.Get().OfType<RenderedModelResource<ContainerExec>>().Where(ar => ar.DcpResource.Spec.ContainerName == dcpContainer.Metadata.Name).ToArray(); 456ServerServiceName = serverSvc.DcpResource.Metadata.Name, 458ClientServiceName = svc.Metadata.Name, 466svc.Annotate(CustomResource.PrimaryServiceNameAnnotation, serverSvc.DcpResource.Metadata.Name); 622observedProxy.Metadata.Name, 629? $"'{observedProxy.Metadata.Name}': {observedProxy.Status?.Message ?? noDetailsAvailable}" 630: $"'{observedProxy.Metadata.Name}': did not reach a stable state (current state: '{observedProxy.Status?.State ?? "(unknown)"}')";
Dcp\DcpExecutor.cs (20)
403var name = o.Metadata.Name; 428if (!objectsByName.TryGetValue(observed.Metadata.Name, out var original)) 434if (pending.Contains(observed.Metadata.Name) && isInDesiredState(original, observed)) 436pending.Remove(observed.Metadata.Name); 481HashSet<string> stillPending = [.. needAddressAllocated.Select(s => s.Metadata.Name)]; 496activity.AddDcpServiceAddressAllocated(original.Metadata.Name); 505if (stillPending.Contains(sar.Metadata.Name)) 507_distributedApplicationLogger.LogWarning("Unable to allocate a network port for service '{ServiceName}'; service may be unreachable and its clients may not work properly.", sar.Metadata.Name); 508activity.AddDcpServiceAddressAllocationFailed(sar.Metadata.Name); 523PrimaryServiceName: r.DcpResource.Metadata.Annotations?.TryGetValue(CustomResource.PrimaryServiceNameAnnotation, out var psn) == true ? psn : null) 530.First(svc => svc.Metadata.Name.Equals(cs.PrimaryServiceName)); 562latest[obj.Metadata.Name] = obj; 574latest[observed.Metadata.Name] = observed; 964r.DcpResource.Metadata.Name, 984r.DcpResource.Metadata.Name, 1054await _executorEvents.PublishAsync(new OnResourceFailedToStartContext(cancellationToken, resourceType, er.ModelResource, er.DcpResource.Metadata.Name, ex.Message)).ConfigureAwait(false); 1059await _executorEvents.PublishAsync(new OnResourceFailedToStartContext(cancellationToken, resourceType, er.ModelResource, er.DcpResource.Metadata.Name)).ConfigureAwait(false); 1118.Where(r => string.Equals(r.DcpResource.Metadata.Name, resourceName, StringComparisons.ResourceName)) 1149var cu = await _kubernetesService.GetAsync<Container>(c.Metadata.Name, cancellationToken: attemptCancellationToken).ConfigureAwait(false); 1164var eu = await _kubernetesService.GetAsync<Executable>(e.Metadata.Name, cancellationToken: attemptCancellationToken).ConfigureAwait(false);
Dcp\DcpModelUtilities.cs (17)
92var spAnn = new ServiceProducerAnnotation(sp.Service.Metadata.Name); 101if (resource is Executable exe && exe.Metadata.Annotations.TryGetValue(CustomResource.ResourceReplicaCount, out var value) && int.TryParse(value, CultureInfo.InvariantCulture, out var replicas) && replicas > 1) 142.FirstOrDefault(swr => string.Equals(swr.DcpResource.Metadata.Name, observedService.Metadata.Name, StringComparison.Ordinal)); 181throw new InvalidDataException($"Service {svc.Metadata.Name} should have valid address at this point"); 191throw new InvalidOperationException($"Service '{svc.Metadata.Name}' needs to specify a port for endpoint '{sp.EndpointAnnotation.Name}' since it isn't using a proxy."); 201throw new InvalidDataException($"Service {svc.Metadata.Name} should have valid address at this point"); 211targetPortExpression: $$$"""{{- portForServing "{{{svc.Metadata.Name}}}" -}}""", 240targetPortExpression: $$$"""{{- portForServing "{{{sp.DcpResource.Metadata.Name}}}" -}}""", 261targetPortExpression: $$$"""{{- portForServing "{{{sp.DcpResource.Metadata.Name}}}" -}}""", 284ResourceName: r.DcpResource.Metadata.Annotations?.TryGetValue(CustomResource.ResourceNameAnnotation, out var resourceName) == true ? resourceName : null, 285EndpointName: r.DcpResource.Metadata.Annotations?.TryGetValue(CustomResource.EndpointNameAnnotation, out var endpointName) == true ? endpointName : null, 286TunnelInstanceName: r.DcpResource.Metadata.Annotations?.TryGetValue(CustomResource.ContainerTunnelInstanceName, out var tunnelInstanceName) == true ? tunnelInstanceName : null, 287ContainerNetworkName: r.DcpResource.Metadata.Annotations?.TryGetValue(CustomResource.ContainerNetworkAnnotation, out var containerNetworkName) == true ? containerNetworkName : null 300throw new InvalidDataException($"Service '{ts.Service!.Metadata.Name}' refers to endpoint '{ts.EndpointName}' that does not exist"); 306throw new InvalidDataException($"Container tunnel service {ts.Service?.Metadata.Name} should have valid address at this point"); 328targetPortExpression: $$$"""{{- portForServing "{{{ts.Service.Metadata.Name}}}" -}}""",
Dcp\DcpResourceWatcher.cs (33)
278ResetResourceLogState(resource.Metadata.Name); 301_logger.LogTrace("Deleting application model resource {AppResourceName} with {ResourceKind} resource {DcpResourceName}", appModelResource.Name, resourceKind, resource.Metadata.Name); 308_logger.LogTrace("Updating application model resource {AppResourceName} with {ResourceKind} resource {DcpResourceName}", appModelResource.Name, resourceKind, resource.Metadata.Name); 337_loggerService.HasActiveSubscribers(resource.Metadata.Name) && 338!_allLogsFlushed.ContainsKey(resource.Metadata.Name)) 343_allLogsFlushed.TryAdd(resource.Metadata.Name, true); 349_allLogsFlushed.TryRemove(resource.Metadata.Name, out _); 352await _executorEvents.PublishAsync(new OnResourceChangedContext(_shutdownToken, resourceType, appModelResource, resource.Metadata.Name, status, s => snapshotFactory(resource, s))).ConfigureAwait(false); 362!_allLogsFlushed.ContainsKey(resource.Metadata.Name); 363_logInformationChannel.Writer.TryWrite(new(resource.Metadata.Name, LogsAvailable: true, HasSubscribers: null, ShouldStartStream: shouldStartStream)); 372_logger.LogTrace("No application model resource found for {ResourceKind} resource {ResourceName}", resourceKind, resource.Metadata.Name); 383_resourceState.ResourceAssociatedServicesMap.Remove((resourceKind, resource.Metadata.Name), out _); 385else if (resource.Metadata.Annotations?.TryGetValue(CustomResource.ServiceProducerAnnotation, out var servicesProducedAnnotationJson) == true) 390_resourceState.ResourceAssociatedServicesMap[(resourceKind, resource.Metadata.Name)] 471_logger.LogDebug("Current log flush for {ResourceName} timed out after {Timeout}.", resource.Metadata.Name, _terminalLogFlushTimeout); 475_logger.LogDebug("Current log flush for {ResourceName} ended because the resource was deleted.", resource.Metadata.Name); 479_logger.LogError(ex, "Error flushing current logs for {ResourceName}.", resource.Metadata.Name); 485SetPendingFollowLogDeduplication(resource.Metadata.Name, resource.Metadata.Uid, logEntries); 486_loggerService.AddLogEntries(resource.Metadata.Name, logEntries, inMemorySource: false, skipExisting: true); 534resource.Metadata.Name, 538resource.Metadata.Annotations); 610var resourceName = resource.Metadata.Name; 611var logStream = new LogStreamState(resource.Metadata.Uid); 861if (endpoint.Metadata.OwnerReferences is null) 866foreach (var ownerReference in endpoint.Metadata.OwnerReferences) 884foreach (var ((resourceKind, resourceName), _) in _resourceState.ResourceAssociatedServicesMap.Where(e => e.Value.Contains(service.Metadata.Name))) 931var resourceKey = (T.ObjectKind, resource.Metadata.Name); 956var resourceUid = resource.Metadata.Uid; 957var resourceVersion = resource.Metadata.ResourceVersion; 970_logger.LogTrace("Ignoring {ResourceKind} resource {ResourceName} reported by the DCP watch because its resource version {ResourceVersion} is unchanged.", T.ObjectKind, resource.Metadata.Name, resourceVersion); 986map[resource.Metadata.Name] = resource; 991map.Remove(resource.Metadata.Name, out _);
Dcp\ExecutableConfigurationResolver.cs (2)
172return Path.Join(_aspireStore.BasePath, "dcp", "executables", executable.Metadata.Name, "certificates"); 175return Path.Join(_locations.DcpSessionDir, executable.Metadata.Name);
Dcp\ExecutableCreator.cs (2)
185executable.Metadata.Annotations?.Remove(Executable.LaunchConfigurationsAnnotation); 323return executable.Metadata.Annotations is { } annotations &&
Dcp\KubernetesService.cs (4)
180obj.Metadata.Name, 188obj.Metadata.Name, 356obj.Metadata.Name, 358obj.Metadata.Namespace(),
Dcp\Model\Container.cs (2)
611c.Metadata.Name = name; 612c.Metadata.NamespaceProperty = string.Empty;
Dcp\Model\ContainerExec.cs (2)
137containerExec.Metadata.Name = name; 138containerExec.Metadata.NamespaceProperty = string.Empty;
Dcp\Model\ContainerNetwork.cs (2)
91c.Metadata.Name = name; 92c.Metadata.NamespaceProperty = string.Empty;
Dcp\Model\ContainerTunnel.cs (2)
283tp.Metadata.Name = name; 284tp.Metadata.NamespaceProperty = string.Empty;
Dcp\Model\ContainerVolume.cs (2)
78containerVolume.Metadata.Name = name; 79containerVolume.Metadata.NamespaceProperty = string.Empty;
Dcp\Model\Endpoint.cs (2)
48e.Metadata.Name = name; 49e.Metadata.NamespaceProperty = string.Empty;
Dcp\Model\Executable.cs (2)
299exe.Metadata.Name = name; 300exe.Metadata.NamespaceProperty = string.Empty;
Dcp\Model\ExecutableReplicaSet.cs (2)
107ers.Metadata.Name = name; 108ers.Metadata.NamespaceProperty = string.Empty;
Dcp\Model\ModelCommon.cs (12)
40public string? AppModelResourceName => Metadata.Annotations?.TryGetValue(ResourceNameAnnotation, out var value) is true ? value : null; 42public string? AppModelInitialState => Metadata.Annotations?.TryGetValue(ResourceStateAnnotation, out var value) is true ? value : null; 49if (Metadata.Annotations is null) 51Metadata.Annotations = new Dictionary<string, string>(); 54Metadata.Annotations[annotationName] = value; 59if (Metadata.Annotations is null) 61Metadata.Annotations = new Dictionary<string, string>(); 64AnnotateAsObjectList<TValue>(Metadata.Annotations, annotationName, value); 69if (Metadata.Annotations is null) 71Metadata.Annotations = new Dictionary<string, string>(); 74Metadata.Annotations[annotationName] = JsonSerializer.Serialize<List<TValue>>(list.ToList()); 79return TryGetAnnotationAsObjectList<TValue>(Metadata.Annotations, annotationName, out list);
Dcp\Model\Service.cs (3)
83s.Metadata.Name = name; 84s.Metadata.NamespaceProperty = string.Empty; 93public string? EndpointName => Metadata.Annotations?.TryGetValue(EndpointNameAnnotation, out var value) is true ? value : null;
Dcp\ResourceLogSource.cs (2)
87logger.LogWarning("Failed to write log entry to channel. Logs for {Kind} {Name} may be incomplete", resource.Kind, resource.Metadata.Name); 99logger.LogError(ex, "Unexpected error happened when capturing logs for {Kind} {Name}", resource.Kind, resource.Metadata.Name);
Dcp\ResourceSnapshotBuilder.cs (8)
66CreationTimeStamp = container.Metadata.CreationTimestamp?.ToUniversalTime(), 126CreationTimeStamp = executable.Metadata.CreationTimestamp?.ToUniversalTime(), 195CreationTimeStamp = executable.Metadata.CreationTimestamp?.ToUniversalTime(), 217CreationTimeStamp = executable.Metadata.CreationTimestamp?.ToUniversalTime(), 298var name = resource.Metadata.Name; 304.Select(s => (s.EndpointName!, s.Metadata.Name))); 319&& e.Value.Metadata.OwnerReferences?.Any(or => or.Kind == resource.Kind && or.Name == name) == true) 352var isActive = _resourceState.EndpointsMap.Any(e => e.Value.Spec.ServiceName == endpointOwnerEndpoint?.Metadata.Name);
Aspire.Hosting.Tests (95)
Dcp\DcpExecutorTests.cs (70)
65Assert.Equal("CustomName", container.Metadata.Annotations["otel-service-name"]); 594var reference = appExecutor.GetResource(exe1.Metadata.Name); 1322var reference = appExecutor.GetResource(firstExecutable.Metadata.Name); 1360var reference = appExecutor.GetResource(firstContainer.Metadata.Name); 1477Assert.Equal(expectedName, exe.Metadata.Annotations[CustomResource.OtelServiceNameAnnotation]); 1515var watchLogs = resourceLoggerService.WatchAsync(exeResource.Metadata.Name); 1525Assert.Equal(exeResource.Metadata.Name, watchSubscribersEnumerator.Current.Name); 1552var loggerState = resourceLoggerService.GetResourceLoggerState(exeResource.Metadata.Name); 1565Assert.Equal(exeResource.Metadata.Name, watchSubscribersEnumerator.Current.Name); 1618var watchLogs1 = resourceLoggerService.WatchAsync(exeResource.Metadata.Name); 1624Assert.Equal(exeResource.Metadata.Name, watchSubscribersEnumerator.Current.Name); 1640var watchLogs2 = resourceLoggerService.WatchAsync(exeResource.Metadata.Name); 1704dcpResourceName = container.Metadata.Name; 1782using var subscription = resourceLoggerService.Subscribe(container.Metadata.Name, batch => 1795() => appExecutor.ResourceWatcher.GetLogStreamTask(container.Metadata.Name) is null, 1864dcpResourceName = container.Metadata.Name; 1902if (obj.Metadata.Name == blockingDcpResourceName && 1911if (obj.Metadata.Name == blockingDcpResourceName && 1956blockingDcpResourceName = blockingContainer.Metadata.Name; 1957otherDcpResourceName = otherContainer.Metadata.Name; 2037using var subscription = resourceLoggerService.Subscribe(container.Metadata.Name, batch => 2052() => appExecutor.ResourceWatcher.GetLogStreamTask(container.Metadata.Name) is null, 2117using var subscription = resourceLoggerService.Subscribe(container.Metadata.Name, batch => 2142Assert.True(appExecutor.ResourceWatcher.HasLogStreamPendingDeduplication(container.Metadata.Name)); 2155Assert.False(appExecutor.ResourceWatcher.HasLogStreamPendingDeduplication(container.Metadata.Name)); 2201using var subscription = resourceLoggerService.Subscribe(container.Metadata.Name, batch => 2216() => appExecutor.ResourceWatcher.GetLogStreamTask(container.Metadata.Name) is not null, 2218var firstLogStreamTask = appExecutor.ResourceWatcher.GetLogStreamTask(container.Metadata.Name); 2223Assert.Null(appExecutor.ResourceWatcher.GetLogStreamTask(container.Metadata.Name)); 2320dcpResourceName = container.Metadata.Name; 2321Assert.False(string.IsNullOrEmpty(container.Metadata.Uid)); 2476dcpResourceName = container.Metadata.Name; 2477Assert.False(string.IsNullOrEmpty(container.Metadata.Uid)); 2593container.Metadata.ResourceVersion = null; 2704container.Metadata.Uid = "database-instance-2"; 2744if (container.Metadata.Uid == previousResourceUid && 2750if (container.Metadata.Uid == replacementResourceUid && 2801dcpResourceName = container.Metadata.Name; 2802previousResourceUid = container.Metadata.Uid; 2840container.Metadata.Uid = replacementResourceUid; 2984dcpResourceName = container.Metadata.Name; 3069dcpResourceName = container.Metadata.Name; 3170var watchLogs = resourceLoggerService.WatchAsync(exeResource.Metadata.Name); 3175Assert.Equal(exeResource.Metadata.Name, watchSubscribersEnumerator.Current.Name); 3231var watchLogs = resourceLoggerService.WatchAsync(exeResource.Metadata.Name); 3236Assert.Equal(exeResource.Metadata.Name, watchSubscribersEnumerator.Current.Name); 3296var watchLogs = resourceLoggerService.WatchAsync(exeResource.Metadata.Name); 3300Assert.Equal(exeResource.Metadata.Name, watchSubscribersEnumerator.Current.Name); 4142var resourceReference = appExecutor.GetResource(dcpCtr.Metadata.Name); 4145Assert.Equal($"Failed to delete '{dcpCtr.Metadata.Name}' successfully before restart.", ex.Message); 4240var annotations = container.Metadata.EnsureAnnotations(); 4737Assert.Equal("TestExecutable-12345678", exe.Metadata.Name); 5235r.Metadata.Annotations is not null && 5236r.Metadata.Annotations.ContainsKey(CustomResource.OtelServiceInstanceIdAnnotation)); 5238return resource.Metadata.Annotations![CustomResource.OtelServiceInstanceIdAnnotation]; 6500Assert.True(executable.Metadata.Annotations.TryGetValue( 8382var reference = appExecutor.GetResource(exe.Metadata.Name); 8390Assert.Equal([exe.Metadata.Name], kubernetesService.DeletedResources); 8586var reference = appExecutor.GetResource(executable.Metadata.Name); 8594Assert.Equal([executable.Metadata.Name], kubernetesService.DeletedResources); 8659var reference = appExecutor.GetResource(exe1.Metadata.Name); 8720var reference = appExecutor.GetResource(exe1.Metadata.Name); 8874&& x.Metadata.Annotations.ContainsKey(CustomResource.ContainerTunnelInstanceName)) 8956s => s.Metadata.Annotations.ContainsKey(CustomResource.ContainerTunnelInstanceName)); 8996&& s.Metadata.Annotations.ContainsKey(CustomResource.ContainerTunnelInstanceName)); 9441.Where(s => s.Metadata.Annotations.ContainsKey(CustomResource.ContainerTunnelInstanceName)) 9514.Where(s => s.Metadata.Annotations.ContainsKey(CustomResource.ContainerTunnelInstanceName)) 9867.OrderBy(e => e.Metadata.Annotations?[CustomResource.ResourceReplicaIndex], StringComparer.Ordinal) 9951Assert.Equal("1", exe.Metadata.Annotations?[CustomResource.ResourceReplicaCount]); 9952Assert.Equal("0", exe.Metadata.Annotations?[CustomResource.ResourceReplicaIndex]);
Dcp\ExecutableLaunchPlanTests.cs (1)
203Assert.False(executable.Metadata.Annotations?.ContainsKey(Executable.LaunchConfigurationsAnnotation) is true);
Dcp\TestKubernetesService.cs (16)
43: (obj, logStreamType, follow) => new MemoryStream(Encoding.UTF8.GetBytes($"Logs for {obj.Metadata.Name} ({logStreamType})"))); 58r.Metadata.Name == name && 59string.Equals(r.Metadata.NamespaceProperty ?? string.Empty, namespaceParameter ?? string.Empty) 79svc.Metadata.Annotations?.ContainsKey(CustomResource.ContainerTunnelInstanceName) is true) 182foreach (var res in CreatedResources.Where(r => !DeletedResources.Contains(r.Metadata.Name))) 198if (string.IsNullOrEmpty(resource.Metadata.Uid)) 200resource.Metadata.Uid = $"test-resource-{Interlocked.Increment(ref _nextResourceUid)}"; 211resource.Metadata.ResourceVersion = Interlocked.Increment(ref _nextResourceVersion).ToString(CultureInfo.InvariantCulture); 232var service = CreatedResources.OfType<Service>().FirstOrDefault(s => s.Metadata.Name == serviceProduced.ServiceName); 276string.Equals(r.Metadata.NamespaceProperty ?? string.Empty, namespaceParameter ?? string.Empty) 341r.Metadata.Name == obj.Metadata.Name && 342string.Equals(r.Metadata.NamespaceProperty, obj.Metadata.NamespaceProperty) 346throw new ArgumentException($"Resource '{obj.Metadata.NamespaceProperty}/{obj.Metadata.Name}' not found");
DistributedApplicationTests.cs (8)
936var redisContainer = Assert.Single(list, c => c.Metadata.Name.StartsWith($"{testName}-redis")); 1231await orchestrator.StopResourceAsync(redisContainer.Metadata.Name, token).DefaultTimeout(TestConstants.DefaultOrchestratorTestTimeout); 1236await orchestrator.StartResourceAsync(redisContainer.Metadata.Name, token); 1268await orchestrator.StopResourceAsync(serviceA.Metadata.Name, token).DefaultTimeout(TestConstants.DefaultOrchestratorTestTimeout); 1273await orchestrator.StartResourceAsync(serviceA.Metadata.Name, token).DefaultTimeout(TestConstants.DefaultOrchestratorTestTimeout); 1642Assert.True(resource.Item2.Metadata.Annotations.TryGetValue(Container.ResourceNameAnnotation, out var value)); 1656Assert.True(resource.Item2.Metadata.Annotations.TryGetValue(Executable.ResourceNameAnnotation, out var value)); 1923Assert.All(serviceList.Where(s => s.Metadata.Name.Contains("redis")), s => Assert.Equal(AddressAllocationModes.Proxyless, s.Spec.AddressAllocationMode));