Files
123123/ZA.CoreService.ESBCertificateManager/Services/RestartExecutor.cs
T
GizzlerandCursor d1b95bcb9d Keep original UI; drop unused deploy/XApi/WinRM/TLS/SQL paths.
Form1 design unchanged; only MfApi restart and certificate recognition remain active.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-24 11:09:46 +02:00

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