Form1 design unchanged; only MfApi restart and certificate recognition remain active. Co-authored-by: Cursor <cursoragent@cursor.com>
36 lines
1.3 KiB
C#
36 lines
1.3 KiB
C#
using ZA.CoreService.ESBCertificateManager.Models;
|
|
|
|
namespace ZA.CoreService.ESBCertificateManager.Services;
|
|
|
|
public sealed class RestartExecutor
|
|
{
|
|
private readonly IReadOnlyList<SonicConnection> _sonicConnections;
|
|
|
|
public RestartExecutor(IReadOnlyList<SonicConnection> sonicConnections)
|
|
{
|
|
_sonicConnections = sonicConnections;
|
|
}
|
|
|
|
public async Task<(bool Success, string Status, string? Detail)> ExecuteAsync(
|
|
DeploymentTarget target,
|
|
CancellationToken cancellationToken = default)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(target.ContainerName))
|
|
{
|
|
return (false, "Neustart fehlgeschlagen", $"Ziel '{target.Name}': ContainerName fehlt.");
|
|
}
|
|
|
|
SonicConnection? connection = _sonicConnections
|
|
.FirstOrDefault(c => string.Equals(c.Name, target.SonicConnectionName, StringComparison.OrdinalIgnoreCase));
|
|
|
|
if (connection is null)
|
|
{
|
|
return (false, "Sonic-Verbindung nicht gefunden",
|
|
$"Ziel '{target.Name}': SonicConnection '{target.SonicConnectionName}' fehlt in appsettings.");
|
|
}
|
|
|
|
using SonicManagementClient client = new(connection);
|
|
return await client.RestartContainerAsync(target.ContainerName, cancellationToken);
|
|
}
|
|
}
|