Documentation
¶
Index ¶
- Constants
- Variables
- type Client
- type Def
- type Executor
- func (_c Executor) ForHost(host string) Executor
- func (_c Executor) Inner(ctx context.Context) (innerResult int, status string, err error)
- func (_c Executor) Nested(ctx context.Context) (finalResult string, status string, err error)
- func (_c Executor) NormalB(ctx context.Context) (normalResult string, err error)
- func (_c Executor) TaskA(ctx context.Context) (started bool, err error)
- func (_c Executor) TaskJ(ctx context.Context, normalResult string, innerResult int) (finalResult string, err error)
- func (_c Executor) TaskW(ctx context.Context, inner int) (innerResult int, err error)
- func (_c Executor) TaskX(ctx context.Context) (innerStarted bool, err error)
- func (_c Executor) TaskY(ctx context.Context) (innerOut int, err error)
- func (_c Executor) TaskZ(ctx context.Context) (innerOut int, err error)
- func (_c Executor) WithFlowOptions(flowOptions *workflow.FlowOptions) Executor
- func (_c Executor) WithInputFlow(flow *workflow.Flow) Executor
- func (_c Executor) WithOptions(opts ...pub.Option) Executor
- func (_c Executor) WithOutputFlow(flow *workflow.Flow) Executor
- func (_c Executor) WithWorkflowRunner(runner WorkflowRunner) Executor
- type Hook
- type InnerIn
- type InnerOut
- type MulticastClient
- type MulticastTrigger
- type NestedIn
- type NestedOut
- type NormalBIn
- type NormalBOut
- type RunInnerIn
- type RunInnerOut
- type TaskAIn
- type TaskAOut
- type TaskJIn
- type TaskJOut
- type TaskWIn
- type TaskWOut
- type TaskXIn
- type TaskXOut
- type TaskYIn
- type TaskYOut
- type TaskZIn
- type TaskZOut
- type WorkflowRunner
Constants ¶
const Hostname = "nestedfanoutflow.verify"
Hostname is the default hostname of the microservice.
Variables ¶
var ( // HINT: Insert endpoint definitions here TaskA = Def{Method: "POST", Route: ":428/task-a"} // MARKER: TaskA NormalB = Def{Method: "POST", Route: ":428/normal-b"} // MARKER: NormalB TaskX = Def{Method: "POST", Route: ":428/task-x"} // MARKER: TaskX TaskY = Def{Method: "POST", Route: ":428/task-y"} // MARKER: TaskY TaskZ = Def{Method: "POST", Route: ":428/task-z"} // MARKER: TaskZ TaskW = Def{Method: "POST", Route: ":428/task-w"} // MARKER: TaskW TaskJ = Def{Method: "POST", Route: ":428/task-j"} // MARKER: TaskJ RunInner = Def{Method: "POST", Route: ":428/run-inner"} // MARKER: RunInner Inner = Def{Method: "GET", Route: ":428/inner"} // MARKER: Inner Nested = Def{Method: "GET", Route: ":428/nested"} // MARKER: Nested )
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client is a lightweight proxy for making unicast calls to the microservice.
type Executor ¶
type Executor struct {
// contains filtered or unexported fields
}
Executor runs tasks and workflows synchronously, blocking until termination. It is primarily intended for integration tests.
func NewExecutor ¶
NewExecutor creates a new executor proxy to the microservice.
func (Executor) ForHost ¶
ForHost returns a copy of the executor with a different hostname to be applied to requests.
func (Executor) TaskJ ¶
func (_c Executor) TaskJ(ctx context.Context, normalResult string, innerResult int) (finalResult string, err error)
TaskJ creates and runs the TaskJ task.
func (Executor) WithFlowOptions ¶ added in v1.32.0
func (_c Executor) WithFlowOptions(flowOptions *workflow.FlowOptions) Executor
WithFlowOptions returns a copy of the executor that creates workflows with the given flow options (priority, fairness key and weight). It has no effect on task execution.
func (Executor) WithInputFlow ¶
WithInputFlow returns a copy of the executor with an input flow to use for task execution. The input flow's state is available to the task in addition to the typed input arguments.
func (Executor) WithOptions ¶
WithOptions returns a copy of the executor with options to be applied to requests.
func (Executor) WithOutputFlow ¶
WithOutputFlow returns a copy of the executor with an output flow to populate after task execution. The output flow captures the full flow state including control signals (Goto, Retry, Interrupt, Sleep).
func (Executor) WithWorkflowRunner ¶
func (_c Executor) WithWorkflowRunner(runner WorkflowRunner) Executor
WithWorkflowRunner returns a copy of the executor with a workflow runner for executing workflows. foremanapi.NewClient(svc) satisfies the WorkflowRunner interface.
type Hook ¶
type Hook struct {
// contains filtered or unexported fields
}
Hook assists in the subscription to the events of the microservice.
func NewHook ¶
func NewHook(listener service.Subscriber) Hook
NewHook creates a new hook to the events of the microservice.
type InnerOut ¶
type InnerOut struct {
InnerResult int `json:"innerResult,omitzero"`
}
InnerOut are the output arguments of Inner.
type MulticastClient ¶
type MulticastClient struct {
// contains filtered or unexported fields
}
MulticastClient is a lightweight proxy for making multicast calls to the microservice.
func NewMulticastClient ¶
func NewMulticastClient(caller service.Publisher) MulticastClient
NewMulticastClient creates a new multicast client proxy to the microservice.
func (MulticastClient) ForHost ¶
func (_c MulticastClient) ForHost(host string) MulticastClient
ForHost returns a copy of the client with a different hostname to be applied to requests.
func (MulticastClient) WithOptions ¶
func (_c MulticastClient) WithOptions(opts ...pub.Option) MulticastClient
WithOptions returns a copy of the client with options to be applied to requests.
type MulticastTrigger ¶
type MulticastTrigger struct {
// contains filtered or unexported fields
}
MulticastTrigger is a lightweight proxy for triggering the events of the microservice.
func NewMulticastTrigger ¶
func NewMulticastTrigger(caller service.Publisher) MulticastTrigger
NewMulticastTrigger creates a new multicast trigger of events of the microservice.
func (MulticastTrigger) ForHost ¶
func (_c MulticastTrigger) ForHost(host string) MulticastTrigger
ForHost returns a copy of the trigger with a different hostname to be applied to requests.
func (MulticastTrigger) WithOptions ¶
func (_c MulticastTrigger) WithOptions(opts ...pub.Option) MulticastTrigger
WithOptions returns a copy of the trigger with options to be applied to requests.
type NestedOut ¶
type NestedOut struct {
FinalResult string `json:"finalResult,omitzero"`
}
NestedOut are the output arguments of Nested.
type NormalBOut ¶
type NormalBOut struct {
NormalResult string `json:"normalResult,omitzero"`
}
NormalBOut are the output arguments of NormalB.
type RunInnerIn ¶ added in v1.37.0
type RunInnerIn struct {
}
RunInnerIn are the input arguments of RunInner.
type RunInnerOut ¶ added in v1.37.0
type RunInnerOut struct {
InnerResult int `json:"innerResult,omitzero"`
}
RunInnerOut are the output arguments of RunInner.
type TaskAOut ¶
type TaskAOut struct {
Started bool `json:"started,omitzero"`
}
TaskAOut are the output arguments of TaskA.
type TaskJIn ¶
type TaskJIn struct {
NormalResult string `json:"normalResult,omitzero"`
InnerResult int `json:"innerResult,omitzero"`
}
TaskJIn are the input arguments of TaskJ. Reads both branches' results.
type TaskJOut ¶
type TaskJOut struct {
FinalResult string `json:"finalResult,omitzero"`
}
TaskJOut are the output arguments of TaskJ.
type TaskWIn ¶
type TaskWIn struct {
Inner int `json:"inner,omitzero"`
}
TaskWIn are the input arguments of TaskW. Reads the merged `inner` field.
type TaskWOut ¶
type TaskWOut struct {
InnerResult int `json:"innerResult,omitzero"`
}
TaskWOut are the output arguments of TaskW.
type TaskXOut ¶
type TaskXOut struct {
InnerStarted bool `json:"innerStarted,omitzero"`
}
TaskXOut are the output arguments of TaskX.
type TaskYOut ¶
type TaskYOut struct {
InnerOut int `json:"inner,omitzero"`
}
TaskYOut are the output arguments of TaskY. Contributes a delta to the sum reducer.
type TaskZOut ¶
type TaskZOut struct {
InnerOut int `json:"inner,omitzero"`
}
TaskZOut are the output arguments of TaskZ. Contributes a delta to the sum reducer.
type WorkflowRunner ¶
type WorkflowRunner interface {
Run(ctx context.Context, workflowName string, initialState any, opts *workflow.FlowOptions) (outcome *workflow.FlowOutcome, err error)
}
WorkflowRunner executes a workflow by name with initial state, blocking until termination. foremanapi.Client satisfies this interface.