Vixen
caa30e12
csharp
public interface ILiveOperations

What `vixen live` asks a running fleet.

Read the guide page for this →

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