using ZA.CoreService.ESBCertificateManager.Models; namespace ZA.CoreService.ESBCertificateManager.Services; /// /// Liefert Ziele nur aus appsettings KnownContainers (kein Live-Ping/List). /// public sealed class SonicContainerDiscovery { private readonly IReadOnlyList _connections; public SonicContainerDiscovery(IReadOnlyList connections) { _connections = connections; } public bool HasConnections => _connections.Count > 0; public IReadOnlyList Connections => _connections; public IReadOnlyList BuildTargetsFromConfig() { List result = []; int id = 1; foreach (SonicConnection connection in _connections) { foreach (string containerName in connection.KnownContainers .Where(n => !string.IsNullOrWhiteSpace(n))) { result.Add(new DeploymentTarget { Id = id++, Name = $"{connection.Name} / {containerName}", Environment = connection.DomainName, IsActive = true, TargetDirectory = string.Empty, CertificateFileName = string.Empty, ContainerName = containerName.Trim(), RestartType = RestartType.SonicContainer, SonicConnectionName = connection.Name, SortOrder = id * 10 }); } } return result; } }