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,15 @@
|
||||
namespace ScadaLink.Commons.Messages.Deployment;
|
||||
|
||||
/// <summary>
|
||||
/// Site→central response carrying the instance's currently-applied deployment
|
||||
/// state. If <see cref="IsDeployed"/> is <c>false</c> the instance has no
|
||||
/// deployed configuration at the site and <see cref="AppliedDeploymentId"/> /
|
||||
/// <see cref="AppliedRevisionHash"/> are <c>null</c>.
|
||||
/// </summary>
|
||||
public record DeploymentStateQueryResponse(
|
||||
string CorrelationId,
|
||||
string InstanceUniqueName,
|
||||
bool IsDeployed,
|
||||
string? AppliedDeploymentId,
|
||||
string? AppliedRevisionHash,
|
||||
DateTimeOffset Timestamp);
|
||||
Reference in New Issue
Block a user