Documentation
¶
Overview ¶
Package control provides the adapters that plug Fort's deterministic components into the control-plane ports (ui.Dispatcher, ui.FlowRunner).
This is the composition seam for "control plane, optionally with execution":
- EngineDispatcher / FlowExecutor wrap the real router + DAG engine (full mode).
- QueueDispatcher boards tasks with no execution plane at all (control-only mode).
cmd/fort picks which adapters to wire; the ui module only ever sees the ports.
Index ¶
- type EngineDispatcher
- type FlowExecutor
- func (f FlowExecutor) Approve(runID, nodeID, edit string) error
- func (f FlowExecutor) Reject(runID, nodeID string) error
- func (f FlowExecutor) ResumeFlow(ctx context.Context, flowID, runID string) (ui.RunResult, error)
- func (f FlowExecutor) StartFlow(ctx context.Context, flowID, runID, payload string) (ui.RunResult, error)
- type QueueDispatcher
- type Roster
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type EngineDispatcher ¶
type EngineDispatcher struct {
// contains filtered or unexported fields
}
EngineDispatcher routes + dispatches via the deterministic engine.
func NewEngineDispatcher ¶
func NewEngineDispatcher(e *engine.Engine) EngineDispatcher
NewEngineDispatcher adapts an engine to ui.Dispatcher.
type FlowExecutor ¶
type FlowExecutor struct {
// contains filtered or unexported fields
}
FlowExecutor adapts the DAG executor to ui.FlowRunner (id-based).
func NewFlowExecutor ¶
func NewFlowExecutor(x *graph.Executor, flows []graph.Flow) FlowExecutor
NewFlowExecutor adapts a graph executor + flow set to ui.FlowRunner.
func (FlowExecutor) Approve ¶
func (f FlowExecutor) Approve(runID, nodeID, edit string) error
Approve records a gate approval.
func (FlowExecutor) Reject ¶
func (f FlowExecutor) Reject(runID, nodeID string) error
Reject records a gate rejection.
func (FlowExecutor) ResumeFlow ¶
ResumeFlow resumes the named flow.
type QueueDispatcher ¶
type QueueDispatcher struct {
// contains filtered or unexported fields
}
QueueDispatcher boards a task as a "queued" run with no execution plane.
func NewQueueDispatcher ¶
func NewQueueDispatcher(s *store.Store) QueueDispatcher
NewQueueDispatcher adapts a store to ui.Dispatcher for control-only mode.
type Roster ¶
type Roster struct {
// contains filtered or unexported fields
}
Roster adapts a live machine registry pointer to ui.MachineLister and tracks peer reachability by polling each machine's /health (spec 022). It reads the Live pointer on every call, so a registry installed after construction (e.g. a mesh enrollment) is visible without a restart (spec 024). The local machine is reachable by definition; peers start unreachable until first probed.
func (*Roster) Machines ¶
func (r *Roster) Machines() []ui.MachineStatus
Machines implements ui.MachineLister.