Linx.Cgroup.Reconcile.Report (Linx v0.1.0)

Copy Markdown View Source

The outcome of one Linx.Cgroup.Reconcile.reconcile/4 pass.

cgroup limit writes are independent per interface file, so the pass is best-effort: every op is attempted, and any that error land in :failed rather than aborting the rest. (It shares the report shape of Linx.Sysctl.Reconcile.Report and Linx.Netlink.Rtnl.Reconcile.Report; the struct is uniform, the strategy is per subsystem — see the reconcile design notes.)

Fields:

  • :converged?true iff nothing was left undone: no ops were needed, or every op applied.
  • :applied — ops that succeeded this pass, in attempt order.
  • :failed{op, %Linx.Cgroup.Error{}} pairs for ops that errored.
  • :pending — always [] for cgroup (best-effort attempts everything); the field exists for shape-parity with fail-fast subsystems.
  • :last_applied — the updated ownership map to thread into the next pass (see Linx.Cgroup.Reconcile). Carrying it here lets a loop do {:ok, report} = reconcile(cg, desired, report.last_applied) each tick.

Inspect

#Linx.Cgroup.Reconcile.Report<converged: 2 applied>
#Linx.Cgroup.Reconcile.Report<1 applied, 1 failed>

Summary

Types

t()

@type t() :: %Linx.Cgroup.Reconcile.Report{
  applied: [Linx.Cgroup.Reconcile.op()],
  converged?: boolean(),
  failed: [{Linx.Cgroup.Reconcile.op(), Linx.Cgroup.Error.t()}],
  last_applied: Linx.Cgroup.Reconcile.last_applied(),
  pending: [Linx.Cgroup.Reconcile.op()]
}