Documentation
¶
Index ¶
- Constants
- Variables
- type Client
- type Def
- type Executor
- func (_c Executor) ForHost(host string) Executor
- func (_c Executor) HandleHigh(ctx context.Context, amount int) (branch string, err error)
- func (_c Executor) HandleLow(ctx context.Context, amount int) (branch string, err error)
- func (_c Executor) HandleMid(ctx context.Context, amount int) (branch string, err error)
- func (_c Executor) Router(ctx context.Context, amount int) (amountOut int, err error)
- func (_c Executor) Switch(ctx context.Context, amount int) (branch string, status string, err error)
- func (_c Executor) SwitchNoMatch(ctx context.Context, amount int) (branch string, status string, 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 HandleHighIn
- type HandleHighOut
- type HandleLowIn
- type HandleLowOut
- type HandleMidIn
- type HandleMidOut
- type Hook
- type MulticastClient
- type MulticastTrigger
- type RouterIn
- type RouterOut
- type SwitchIn
- type SwitchNoMatchIn
- type SwitchNoMatchOut
- type SwitchOut
- type WorkflowRunner
Constants ¶
const Hostname = "switchflow.verify"
Hostname is the default hostname of the microservice.
Variables ¶
var ( // HINT: Insert endpoint definitions here Router = Def{Method: "POST", Route: ":428/router"} // MARKER: Router HandleHigh = Def{Method: "POST", Route: ":428/handle-high"} // MARKER: HandleHigh HandleMid = Def{Method: "POST", Route: ":428/handle-mid"} // MARKER: HandleMid HandleLow = Def{Method: "POST", Route: ":428/handle-low"} // MARKER: HandleLow Switch = Def{Method: "GET", Route: ":428/switch"} // MARKER: Switch SwitchNoMatch = Def{Method: "GET", Route: ":428/switch-no-match"} // MARKER: SwitchNoMatch )
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) HandleHigh ¶
HandleHigh creates and runs the HandleHigh task.
func (Executor) Switch ¶
func (_c Executor) Switch(ctx context.Context, amount int) (branch string, status string, err error)
Switch creates and runs the Switch workflow, blocking until termination.
func (Executor) SwitchNoMatch ¶
func (_c Executor) SwitchNoMatch(ctx context.Context, amount int) (branch string, status string, err error)
SwitchNoMatch creates and runs the SwitchNoMatch workflow, blocking until termination.
func (Executor) WithFlowOptions ¶
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 HandleHighIn ¶
type HandleHighIn struct {
Amount int `json:"amount,omitzero"`
}
HandleHighIn are the input arguments of HandleHigh.
type HandleHighOut ¶
type HandleHighOut struct {
Branch string `json:"branch,omitzero"`
}
HandleHighOut are the output arguments of HandleHigh.
type HandleLowIn ¶
type HandleLowIn struct {
Amount int `json:"amount,omitzero"`
}
HandleLowIn are the input arguments of HandleLow.
type HandleLowOut ¶
type HandleLowOut struct {
Branch string `json:"branch,omitzero"`
}
HandleLowOut are the output arguments of HandleLow.
type HandleMidIn ¶
type HandleMidIn struct {
Amount int `json:"amount,omitzero"`
}
HandleMidIn are the input arguments of HandleMid.
type HandleMidOut ¶
type HandleMidOut struct {
Branch string `json:"branch,omitzero"`
}
HandleMidOut are the output arguments of HandleMid.
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 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 RouterIn ¶
type RouterIn struct {
Amount int `json:"amount,omitzero"`
}
RouterIn are the input arguments of Router.
type RouterOut ¶
type RouterOut struct {
AmountOut int `json:"amount,omitzero"`
}
RouterOut are the output arguments of Router.
type SwitchIn ¶
type SwitchIn struct {
Amount int `json:"amount,omitzero"`
}
SwitchIn are the input arguments of Switch.
type SwitchNoMatchIn ¶
type SwitchNoMatchIn struct {
Amount int `json:"amount,omitzero"`
}
SwitchNoMatchIn are the input arguments of SwitchNoMatch.
type SwitchNoMatchOut ¶
type SwitchNoMatchOut struct {
Branch string `json:"branch,omitzero"`
}
SwitchNoMatchOut are the output arguments of SwitchNoMatch.
type SwitchOut ¶
type SwitchOut struct {
Branch string `json:"branch,omitzero"`
}
SwitchOut are the output arguments of Switch.
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.