Drop ping/list discovery, WinRM scripts, and heavy Java probing so only KnownContainers + MBean restart remain. Co-authored-by: Cursor <cursoragent@cursor.com>
49 lines
1.6 KiB
C#
49 lines
1.6 KiB
C#
using ZA.CoreService.ESBCertificateManager.Models;
|
|
|
|
namespace ZA.CoreService.ESBCertificateManager.Services;
|
|
|
|
/// <summary>
|
|
/// Liefert Ziele nur aus appsettings KnownContainers (kein Live-Ping/List).
|
|
/// </summary>
|
|
public sealed class SonicContainerDiscovery
|
|
{
|
|
private readonly IReadOnlyList<SonicConnection> _connections;
|
|
|
|
public SonicContainerDiscovery(IReadOnlyList<SonicConnection> connections)
|
|
{
|
|
_connections = connections;
|
|
}
|
|
|
|
public bool HasConnections => _connections.Count > 0;
|
|
public IReadOnlyList<SonicConnection> Connections => _connections;
|
|
|
|
public IReadOnlyList<DeploymentTarget> BuildTargetsFromConfig()
|
|
{
|
|
List<DeploymentTarget> 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;
|
|
}
|
|
}
|