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