Documentation
¶
Index ¶
- Constants
- Variables
- type Client
- type Def
- type DynamicSubgraphIn
- type DynamicSubgraphOut
- type Executor
- func (_c Executor) DynamicSubgraph(ctx context.Context, value int) (parentResult string, status string, err error)
- func (_c Executor) ForHost(host string) Executor
- func (_c Executor) Inner(ctx context.Context, value int) (innerResult int, innerDone bool, status string, err error)
- func (_c Executor) InnerA(ctx context.Context, value int) (innerStage int, err error)
- func (_c Executor) InnerB(ctx context.Context, innerStage int) (innerResult int, innerDone bool, err error)
- func (_c Executor) Parent(ctx context.Context, value int, innerDone bool, innerResult int) (parentResult 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 Hook
- type InnerAIn
- type InnerAOut
- type InnerBIn
- type InnerBOut
- type InnerIn
- type InnerOut
- type MulticastClient
- type MulticastTrigger
- type ParentIn
- type ParentOut
- type WorkflowRunner
Constants ¶
const Hostname = "dynamicsubgraphflow.verify"
Hostname is the default hostname of the microservice.
Variables ¶
var ( // HINT: Insert endpoint definitions here Parent = Def{Method: "POST", Route: ":428/parent"} // MARKER: Parent InnerA = Def{Method: "POST", Route: ":428/inner-a"} // MARKER: InnerA InnerB = Def{Method: "POST", Route: ":428/inner-b"} // MARKER: InnerB Inner = Def{Method: "GET", Route: ":428/inner"} // MARKER: Inner DynamicSubgraph = Def{Method: "GET", Route: ":428/dynamic-subgraph"} // MARKER: DynamicSubgraph )
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 DynamicSubgraphIn ¶
type DynamicSubgraphIn struct {
Value int `json:"value,omitzero"`
}
DynamicSubgraphIn are the input arguments of DynamicSubgraph.
type DynamicSubgraphOut ¶
type DynamicSubgraphOut struct {
ParentResult string `json:"parentResult,omitzero"`
}
DynamicSubgraphOut are the output arguments of DynamicSubgraph.
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) DynamicSubgraph ¶
func (_c Executor) DynamicSubgraph(ctx context.Context, value int) (parentResult string, status string, err error)
DynamicSubgraph creates and runs the DynamicSubgraph workflow.
func (Executor) ForHost ¶
ForHost returns a copy of the executor with a different hostname to be applied to requests.
func (Executor) Inner ¶
func (_c Executor) Inner(ctx context.Context, value int) (innerResult int, innerDone bool, status string, err error)
Inner creates and runs the Inner workflow.
func (Executor) InnerB ¶
func (_c Executor) InnerB(ctx context.Context, innerStage int) (innerResult int, innerDone bool, err error)
InnerB creates and runs the InnerB task.
func (Executor) Parent ¶
func (_c Executor) Parent(ctx context.Context, value int, innerDone bool, innerResult int) (parentResult string, err error)
Parent creates and runs the Parent 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 InnerAIn ¶
type InnerAIn struct {
Value int `json:"value,omitzero"`
}
InnerAIn are the input arguments of InnerA.
type InnerAOut ¶
type InnerAOut struct {
InnerStage int `json:"innerStage,omitzero"`
}
InnerAOut are the output arguments of InnerA.
type InnerBIn ¶
type InnerBIn struct {
InnerStage int `json:"innerStage,omitzero"`
}
InnerBIn are the input arguments of InnerB.
type InnerBOut ¶
type InnerBOut struct {
InnerResult int `json:"innerResult,omitzero"`
InnerDone bool `json:"innerDone,omitzero"`
}
InnerBOut are the output arguments of InnerB. The child sets innerDone=true so the parent task can detect re-entry.
type InnerIn ¶
type InnerIn struct {
Value int `json:"value,omitzero"`
}
InnerIn are the input arguments of Inner.
type InnerOut ¶
type InnerOut struct {
InnerResult int `json:"innerResult,omitzero"`
InnerDone bool `json:"innerDone,omitzero"`
}
InnerOut are the output arguments of Inner. Both fields cross back into the parent.
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 ParentIn ¶
type ParentIn struct {
Value int `json:"value,omitzero"`
InnerDone bool `json:"innerDone,omitzero"`
InnerResult int `json:"innerResult,omitzero"`
}
ParentIn are the input arguments of Parent. Reads value (caller-supplied), and innerDone/innerResult (set by the child on first run completion).
type ParentOut ¶
type ParentOut struct {
ParentResult string `json:"parentResult,omitzero"`
}
ParentOut are the output arguments of Parent.
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.