fix(host): unify active-node on oldest-member semantics — purge/self-report/labels now track the singleton host

This commit is contained in:
Joseph Doherty
2026-07-08 15:48:07 -04:00
parent 6320be9954
commit da6d5ae12c
5 changed files with 70 additions and 21 deletions
@@ -33,9 +33,7 @@ public class AkkaClusterNodeProvider : IClusterNodeProvider
var system = _akkaService.ActorSystem;
if (system == null) return false;
var cluster = Cluster.Get(system);
if (cluster.SelfMember.Status != MemberStatus.Up) return false;
var leader = cluster.State.Leader;
return leader != null && leader.Equals(cluster.SelfAddress);
return ClusterActivityEvaluator.SelfIsOldest(cluster, _siteRole);
}
}
@@ -46,8 +44,7 @@ public class AkkaClusterNodeProvider : IClusterNodeProvider
if (system == null) return [];
var cluster = Cluster.Get(system);
var selfAddress = cluster.SelfAddress;
var leader = cluster.State.Leader;
var oldest = ClusterActivityEvaluator.OldestUpMember(cluster, _siteRole);
var nodes = new List<NodeStatus>();
foreach (var member in cluster.State.Members)
@@ -57,8 +54,8 @@ public class AkkaClusterNodeProvider : IClusterNodeProvider
var hostname = member.Address.Host ?? member.Address.ToString();
var isOnline = member.Status == MemberStatus.Up;
var isLeader = member.Address.Equals(leader);
var role = isLeader ? "Primary" : "Standby";
var isPrimary = oldest != null && member.UniqueAddress.Equals(oldest.UniqueAddress);
var role = isPrimary ? "Primary" : "Standby";
nodes.Add(new NodeStatus(hostname, isOnline, role));
}