Power Control

View as Markdown

See Operations Overview for the conventions (in-band failures, registered vs. ephemeral targets) referenced below.

All power RPCs are synchronous. Rack-scoped mutations hold an exclusive per-rack power guard and are refused while another rack power mutation is in progress.

RPCSync/AsyncBehaviorKey inputsKey outputs
SetPowerStateSyncApply one power operation to a single registered node.rack_id, node_id, operationstatus
BatchSetPowerStateSyncApply one operation to a caller-supplied ephemeral node set, independently per node.operation, nodes (with per-node endpoints + creds)NodeBatchResponse (node_results[], stats)
GetPowerStateSyncRead one registered node’s power state (read path, no guard).rack_id, node_idstatus, pstate
BatchGetPowerStateSyncRead power state for a caller-supplied ephemeral node set.nodesNodeBatchResponse + node_power_states[]
SequenceRackPowerSyncRun one operation across every node of a rack in its configured power-on order, holding the rack lock for the whole sequence.rack_id, operation (rack-level)status, message

Invalid operation enums are rejected with INVALID_ARGUMENT. A batch’s overall status is Success only when zero nodes failed. Switch nodes require a BMC endpoint (Redfish) for power operations.