Documentation
¶
Index ¶
- Variables
- type Manager
- func (m *Manager) GetPipeline(id api.UUID) (Pipeline, bool)
- func (m *Manager) LookupPipeline(emitter api.Actor, output string, eventtypes []string) (*Pipeline, storage.NodeOutputRef, bool)
- func (m *Manager) Query(name string, version string, activeOnly bool) (result []Pipeline)
- func (m *Manager) Save(pipeline *Pipeline) (*Pipeline, error)
- func (m *Manager) SetStatus(pipeline Pipeline, status api.PipelineInfo_Status) error
- type NodeType
- type Path
- type PathList
- type Pipeline
- type ValidationError
- func ConsumerActorIDsForbidden(nodeID string) ValidationError
- func ConsumerHasMultipleInput(nodeID string) ValidationError
- func ConsumerHasNoInput(nodeID string) ValidationError
- func ConsumerHasOutput(nodeID string) ValidationError
- func ConsumerMustHave1RoleOrActors(nodeID string) ValidationError
- func CycleError(path Path) ValidationError
- func DisconnectedGraphError() ValidationError
- func DisconnectedInputError(inputRef storage.NodeInputRef) ValidationError
- func DisconnectedOutputError(outputRef storage.NodeOutputRef) ValidationError
- func DuplicateNodeIDError(nodeID string) ValidationError
- func EdgeInvalidFromError(edge storage.Edge) ValidationError
- func EdgeInvalidToError(edge storage.Edge) ValidationError
- func EmitterHasInput(nodeID string) ValidationError
- func EmitterHasMultipleOutput(nodeID string) ValidationError
- func EmitterHasNoOutput(nodeID string) ValidationError
- func ExtraEmitterError(nodeID string) ValidationError
- func InvalidNodeID(nodeID string) ValidationError
- func MissingConsumerError() ValidationError
- func MissingEmitterError() ValidationError
- func MissingSourceMatch(nodeID string) ValidationError
- func NoActorForRoleError(nodeID string, role string) ValidationError
- func RequestorAndConsumer() ValidationError
- func RequestorAndEmitter() ValidationError
- func RequestorInputMustBeResponse(nodeID string) ValidationError
- func RequestorOutputMustBeRequest(nodeID string) ValidationError
- func RoleBroadcastUnsetError(nodeID string) ValidationError
- func SinkIsNotConsumerError(nodeID string) ValidationError
- func SourceIsNotEmitterError(nodeID string) ValidationError
- func SourceMatchInvalidEventType(nodeID string, eventType string) ValidationError
- func TooManyRolesError(nodeID string) ValidationError
- func UnknownActorError(nodeID string, actor string) ValidationError
- type ValidationErrorCode
- type ValidationErrorList
- type Validator
Constants ¶
This section is empty.
Variables ¶
var ErrStatusTransition = errors.New("Invalid graph status transition")
ErrStatusTransition is when an invalid status transition is requested
Functions ¶
This section is empty.
Types ¶
type Manager ¶
type Manager struct { ActorStorage storage.ActorStorage PipelineStorage storage.PipelineStorage Pipelines []Pipeline }
Manager manages the pipelines
func NewManager ¶
func NewManager( actorStorage storage.ActorStorage, pipelineStorage storage.PipelineStorage, ) *Manager
NewManager returns a Manager
func (*Manager) GetPipeline ¶
GetPipeline load a pipeline from its id
func (*Manager) LookupPipeline ¶
func (m *Manager) LookupPipeline( emitter api.Actor, output string, eventtypes []string, ) (*Pipeline, storage.NodeOutputRef, bool)
LookupPipeline returns the matching pipeline for a specific event type
type Path ¶
A Path is a list of vertices
type PathList ¶
type PathList []Path
PathList is a list of Path
func (PathList) ContainsCycle ¶
ContainsCycle returns true if the given cycle is already in the path list
type Pipeline ¶
Pipeline is a single xbus pipeline
func (Pipeline) GetDestinations ¶
func (p Pipeline) GetDestinations(output storage.NodeOutputRef) ([]storage.NodeInputRef, error)
GetDestinations returns the inputs on which to send envelope coming from given outputs
type ValidationError ¶
type ValidationError struct { Code ValidationErrorCode NodeID string // The node having an error if relevant InputRef storage.NodeInputRef OutputRef storage.NodeOutputRef Edge storage.Edge Path Path // The path having an error if relevant Actor string Role string Args []string // extra arguments for error formatting }
ValidationError is a detailed graph validation error
func ConsumerActorIDsForbidden ¶
func ConsumerActorIDsForbidden(nodeID string) ValidationError
ConsumerActorIDsForbidden returns a ErrConsumerActorIDsForbidden
func ConsumerHasMultipleInput ¶
func ConsumerHasMultipleInput(nodeID string) ValidationError
ConsumerHasMultipleInput returns a ErrConsumerHasMultipleInput
func ConsumerHasNoInput ¶
func ConsumerHasNoInput(nodeID string) ValidationError
ConsumerHasNoInput returns a ErrConsumerHasNoInput
func ConsumerHasOutput ¶
func ConsumerHasOutput(nodeID string) ValidationError
ConsumerHasOutput returns a ErrConsumerHasOutput
func ConsumerMustHave1RoleOrActors ¶
func ConsumerMustHave1RoleOrActors(nodeID string) ValidationError
ConsumerMustHave1RoleOrActors returns a ErrConsumerMustHave1RoleOrActors
func CycleError ¶
func CycleError(path Path) ValidationError
CycleError returns a ErrGraphCycle error
func DisconnectedGraphError ¶
func DisconnectedGraphError() ValidationError
DisconnectedGraphError returns a ErrDisconnectedGraph error
func DisconnectedInputError ¶
func DisconnectedInputError(inputRef storage.NodeInputRef) ValidationError
DisconnectedInputError returns a ErrDisconnectedInput error
func DisconnectedOutputError ¶
func DisconnectedOutputError(outputRef storage.NodeOutputRef) ValidationError
DisconnectedOutputError returns a ErrDisconnectedOutput error
func DuplicateNodeIDError ¶
func DuplicateNodeIDError(nodeID string) ValidationError
DuplicateNodeIDError returns a ErrDuplicateNodeID
func EdgeInvalidFromError ¶
func EdgeInvalidFromError(edge storage.Edge) ValidationError
EdgeInvalidFromError returns a ErrEdgeInvalidFrom error
func EdgeInvalidToError ¶
func EdgeInvalidToError(edge storage.Edge) ValidationError
EdgeInvalidToError returns a ErrEdgeInvalidTo error
func EmitterHasInput ¶
func EmitterHasInput(nodeID string) ValidationError
EmitterHasInput returns a ErrEmitterHasInput
func EmitterHasMultipleOutput ¶
func EmitterHasMultipleOutput(nodeID string) ValidationError
EmitterHasMultipleOutput returns a ErrEmitterHasMultipleOutput
func EmitterHasNoOutput ¶
func EmitterHasNoOutput(nodeID string) ValidationError
EmitterHasNoOutput returns a ErrEmitterHasNoOutput
func ExtraEmitterError ¶
func ExtraEmitterError(nodeID string) ValidationError
ExtraEmitterError returns a ErrExtraEmitter error
func InvalidNodeID ¶
func InvalidNodeID(nodeID string) ValidationError
InvalidNodeID returns a ErrInvalidNodeID
func MissingConsumerError ¶
func MissingConsumerError() ValidationError
MissingConsumerError returns a ErrMissingConsumer error
func MissingEmitterError ¶
func MissingEmitterError() ValidationError
MissingEmitterError returns a ErrMissingEmitter error
func MissingSourceMatch ¶
func MissingSourceMatch(nodeID string) ValidationError
MissingSourceMatch returns a ErrMissingSourceMatch
func NoActorForRoleError ¶
func NoActorForRoleError(nodeID string, role string) ValidationError
NoActorForRoleError returns a ErrNoActorForRole error
func RequestorAndConsumer ¶
func RequestorAndConsumer() ValidationError
RequestorAndConsumer returns a ErrRequestorAndConsumer error
func RequestorAndEmitter ¶
func RequestorAndEmitter() ValidationError
RequestorAndEmitter returns a ErrRequestorAndEmitter error
func RequestorInputMustBeResponse ¶
func RequestorInputMustBeResponse(nodeID string) ValidationError
RequestorInputMustBeResponse returns a ErrRequestorInputMustBeResponse
func RequestorOutputMustBeRequest ¶
func RequestorOutputMustBeRequest(nodeID string) ValidationError
RequestorOutputMustBeRequest returns a ErrRequestorOutputMustBeRequest
func RoleBroadcastUnsetError ¶
func RoleBroadcastUnsetError(nodeID string) ValidationError
RoleBroadcastUnsetError returns a ErrRoleBroadcastUnset error
func SinkIsNotConsumerError ¶
func SinkIsNotConsumerError(nodeID string) ValidationError
SinkIsNotConsumerError returns a ErrSinkIsNotConsumer error
func SourceIsNotEmitterError ¶
func SourceIsNotEmitterError(nodeID string) ValidationError
SourceIsNotEmitterError returns a ErrSourceIsNotEmitter error
func SourceMatchInvalidEventType ¶
func SourceMatchInvalidEventType(nodeID string, eventType string) ValidationError
SourceMatchInvalidEventType returns a ErrSourceMatchInvalidEventType
func TooManyRolesError ¶
func TooManyRolesError(nodeID string) ValidationError
TooManyRolesError returns a ErrTooManyRoles error
func UnknownActorError ¶
func UnknownActorError(nodeID string, actor string) ValidationError
UnknownActorError returns a ErrUnknownActor error
func (ValidationError) Error ¶
func (v ValidationError) Error() string
type ValidationErrorCode ¶
type ValidationErrorCode int
ValidationErrorCode is a validation error code
const ( // ErrMissingEmitter is when a graph has no emitter ErrMissingEmitter ValidationErrorCode = iota // ErrMissingConsumer is when a graph has no consumer ErrMissingConsumer // ErrRequestorAndEmitter is when a graph has a requestor and an emitter ErrRequestorAndEmitter // ErrRequestorAndConsumer is when a graph has a requestor and a consumer ErrRequestorAndConsumer // ErrExtraEmitter is when a graph has more than one emitter ErrExtraEmitter // ErrMissingSourceMatch - a emitter has no sourcematch ErrMissingSourceMatch // ErrSourceMatchInvalidEventType - an eventtype is invalid ErrSourceMatchInvalidEventType // ErrEmitterHasNoOutput is when a emitter node has no output ErrEmitterHasNoOutput // ErrEmitterHasMultipleOutput is when a emiiter node has multiple output ErrEmitterHasMultipleOutput // ErrEmitterHasInput - a emitter node has some input ErrEmitterHasInput // ErrRequestorOutputMustBeRequest is when a requestor emitter (with one // input) has an output not named "request" ErrRequestorOutputMustBeRequest // ErrRequestorInputMustBeResponse is when a requestor emitter (with one // input) has an input not named "response" ErrRequestorInputMustBeResponse // ErrConsumerHasNoInput - a consumer has no input ErrConsumerHasNoInput // ErrConsumerHasMultipleInput - a consumer has multiple input ErrConsumerHasMultipleInput // ErrConsumerHasOutput - a consumer has an output ErrConsumerHasOutput // ErrConsumerMustHave1RoleOrActors - the consumer node must have one role or have 'actors' defined ErrConsumerMustHave1RoleOrActors // ErrConsumerActorIDsForbidden - a consummer cannot have 'actorids' defined ErrConsumerActorIDsForbidden // ErrDisconnectedInput is when an input is not connected by any edge ErrDisconnectedInput // ErrDisconnectedOutput is when an ouput is not connected by any edge ErrDisconnectedOutput // ErrEdgeInvalidFrom is when the origin of an edge does not exist ErrEdgeInvalidFrom // ErrEdgeInvalidTo is when the target of an edge does not exist ErrEdgeInvalidTo // ErrCycle is when the graph has a cycle ErrCycle // ErrDisconnectedGraph is when the graph is not connected ErrDisconnectedGraph // ErrSourceIsNotEmitter is when a source node is not an emitter ErrSourceIsNotEmitter // ErrSinkIsNotConsumer is when a sink node is not a consumer ErrSinkIsNotConsumer // ErrInvalidNodeID is when a node ID is empty or contains any non [a-zA-Z0-9_\-] character ErrInvalidNodeID // ErrDuplicateNodeID is when two nodes have the same ID ErrDuplicateNodeID // ErrUnknownActor is when a node actorID item does not exist ErrUnknownActor // ErrNoActorForRole is when a role matches no actor ErrNoActorForRole // ErrTooManyRoles is when a node has more than 1 role ErrTooManyRoles // ErrRoleBroadcastUnset is when a role is set but rolebroadcast is not (it should) ErrRoleBroadcastUnset )
type ValidationErrorList ¶
type ValidationErrorList []ValidationError
ValidationErrorList is a list or validation errors
func (*ValidationErrorList) Add ¶
func (l *ValidationErrorList) Add(err ValidationError)
Add appends an error to the list
func (ValidationErrorList) Error ¶
func (l ValidationErrorList) Error() string
func (ValidationErrorList) Messages ¶
func (l ValidationErrorList) Messages() []string
Messages returns the errors as a list of messages
type Validator ¶
Validator validates a graph consistency
func NewValidator ¶
NewValidator crates a Validator
func (*Validator) Validate ¶
func (v *Validator) Validate() (errors ValidationErrorList)
Validate enforce the graph is consistent.
func (*Validator) ValidateActors ¶
func (v *Validator) ValidateActors(actorStorage storage.ActorStorage) ValidationErrorList
ValidateActors returns true if the graph actors & roles actually exists If not, returns false and a list of ValidationError