instance

package
Version: v1.5.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 5, 2021 License: BSD-3-Clause Imports: 24 Imported by: 5

Documentation

Index

Constants

View Source
const (
	OpStart   = iota // 0
	OpResume         // 1
	OpRestart        // 2
)

Variables

This section is empty.

Functions

func ApplyExecOptions

func ApplyExecOptions(instance *IndependentInstance, execOptions *ExecOptions)

ApplyExecOptions applies any execution options to the flow instance

func EnableChangeTracking added in v0.9.4

func EnableChangeTracking(enable bool, mode state.RecordingMode)

func GetFlowIOMetadata

func GetFlowIOMetadata(flowURI string) (*metadata.IOMetadata, error)

func NewErrorObj

func NewErrorObj(taskId string, msg string) map[string]interface{}

func StartSubFlow

func StartSubFlow(ctx activity.Context, flowURI string, inputs map[string]interface{}) error

Types

type ActivityEvalError

type ActivityEvalError struct {
	// contains filtered or unexported fields
}

func NewActivityEvalError

func NewActivityEvalError(taskName string, errorType string, errorText string) *ActivityEvalError

func (*ActivityEvalError) Error

func (e *ActivityEvalError) Error() string

func (*ActivityEvalError) TaskName

func (e *ActivityEvalError) TaskName() string

func (*ActivityEvalError) Type

func (e *ActivityEvalError) Type() string

type ChangeTracker added in v0.9.4

type ChangeTracker interface {
	// FlowCreated is called to track a when a flow is created
	FlowCreated(flow *IndependentInstance)
	// FlowDone is called to track a when a flow complete
	FlowDone(flow *IndependentInstance)
	// SetStatus is called to track a status change on an instance
	SetStatus(subflowId int, status model.FlowStatus)
	// AttrChange is called to track when Attribute changes
	AttrChange(subflowId int, name string, value interface{})
	// SubflowCreated is called to track a when a subflow is created
	SubflowCreated(subflow *Instance)
	// SubflowDone is called to track a when a subflow complete
	SubflowDone(subflow *Instance)
	// WorkItemAdded records when an item is added to the WorkQueue
	WorkItemAdded(wi *WorkItem)
	// WorkItemRemoved records when an item is removed from the WorkQueue
	WorkItemRemoved(wi *WorkItem)
	// TaskAdded records when a Task is added
	TaskAdded(taskInst *TaskInst)
	// TaskUpdated records when a Task is updated
	TaskUpdated(taskInst *TaskInst)
	// TaskRemoved records when a Task is removed
	TaskRemoved(subflowId int, taskId string)
	// LinkAdded records a Link is added
	LinkAdded(linkInst *LinkInst)
	// LinkUpdated records a Link is updated
	LinkUpdated(linkInst *LinkInst)
	// LinkRemoved records when a Link is removed
	LinkRemoved(subflowId int, linkId int)
	// ExtractStep extracts the step object and resets the tracker
	ExtractStep(reset bool) *state.Step
}

func NewInstanceChangeTracker

func NewInstanceChangeTracker(flowId string) ChangeTracker

type ExecOptions

type ExecOptions struct {
	Patch       *support.Patch
	Interceptor *support.Interceptor
}

ExecOptions are optional Patch & Interceptor to be used during instance execution

type IDGenerator

type IDGenerator interface {
	//NewFlowInstanceID generate a new instance ID
	NewFlowInstanceID() string
}

IDGenerator generates IDs for flow instances

type IDResponse

type IDResponse struct {
	ID string `json:"id"`
}

IDResponse is a response object consists of an ID

type IndependentInstance

type IndependentInstance struct {
	*Instance
	// contains filtered or unexported fields
}

func NewIndependentInstance

func NewIndependentInstance(instanceID string, flowURI string, flow *definition.Definition, logger log.Logger) (*IndependentInstance, error)

New creates a new Flow Instance from the specified Flow

func (*IndependentInstance) ApplyInterceptor

func (inst *IndependentInstance) ApplyInterceptor(interceptor *flowsupport.Interceptor)

func (*IndependentInstance) ApplyPatch

func (inst *IndependentInstance) ApplyPatch(patch *flowsupport.Patch)

func (*IndependentInstance) CurrentStep added in v0.9.4

func (inst *IndependentInstance) CurrentStep(reset bool) *state.Step

func (*IndependentInstance) DoStep

func (inst *IndependentInstance) DoStep() bool

func (*IndependentInstance) ExecutionTime added in v1.4.0

func (inst *IndependentInstance) ExecutionTime() time.Duration

func (*IndependentInstance) GetChanges

func (inst *IndependentInstance) GetChanges() ChangeTracker

GetChanges returns the Change Tracker object

func (*IndependentInstance) HandleGlobalError

func (inst *IndependentInstance) HandleGlobalError(containerInst *Instance, err error)

HandleGlobalError handles instance errors

func (*IndependentInstance) MarshalJSON

func (inst *IndependentInstance) MarshalJSON() ([]byte, error)

MarshalJSON overrides the default MarshalJSON for FlowInstance

func (*IndependentInstance) ResetChanges

func (inst *IndependentInstance) ResetChanges()

ResetChanges resets an changes that were being tracked

func (*IndependentInstance) Restart

func (inst *IndependentInstance) Restart(logger log.Logger, id string) error

// Restart indicates that this FlowInstance was restarted

func (*IndependentInstance) SetTracingContext added in v0.9.4

func (inst *IndependentInstance) SetTracingContext(tracingCtx trace.TracingContext)

func (*IndependentInstance) Snapshot added in v0.9.4

func (inst *IndependentInstance) Snapshot() *state.Snapshot

func (*IndependentInstance) Start

func (inst *IndependentInstance) Start(startAttrs map[string]interface{}) bool

func (*IndependentInstance) StepID

func (inst *IndependentInstance) StepID() int

StepID returns the current step ID of the Flow Instance

func (*IndependentInstance) UnmarshalJSON

func (inst *IndependentInstance) UnmarshalJSON(d []byte) error

UnmarshalJSON overrides the default UnmarshalJSON for FlowInstance

func (*IndependentInstance) UpdateStartTime added in v1.4.0

func (inst *IndependentInstance) UpdateStartTime()

type Instance

type Instance struct {
	// contains filtered or unexported fields
}

func (*Instance) FindOrCreateLinkData

func (inst *Instance) FindOrCreateLinkData(link *definition.Link) (linkInst *LinkInst, created bool)

FindOrCreateLinkData finds an existing LinkInst or creates ones if not found for the specified link the task environment

func (*Instance) FindOrCreateTaskInst added in v0.10.0

func (inst *Instance) FindOrCreateTaskInst(task *definition.Task) (taskInst *TaskInst, created bool)

FindOrCreateTaskInst finds an existing TaskInst or creates ones if not found for the specified task the task environment

func (*Instance) FlowDefinition

func (inst *Instance) FlowDefinition() *definition.Definition

FlowDefinition returns the Flow definition associated with this context

func (*Instance) FlowURI

func (inst *Instance) FlowURI() string

func (*Instance) GetError

func (inst *Instance) GetError() error

func (*Instance) GetMasterScope added in v1.3.0

func (inst *Instance) GetMasterScope() data.Scope

func (*Instance) GetReturnData

func (inst *Instance) GetReturnData() (map[string]interface{}, error)

func (*Instance) GetValue

func (inst *Instance) GetValue(name string) (value interface{}, exists bool)

func (*Instance) ID

func (inst *Instance) ID() string

func (*Instance) IOMetadata

func (inst *Instance) IOMetadata() *metadata.IOMetadata

IOMetadata get the input/output metadata of the activity host

func (*Instance) Logger

func (inst *Instance) Logger() log.Logger

func (*Instance) MarshalJSON

func (inst *Instance) MarshalJSON() ([]byte, error)

MarshalJSON overrides the default MarshalJSON for FlowInstance

func (*Instance) Name

func (inst *Instance) Name() string

func (*Instance) Reply

func (inst *Instance) Reply(replyData map[string]interface{}, err error)

func (*Instance) Return

func (inst *Instance) Return(returnData map[string]interface{}, err error)

func (*Instance) Scope

func (inst *Instance) Scope() data.Scope

func (*Instance) SetResultHandler

func (inst *Instance) SetResultHandler(handler action.ResultHandler)

InitActionContext initialize the action context, should be initialized before execution

func (*Instance) SetStatus

func (inst *Instance) SetStatus(status model.FlowStatus)

func (*Instance) SetValue

func (inst *Instance) SetValue(name string, value interface{}) error

func (*Instance) SpanConfig added in v0.9.4

func (inst *Instance) SpanConfig() trace.Config

func (*Instance) Status

func (inst *Instance) Status() model.FlowStatus

Status returns the current status of the Flow Instance

func (*Instance) TaskInstances

func (inst *Instance) TaskInstances() []model.TaskInstance

TaskInstances get the task instances

func (*Instance) TracingContext added in v0.9.4

func (inst *Instance) TracingContext() trace.TracingContext

func (*Instance) UnmarshalJSON

func (inst *Instance) UnmarshalJSON(d []byte) error

UnmarshalJSON overrides the default UnmarshalJSON for FlowInstance

func (*Instance) UpdateAttrs

func (inst *Instance) UpdateAttrs(attrs map[string]interface{})

UpdateAttrs updates the attributes of the Flow Instance

type LegacyCtx

type LegacyCtx struct {
	// contains filtered or unexported fields
}

DEPRECATED

func (*LegacyCtx) ActivityHost

func (l *LegacyCtx) ActivityHost() activity.Host

func (*LegacyCtx) GetInput

func (l *LegacyCtx) GetInput(name string) interface{}

func (*LegacyCtx) GetInputObject

func (l *LegacyCtx) GetInputObject(input data.StructValue) error

func (*LegacyCtx) GetInputSchema

func (l *LegacyCtx) GetInputSchema(name string) schema.Schema

func (*LegacyCtx) GetOutput

func (l *LegacyCtx) GetOutput(name string) interface{}

func (*LegacyCtx) GetOutputSchema

func (l *LegacyCtx) GetOutputSchema(name string) schema.Schema

func (*LegacyCtx) GetSetting added in v0.9.2

func (l *LegacyCtx) GetSetting(name string) (interface{}, bool)

func (*LegacyCtx) GetSharedTempData

func (l *LegacyCtx) GetSharedTempData() map[string]interface{}

func (*LegacyCtx) GetTracingContext added in v0.9.4

func (l *LegacyCtx) GetTracingContext() trace.TracingContext

func (*LegacyCtx) Logger

func (l *LegacyCtx) Logger() log.Logger

func (*LegacyCtx) Name

func (l *LegacyCtx) Name() string

func (*LegacyCtx) SetOutput

func (l *LegacyCtx) SetOutput(name string, value interface{}) error

func (*LegacyCtx) SetOutputObject

func (l *LegacyCtx) SetOutputObject(output data.StructValue) error

type LinkInst

type LinkInst struct {
	// contains filtered or unexported fields
}

LinkInst represents data associated with an instance of a Link

func NewLinkInst

func NewLinkInst(inst *Instance, link *definition.Link) *LinkInst

NewLinkInst creates a LinkInst for the specified link in the specified task environment

func (li *LinkInst) Link() *definition.Link

Link returns the Link associated with ld context

func (*LinkInst) MarshalJSON

func (li *LinkInst) MarshalJSON() ([]byte, error)

MarshalJSON overrides the default MarshalJSON for LinkInst

func (*LinkInst) SetStatus

func (li *LinkInst) SetStatus(status model.LinkStatus)

SetStatus sets the current state indicator for the LinkInst

func (*LinkInst) Status

func (li *LinkInst) Status() model.LinkStatus

Status returns the current state indicator for the LinkInst

func (*LinkInst) UnmarshalJSON

func (li *LinkInst) UnmarshalJSON(d []byte) error

UnmarshalJSON overrides the default UnmarshalJSON for LinkInst

type NoopChangeTracker added in v0.9.4

type NoopChangeTracker struct {
}

func (*NoopChangeTracker) AttrChange added in v0.9.4

func (nct *NoopChangeTracker) AttrChange(subflowId int, name string, value interface{})

func (*NoopChangeTracker) ExtractStep added in v0.9.4

func (nct *NoopChangeTracker) ExtractStep(reset bool) *state.Step

func (*NoopChangeTracker) FlowCreated added in v0.10.0

func (nct *NoopChangeTracker) FlowCreated(flow *IndependentInstance)

func (*NoopChangeTracker) FlowDone added in v1.1.0

func (nct *NoopChangeTracker) FlowDone(flow *IndependentInstance)

func (*NoopChangeTracker) LinkAdded added in v0.9.4

func (nct *NoopChangeTracker) LinkAdded(linkInst *LinkInst)

func (*NoopChangeTracker) LinkRemoved added in v0.9.4

func (nct *NoopChangeTracker) LinkRemoved(subflowId int, linkId int)

func (*NoopChangeTracker) LinkUpdated added in v0.9.4

func (nct *NoopChangeTracker) LinkUpdated(linkInst *LinkInst)

func (*NoopChangeTracker) SetStatus added in v0.9.4

func (nct *NoopChangeTracker) SetStatus(subflowId int, status model.FlowStatus)

func (*NoopChangeTracker) SubflowCreated added in v0.9.4

func (nct *NoopChangeTracker) SubflowCreated(subflow *Instance)

func (*NoopChangeTracker) SubflowDone added in v1.1.0

func (nct *NoopChangeTracker) SubflowDone(subflow *Instance)

func (*NoopChangeTracker) TaskAdded added in v0.9.4

func (nct *NoopChangeTracker) TaskAdded(taskInst *TaskInst)

func (*NoopChangeTracker) TaskRemoved added in v0.9.4

func (nct *NoopChangeTracker) TaskRemoved(subflowId int, taskId string)

func (*NoopChangeTracker) TaskUpdated added in v0.9.4

func (nct *NoopChangeTracker) TaskUpdated(taskInst *TaskInst)

func (*NoopChangeTracker) WorkItemAdded added in v0.9.4

func (nct *NoopChangeTracker) WorkItemAdded(wi *WorkItem)

func (*NoopChangeTracker) WorkItemRemoved added in v0.9.4

func (nct *NoopChangeTracker) WorkItemRemoved(wi *WorkItem)

type RunOptions

type RunOptions struct {
	Op           int
	ReturnID     bool
	FlowURI      string
	InitialState *IndependentInstance
	ExecOptions  *ExecOptions
}

RunOptions the options when running a FlowAction

type SimpleChangeTracker added in v0.9.4

type SimpleChangeTracker struct {
	// contains filtered or unexported fields
}

func (*SimpleChangeTracker) AttrChange added in v0.9.4

func (sct *SimpleChangeTracker) AttrChange(subflowId int, name string, value interface{})

func (*SimpleChangeTracker) ExtractStep added in v0.9.4

func (sct *SimpleChangeTracker) ExtractStep(reset bool) *state.Step

func (*SimpleChangeTracker) FlowCreated added in v0.10.0

func (sct *SimpleChangeTracker) FlowCreated(flow *IndependentInstance)

func (*SimpleChangeTracker) FlowDone added in v1.1.0

func (sct *SimpleChangeTracker) FlowDone(flow *IndependentInstance)

func (*SimpleChangeTracker) LinkAdded added in v0.9.4

func (sct *SimpleChangeTracker) LinkAdded(linkInst *LinkInst)

func (*SimpleChangeTracker) LinkRemoved added in v0.9.4

func (sct *SimpleChangeTracker) LinkRemoved(subflowId int, linkId int)

func (*SimpleChangeTracker) LinkUpdated added in v0.9.4

func (sct *SimpleChangeTracker) LinkUpdated(linkInst *LinkInst)

func (*SimpleChangeTracker) SetStatus added in v0.9.4

func (sct *SimpleChangeTracker) SetStatus(subflowId int, status model.FlowStatus)

func (*SimpleChangeTracker) SubflowCreated added in v0.9.4

func (sct *SimpleChangeTracker) SubflowCreated(subflow *Instance)

func (*SimpleChangeTracker) SubflowDone added in v1.1.0

func (sct *SimpleChangeTracker) SubflowDone(subflow *Instance)

func (*SimpleChangeTracker) TaskAdded added in v0.9.4

func (sct *SimpleChangeTracker) TaskAdded(taskInst *TaskInst)

func (*SimpleChangeTracker) TaskRemoved added in v0.9.4

func (sct *SimpleChangeTracker) TaskRemoved(subflowId int, taskId string)

func (*SimpleChangeTracker) TaskUpdated added in v0.9.4

func (sct *SimpleChangeTracker) TaskUpdated(taskInst *TaskInst)

func (*SimpleChangeTracker) WorkItemAdded added in v0.9.4

func (sct *SimpleChangeTracker) WorkItemAdded(wi *WorkItem)

func (*SimpleChangeTracker) WorkItemRemoved added in v0.9.4

func (sct *SimpleChangeTracker) WorkItemRemoved(wi *WorkItem)

type SimpleChangeTrackerFactory added in v0.9.4

type SimpleChangeTrackerFactory struct {
}

func (*SimpleChangeTrackerFactory) NewChangeTracker added in v0.9.4

func (sf *SimpleChangeTrackerFactory) NewChangeTracker(flowId string, mode state.RecordingMode) ChangeTracker

type TaskInst

type TaskInst struct {
	// contains filtered or unexported fields
}

func NewTaskInst

func NewTaskInst(flowInst *Instance, task *definition.Task) *TaskInst

func (*TaskInst) ActivityHost

func (ti *TaskInst) ActivityHost() activity.Host

func (*TaskInst) EvalActivity

func (ti *TaskInst) EvalActivity() (done bool, evalErr error)

EvalActivity implements activity.ActivityContext.EvalActivity method

func (ti *TaskInst) EvalLink(link *definition.Link) (result bool, err error)

EvalLink implements activity.ActivityContext.EvalLink method

func (*TaskInst) FlowLogger

func (ti *TaskInst) FlowLogger() log.Logger

func (*TaskInst) GetFromLinkInstances

func (ti *TaskInst) GetFromLinkInstances() []model.LinkInstance

GetFromLinkInstances implements model.TaskContext.GetFromLinkInstances

func (*TaskInst) GetInput

func (ti *TaskInst) GetInput(name string) interface{}

GetInput implements activity.Context.GetInput

func (*TaskInst) GetInputObject

func (ti *TaskInst) GetInputObject(input data.StructValue) error

GetInputObject implements activity.Context.GetInputObject

func (*TaskInst) GetInputSchema

func (ti *TaskInst) GetInputSchema(name string) schema.Schema

func (*TaskInst) GetOutputSchema

func (ti *TaskInst) GetOutputSchema(name string) schema.Schema

func (*TaskInst) GetSetting

func (ti *TaskInst) GetSetting(name string) (value interface{}, exists bool)

func (*TaskInst) GetSharedTempData

func (ti *TaskInst) GetSharedTempData() map[string]interface{}

func (*TaskInst) GetToLinkInstances

func (ti *TaskInst) GetToLinkInstances() []model.LinkInstance

GetToLinkInstances implements model.TaskContext.GetToLinkInstances,

func (*TaskInst) GetTracingContext added in v0.9.4

func (ti *TaskInst) GetTracingContext() trace.TracingContext

GetInputObject implements activity.Context.GetInputObject

func (*TaskInst) GetWorkingData

func (ti *TaskInst) GetWorkingData(key string) (interface{}, bool)

func (*TaskInst) GetWorkingDataScope added in v0.9.4

func (ti *TaskInst) GetWorkingDataScope() *WorkingDataScope

func (*TaskInst) HasActivity

func (ti *TaskInst) HasActivity() bool

HasActivity implements activity.ActivityContext.HasActivity method

func (*TaskInst) InstanceId added in v0.9.4

func (ti *TaskInst) InstanceId() string

Returns task instance id

func (*TaskInst) Logger

func (ti *TaskInst) Logger() log.Logger

func (*TaskInst) MarshalJSON

func (ti *TaskInst) MarshalJSON() ([]byte, error)

MarshalJSON overrides the default MarshalJSON for TaskInst

func (*TaskInst) Name

func (ti *TaskInst) Name() string

Name implements activity.Context.Name method

func (*TaskInst) PostEvalActivity

func (ti *TaskInst) PostEvalActivity() (done bool, evalErr error)

EvalActivity implements activity.ActivityContext.EvalActivity method

func (*TaskInst) SetOutput

func (ti *TaskInst) SetOutput(name string, value interface{}) error

SetOutput implements activity.Context.SetOutput

func (*TaskInst) SetOutputObject

func (ti *TaskInst) SetOutputObject(output data.StructValue) error

SetOutputObject implements activity.Context.SetOutputObject

func (*TaskInst) SetStatus

func (ti *TaskInst) SetStatus(status model.TaskStatus)

SetStatus implements flow.TaskContext.SetStatus

func (*TaskInst) SetWorkingData

func (ti *TaskInst) SetWorkingData(key string, value interface{})

func (*TaskInst) SpanConfig added in v0.9.4

func (ti *TaskInst) SpanConfig() trace.Config

func (*TaskInst) Status

func (ti *TaskInst) Status() model.TaskStatus

Status implements flow.TaskContext.GetState

func (*TaskInst) Task

func (ti *TaskInst) Task() *definition.Task

Task implements model.TaskContext.Task, by returning the Task associated with this TaskInst object

func (*TaskInst) UnmarshalJSON

func (ti *TaskInst) UnmarshalJSON(d []byte) error

UnmarshalJSON overrides the default UnmarshalJSON for TaskInst

func (*TaskInst) UpdateTaskToTracker added in v1.3.0

func (ti *TaskInst) UpdateTaskToTracker()

UpdateTaskToTracker update task to tracker

type WorkItem

type WorkItem struct {
	ID int `json:"id"`

	TaskID    string `json:"taskID"`
	SubFlowID int    `json:"subFlowId"`
	// contains filtered or unexported fields
}

WorkItem describes an item of work (event for a Task) that should be executed on Step

func NewWorkItem

func NewWorkItem(id int, taskInst *TaskInst) *WorkItem

NewWorkItem constructs a new WorkItem for the specified TaskInst

type WorkingDataScope

type WorkingDataScope struct {
	// contains filtered or unexported fields
}

func NewWorkingDataScope

func NewWorkingDataScope(parentScope data.Scope) *WorkingDataScope

NewWorkingDataScope

func (*WorkingDataScope) GetValue

func (s *WorkingDataScope) GetValue(name string) (value interface{}, exists bool)

func (*WorkingDataScope) GetWorkingValue

func (s *WorkingDataScope) GetWorkingValue(name string) (value interface{}, exists bool)

func (*WorkingDataScope) SetValue

func (s *WorkingDataScope) SetValue(name string, value interface{}) error

func (*WorkingDataScope) SetWorkingValue

func (s *WorkingDataScope) SetWorkingValue(name string, value interface{})

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
t or T : Toggle theme light dark auto
y or Y : Canonical URL