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;
}
}