public interface ILiveOperationsWhat `vixen live` asks a running fleet.
Remarks
Doc 27 § Diagnostics wants these operations "in a terminal, because 3 a.m." — the same things the dashboard does, reachable from a machine with no browser and no VPN into whatever hosts the panel.
⚠ A seam, so the verbs are testable without a cluster. The same shape IFleetDirectory takes in the gate and IClusterApi takes in the Kubernetes backend: what is worth asserting is the formatting and the argument handling, and neither needs a silo. Behind it is ClusterLiveOperations and a real one.
Methods (5)
Task<IReadOnlyList<ShardReport>> ShardsAsync(ShardKey key, CancellationToken cancellation)Every shard of a map.
Task DrainAsync(ShardId shard, string reason, CancellationToken cancellation)Tells a shard to move its players out.
Task<string> ExplainAsync(ShardKey key, PlayerKey player, CancellationToken cancellation)Why a player went where they went.
Task<(RealmVersion Target, double Spread)> RolloutAsync(string region, CancellationToken cancellation)What a region's fleet is aiming at, and how far it has got.
Task SetTargetAsync(string region, RealmVersion version, CancellationToken cancellation)Points a region's fleet at a version. Rolling back is this with the old pair.
Used by (4)
- ClusterLiveOperationsVixen.Cli
- FakeFleetVixen.Cli.Tests
- LiveRunnerVixen.Cli
- VixenCommandVixen.Cli