4b374fd177
- AdminProbeService routes TestDriverConnect through IAdminOperationsClient with a 65s outer guard (actor side already clamps to [1,60]). - Added generic AskAsync<T> to IAdminOperationsClient interface and AdminOperationsClient impl, delegating straight to the Akka proxy. - DriverTestConnectButton renders the button + inline result chip, auto-clears after 30s, disables during in-flight. - Wired into all 9 typed driver pages directly under the identity section. Sources timeout from the form's ProbeTimeoutSeconds; sources config JSON from the form's current Options (operator can test BEFORE saving).
28 lines
1.4 KiB
C#
28 lines
1.4 KiB
C#
using ZB.MOM.WW.OtOpcUa.Commons.Messages.Admin;
|
|
|
|
namespace ZB.MOM.WW.OtOpcUa.Commons.Interfaces;
|
|
|
|
/// <summary>
|
|
/// Cluster-singleton-proxy client for the <c>AdminOperationsActor</c>. The Blazor UI calls
|
|
/// this from any host (admin or driver role); the proxy routes the request to whichever node
|
|
/// holds the admin singleton.
|
|
/// </summary>
|
|
public interface IAdminOperationsClient
|
|
{
|
|
/// <summary>Starts a new deployment on the cluster-singleton admin operations actor.</summary>
|
|
/// <param name="createdBy">The user or system identifier triggering the deployment.</param>
|
|
/// <param name="ct">The cancellation token.</param>
|
|
/// <returns>A task representing the asynchronous operation containing the deployment start result.</returns>
|
|
Task<StartDeploymentResult> StartDeploymentAsync(string createdBy, CancellationToken ct);
|
|
|
|
/// <summary>
|
|
/// Generic Ask: forwards <paramref name="message"/> to the AdminOperationsActor
|
|
/// cluster-singleton proxy and awaits a reply of type <typeparamref name="T"/>.
|
|
/// The caller is responsible for applying any outer timeout via <paramref name="ct"/>.
|
|
/// </summary>
|
|
/// <typeparam name="T">Expected reply type.</typeparam>
|
|
/// <param name="message">The message to send.</param>
|
|
/// <param name="ct">Cancellation token (caller-controlled timeout).</param>
|
|
Task<T> AskAsync<T>(object message, CancellationToken ct);
|
|
}
|