instance

package
v0.5.8 Latest Latest
Warning

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

Go to latest
Published: Jan 19, 2019 License: BSD-3-Clause Imports: 21 Imported by: 30

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 DefaultConfig

func DefaultConfig() *util.ServiceConfig

func GetFlowIOMetadata added in v0.5.2

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

func NewFixedTaskScope

func NewFixedTaskScope(refAttrs map[string]*data.Attribute, task *definition.Task, isInput bool) data.Scope

NewFixedTaskScope creates a FixedTaskScope

func NewWorkingDataScope

func NewWorkingDataScope(parentScope data.Scope, workingData map[string]*data.Attribute) data.Scope

NewFixedTaskScope creates a FixedTaskScope

func StartSubFlow added in v0.5.2

func StartSubFlow(ctx activity.Context, flowURI string, inputs map[string]*data.Attribute) 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 AttributeChange

type AttributeChange struct {
	SubFlowID int
	ChgType   ChgType
	Attribute *data.Attribute
}

AttributeChange represents a change to an Attribute

type ChgType

type ChgType int

ChgType denotes the type of change for an object in an instance

const (
	// CtAdd denotes an addition
	CtAdd ChgType = 1
	// CtUpd denotes an update
	CtUpd ChgType = 2
	// CtDel denotes an deletion
	CtDel ChgType = 3
)

type ExecOptions

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

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

type FixedTaskScope

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

FixedTaskScope is scope restricted by the set of reference attrs and backed by the specified Task

func (*FixedTaskScope) GetAttr

func (s *FixedTaskScope) GetAttr(attrName string) (attr *data.Attribute, exists bool)

GetAttr implements Scope.GetAttr

func (*FixedTaskScope) SetAttrValue

func (s *FixedTaskScope) SetAttrValue(attrName string, value interface{}) error

SetAttrValue implements Scope.SetAttrValue

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 added in v0.5.2

type IndependentInstance struct {
	*Instance

	ChangeTracker *InstanceChangeTracker
	// contains filtered or unexported fields
}

func NewIndependentInstance added in v0.5.2

func NewIndependentInstance(instanceID string, flowURI string, flow *definition.Definition) *IndependentInstance

New creates a new Flow Instance from the specified Flow

func (*IndependentInstance) ApplyInterceptor added in v0.5.2

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

func (*IndependentInstance) ApplyPatch added in v0.5.2

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

func (*IndependentInstance) DoStep added in v0.5.2

func (inst *IndependentInstance) DoStep() bool

func (*IndependentInstance) GetChanges added in v0.5.2

func (inst *IndependentInstance) GetChanges() *InstanceChangeTracker

GetChanges returns the Change Tracker object

func (*IndependentInstance) HandleGlobalError added in v0.5.2

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

HandleGlobalError handles instance errors

func (*IndependentInstance) MarshalJSON added in v0.5.2

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

MarshalJSON overrides the default MarshalJSON for FlowInstance

func (*IndependentInstance) ResetChanges added in v0.5.2

func (inst *IndependentInstance) ResetChanges()

ResetChanges resets an changes that were being tracked

func (*IndependentInstance) Restart added in v0.5.2

func (inst *IndependentInstance) Restart(id string, manager *support.FlowManager) error

// Restart indicates that this FlowInstance was restarted

func (*IndependentInstance) Start added in v0.5.2

func (inst *IndependentInstance) Start(startAttrs map[string]*data.Attribute) bool

func (*IndependentInstance) StepID added in v0.5.2

func (inst *IndependentInstance) StepID() int

StepID returns the current step ID of the Flow Instance

func (*IndependentInstance) UnmarshalJSON added in v0.5.2

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

UnmarshalJSON overrides the default UnmarshalJSON for FlowInstance

type Instance

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

func (*Instance) AddAttr

func (inst *Instance) AddAttr(attrName string, attrType data.Type, value interface{}) *data.Attribute

AddAttr add a new attribute to the instance

func (*Instance) FindOrCreateLinkData added in v0.5.2

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) FindOrCreateTaskData added in v0.5.2

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

FindOrCreateTaskData 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) GetAttr

func (inst *Instance) GetAttr(attrName string) (value *data.Attribute, exists bool)

GetAttr implements data.Scope.GetAttr

func (*Instance) GetError added in v0.5.3

func (inst *Instance) GetError() error

func (*Instance) GetResolver added in v0.5.2

func (inst *Instance) GetResolver() data.Resolver

func (*Instance) GetReturnData

func (inst *Instance) GetReturnData() (map[string]*data.Attribute, error)

func (*Instance) ID

func (inst *Instance) ID() string

func (*Instance) IOMetadata added in v0.5.2

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

IOMetadata get the input/output metadata of the activity host

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 added in v0.5.2

func (inst *Instance) Reply(replyData map[string]*data.Attribute, err error)

func (*Instance) ReplyHandler

func (inst *Instance) ReplyHandler() activity.ReplyHandler

ReplyHandler returns the reply handler for the instance

func (*Instance) Return added in v0.5.2

func (inst *Instance) Return(returnData map[string]*data.Attribute, err error)

func (*Instance) SetAttrValue

func (inst *Instance) SetAttrValue(attrName string, value interface{}) error

SetAttrValue implements api.Scope.SetAttrValue

func (*Instance) SetResultHandler added in v0.5.2

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

InitActionContext initialize the action context, should be initialized before execution

func (*Instance) SetStatus added in v0.5.2

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

func (*Instance) Status

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

Status returns the current status of the Flow Instance

func (*Instance) TaskInstances added in v0.5.2

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

TaskInstances get the task instances

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]*data.Attribute)

UpdateAttrs updates the attributes of the Flow Instance

func (*Instance) WorkingData added in v0.5.2

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

type InstanceChange

type InstanceChange struct {
	SubFlowID   int
	Status      model.FlowStatus
	AttrChanges []*AttributeChange

	SubFlowChg *SubFlowChange

	State int
	// contains filtered or unexported fields
}

InstanceChange represents a change to the instance

func (*InstanceChange) MarshalJSON added in v0.5.2

func (ic *InstanceChange) MarshalJSON() ([]byte, error)

MarshalJSON overrides the default MarshalJSON for InstanceChangeTracker

type InstanceChangeTracker

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

InstanceChangeTracker is used to track all changes to an instance

func NewInstanceChangeTracker

func NewInstanceChangeTracker() *InstanceChangeTracker

NewInstanceChangeTracker creates an InstanceChangeTracker

func (*InstanceChangeTracker) AttrChange

func (ict *InstanceChangeTracker) AttrChange(subFlowId int, chgType ChgType, attribute *data.Attribute)

AttrChange is called to track a status change of an Attribute

func (*InstanceChangeTracker) MarshalJSON

func (ict *InstanceChangeTracker) MarshalJSON() ([]byte, error)

MarshalJSON overrides the default MarshalJSON for InstanceChangeTracker

func (*InstanceChangeTracker) ResetChanges

func (ict *InstanceChangeTracker) ResetChanges()

ResetChanges is used to reset any tracking data stored on instance objects

func (*InstanceChangeTracker) SetState

func (ict *InstanceChangeTracker) SetState(subFlowId int, state int)

SetStatus is called to track a state change on an instance

func (*InstanceChangeTracker) SetStatus

func (ict *InstanceChangeTracker) SetStatus(subFlowId int, status model.FlowStatus)

SetStatus is called to track a status change on an instance

func (*InstanceChangeTracker) SubFlowChange added in v0.5.2

func (ict *InstanceChangeTracker) SubFlowChange(parentFlowId int, chgType ChgType, subFlowId int, taskID string)

AttrChange is called to track a status change of an Attribute

type LinkInst added in v0.5.2

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

LinkInst represents data associated with an instance of a Link

func NewLinkInst added in v0.5.2

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

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

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

Link returns the Link associated with ld context

func (*LinkInst) MarshalJSON added in v0.5.2

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

MarshalJSON overrides the default MarshalJSON for LinkInst

func (*LinkInst) SetStatus added in v0.5.2

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

SetStatus sets the current state indicator for the LinkInst

func (*LinkInst) Status added in v0.5.2

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

Status returns the current state indicator for the LinkInst

func (*LinkInst) UnmarshalJSON added in v0.5.2

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

UnmarshalJSON overrides the default UnmarshalJSON for LinkInst

type LinkInstChange added in v0.5.2

type LinkInstChange struct {
	ChgType  ChgType
	ID       int
	LinkInst *LinkInst
}

LinkInstChange represents a change to a LinkInst

func (*LinkInstChange) MarshalJSON added in v0.5.2

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

MarshalJSON overrides the default MarshalJSON for TaskInst

type RecordSnapshotReq

type RecordSnapshotReq struct {
	ID     int    `json:"id"`
	FlowID string `json:"flowID"`
	State  int    `json:"state"`
	Status int    `json:"status"`

	SnapshotData *IndependentInstance `json:"snapshotData"`
}

RecordSnapshotReq serializable representation of the RecordSnapshot request

type RecordStepReq

type RecordStepReq struct {
	ID     int    `json:"id"`
	FlowID string `json:"flowID"`

	//todo should move to the "stepData"
	State  int `json:"state"`
	Status int `json:"status"`
	//todo we should have initial "init" to associate flowURI with flowID, instead of at every step
	FlowURI string `json:"flowURI"`

	StepData *InstanceChangeTracker `json:"stepData"`
}

RecordStepReq serializable representation of the RecordStep request

type RemoteStateRecorder

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

RemoteStateRecorder is an implementation of StateRecorder service that can access flows via URI

func NewRemoteStateRecorder

func NewRemoteStateRecorder(config *util.ServiceConfig) *RemoteStateRecorder

NewRemoteStateRecorder creates a new RemoteStateRecorder

func (*RemoteStateRecorder) Enabled

func (sr *RemoteStateRecorder) Enabled() bool

func (*RemoteStateRecorder) Name

func (sr *RemoteStateRecorder) Name() string

func (*RemoteStateRecorder) RecordSnapshot

func (sr *RemoteStateRecorder) RecordSnapshot(instance *IndependentInstance)

RecordSnapshot implements instance.StateRecorder.RecordSnapshot

func (*RemoteStateRecorder) RecordStep

func (sr *RemoteStateRecorder) RecordStep(instance *IndependentInstance)

RecordStep implements instance.StateRecorder.RecordStep

func (*RemoteStateRecorder) Start

func (sr *RemoteStateRecorder) Start() error

Start implements util.Managed.Start()

func (*RemoteStateRecorder) Stop

func (sr *RemoteStateRecorder) Stop() error

Stop implements util.Managed.Stop()

type RunOptions

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

RunOptions the options when running a FlowAction

type SimpleReplyHandler

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

SimpleReplyHandler is a simple ReplyHandler that is pass-thru to the action ResultHandler

func (*SimpleReplyHandler) Reply

func (rh *SimpleReplyHandler) Reply(code int, replyData interface{}, err error)

Reply implements ReplyHandler.Reply

type StateRecorder

type StateRecorder interface {
	// RecordSnapshot records a Snapshot of the FlowInstance
	RecordSnapshot(instance *IndependentInstance)

	// RecordStep records the changes for the current Step of the Flow Instance
	RecordStep(instance *IndependentInstance)
}

StateRecorder is the interface that describes a service that can record snapshots and steps of a Flow Instance

type SubFlowChange added in v0.5.2

type SubFlowChange struct {
	SubFlowID int
	TaskID    string
	ChgType   ChgType
}

InstanceChange represents a change to the instance

type TaskInst added in v0.5.2

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

func NewTaskInst added in v0.5.2

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

func (*TaskInst) ActivityHost added in v0.5.2

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

func (*TaskInst) AddWorkingData added in v0.5.2

func (ti *TaskInst) AddWorkingData(attr *data.Attribute)

func (*TaskInst) EvalActivity added in v0.5.2

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) FlowDetails added in v0.5.2

func (ti *TaskInst) FlowDetails() activity.FlowDetails

DEPRECATED

func (*TaskInst) FlowReply added in v0.5.2

func (ti *TaskInst) FlowReply(replyData map[string]*data.Attribute, err error)

FlowReply is used to reply to the Flow Host with the results of the execution

func (*TaskInst) FlowReturn added in v0.5.2

func (ti *TaskInst) FlowReturn(returnData map[string]*data.Attribute, err error)

FlowReturn is used to indicate to the Flow Host that it should complete and return the results of the execution

func (*TaskInst) GetFromLinkInstances added in v0.5.2

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

GetFromLinkInstances implements model.TaskContext.GetFromLinkInstances

func (*TaskInst) GetInitValue added in v0.5.2

func (ti *TaskInst) GetInitValue(key string) (value interface{}, exists bool)

GetInitValue implements activity.Context.GetInitValue

func (*TaskInst) GetInput added in v0.5.2

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

GetInput implements activity.Context.GetInput

func (*TaskInst) GetOutput added in v0.5.2

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

GetOutput implements activity.Context.GetOutput

func (*TaskInst) GetSetting added in v0.5.2

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

GetSetting implements activity.Context.GetSetting

func (*TaskInst) GetSharedTempData added in v0.5.6

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

func (*TaskInst) GetToLinkInstances added in v0.5.2

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

GetToLinkInstances implements model.TaskContext.GetToLinkInstances,

func (*TaskInst) GetWorkingData added in v0.5.2

func (ti *TaskInst) GetWorkingData(key string) (*data.Attribute, bool)

func (*TaskInst) HasActivity added in v0.5.2

func (ti *TaskInst) HasActivity() bool

HasActivity implements activity.ActivityContext.HasActivity method

func (*TaskInst) HasWorkingData added in v0.5.2

func (ti *TaskInst) HasWorkingData() bool

func (*TaskInst) InputScope added in v0.5.2

func (ti *TaskInst) InputScope() data.Scope

InputScope get the InputScope of the task instance

func (*TaskInst) MarshalJSON added in v0.5.2

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

MarshalJSON overrides the default MarshalJSON for TaskInst

func (*TaskInst) Name added in v0.5.2

func (ti *TaskInst) Name() string

Name implements activity.Context.Name method

func (*TaskInst) OutputScope added in v0.5.2

func (ti *TaskInst) OutputScope() data.Scope

OutputScope get the InputScope of the task instance

func (*TaskInst) PostEvalActivity added in v0.5.2

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

EvalActivity implements activity.ActivityContext.EvalActivity method

func (*TaskInst) Resolve added in v0.5.2

func (ti *TaskInst) Resolve(toResolve string) (value interface{}, err error)

func (*TaskInst) SetOutput added in v0.5.2

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

SetOutput implements activity.Context.SetOutput

func (*TaskInst) SetStatus added in v0.5.2

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

SetStatus implements flow.TaskContext.SetStatus

func (*TaskInst) Status added in v0.5.2

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

Status implements flow.TaskContext.GetState

func (*TaskInst) Task added in v0.5.2

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

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

func (*TaskInst) TaskName added in v0.5.2

func (ti *TaskInst) TaskName() string

TaskName implements activity.Context.TaskName method Deprecated

func (*TaskInst) UnmarshalJSON added in v0.5.2

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

UnmarshalJSON overrides the default UnmarshalJSON for TaskInst

func (*TaskInst) UpdateWorkingData added in v0.5.2

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

type TaskInstChange added in v0.5.2

type TaskInstChange struct {
	ChgType  ChgType
	ID       string
	TaskInst *TaskInst
}

TaskInstChange represents a change to a TaskInst

func (*TaskInstChange) MarshalJSON added in v0.5.2

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

MarshalJSON overrides the default MarshalJSON for TaskInst

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 WorkItemQueueChange

type WorkItemQueueChange struct {
	ChgType  ChgType
	ID       int
	WorkItem *WorkItem
}

WorkItemQueueChange represents a change in the WorkItem Queue

type WorkingDataScope

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

WorkingDataScope is scope restricted by the set of reference attrs and backed by the specified Task

func (*WorkingDataScope) GetAttr

func (s *WorkingDataScope) GetAttr(attrName string) (attr *data.Attribute, exists bool)

GetAttr implements Scope.GetAttr

func (*WorkingDataScope) SetAttrValue

func (s *WorkingDataScope) SetAttrValue(attrName string, value interface{}) error

SetAttrValue implements Scope.SetAttrValue

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL