Merge branch 'fix/standby-secret-mirror-status' (M1: standby mirror failures on the health report)
# Conflicts: # CLAUDE.md # docs/plans/2026-09-28-site-secrets-artifact-deploy-design.md
This commit is contained in:
@@ -559,6 +559,32 @@ public static class CentralControlDtoMapper
|
||||
dto.SiteAuditBacklog = snapshot;
|
||||
}
|
||||
|
||||
// Review finding M1: wrapper presence keeps null ("no data") distinct from empty.
|
||||
if (msg.SecretMirrorStatuses is { } mirrorStatuses)
|
||||
{
|
||||
var wrapper = new SecretMirrorStatusListDto();
|
||||
foreach (var node in mirrorStatuses)
|
||||
{
|
||||
var nodeDto = new SecretMirrorNodeStatusDto
|
||||
{
|
||||
NodeName = node.NodeName,
|
||||
CheckedAtUtc = Timestamp.FromDateTimeOffset(node.CheckedAtUtc),
|
||||
};
|
||||
foreach (var failure in node.Failures)
|
||||
{
|
||||
nodeDto.Failures.Add(new SecretMirrorFailureDto
|
||||
{
|
||||
SecretName = failure.SecretName,
|
||||
Message = failure.Message,
|
||||
});
|
||||
}
|
||||
|
||||
wrapper.Nodes.Add(nodeDto);
|
||||
}
|
||||
|
||||
dto.SecretMirrorStatuses = wrapper;
|
||||
}
|
||||
|
||||
return dto;
|
||||
}
|
||||
|
||||
@@ -620,6 +646,19 @@ public static class CentralControlDtoMapper
|
||||
OnDiskBytes: snapshot.OnDiskBytes);
|
||||
}
|
||||
|
||||
List<SecretMirrorNodeStatus>? mirrorStatuses = null;
|
||||
if (dto.SecretMirrorStatuses is { } mirrorWrapper)
|
||||
{
|
||||
mirrorStatuses = new List<SecretMirrorNodeStatus>(mirrorWrapper.Nodes.Count);
|
||||
foreach (var node in mirrorWrapper.Nodes)
|
||||
{
|
||||
mirrorStatuses.Add(new SecretMirrorNodeStatus(
|
||||
node.NodeName,
|
||||
node.CheckedAtUtc?.ToDateTimeOffset() ?? DateTimeOffset.MinValue,
|
||||
node.Failures.Select(f => new SecretMirrorFailure(f.SecretName, f.Message)).ToList()));
|
||||
}
|
||||
}
|
||||
|
||||
return new SiteHealthReport(
|
||||
SiteId: dto.SiteId,
|
||||
SequenceNumber: dto.SequenceNumber,
|
||||
@@ -657,6 +696,7 @@ public static class CentralControlDtoMapper
|
||||
DetachedScriptThreads = dto.DetachedScriptThreads,
|
||||
ScriptRunShedCount = dto.ScriptRunShedCount,
|
||||
SiteStreamAlarmDropCount = dto.SiteStreamAlarmDropCount,
|
||||
SecretMirrorStatuses = mirrorStatuses,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user