feat(deployment-manager): resolve DeploymentManager-006 — query site deployment state before redeploy and reconcile
Adds DeploymentStateQuery request/response contracts (Commons), a site-side handler (SiteRuntime), a CommunicationService query method (Communication), and reconciliation in DeploymentService: when a prior record is InProgress or Failed-on-timeout, query the site; if it already holds the target revision hash mark the record Success without re-sending; on query failure fall through to a normal deploy (site-side stale-rejection is the safety net).
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
namespace ScadaLink.Commons.Messages.Deployment;
|
||||
|
||||
/// <summary>
|
||||
/// Central→site query for the currently-applied deployment state of a single
|
||||
/// instance. Issued by the Deployment Manager before a re-deploy when a prior
|
||||
/// deployment record is stuck <c>InProgress</c> or <c>Failed</c> due to a
|
||||
/// timeout, so the site's actual state can be reconciled against the target
|
||||
/// revision before re-sending a deployment ("Deployment Identity & Idempotency").
|
||||
/// </summary>
|
||||
public record DeploymentStateQueryRequest(
|
||||
string CorrelationId,
|
||||
string InstanceUniqueName,
|
||||
DateTimeOffset Timestamp);
|
||||
Reference in New Issue
Block a user