workflow

package
v0.74.0 Latest Latest
Warning

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

Go to latest
Published: Aug 3, 2023 License: GPL-3.0 Imports: 29 Imported by: 0

Documentation

Overview

Package workflow defines the Role interface, along with tooling to build the control tree. A workflow is a tree of Roles, and it's loaded from Configuration with a combination of YAML unmarshaling and Go template execution.

Index

Constants

View Source
const (
	PATH_SEPARATOR      = "."
	PATH_SEPARATOR_RUNE = '.'
)

Variables

This section is empty.

Functions

func Graft added in v0.17.0

func Graft(root *yaml.Node, path string, toAdd []byte, graftedName string) (out []byte, err error)

Graft takes a root node, a path to a role in root, byte array with an existing role and appends this role asa child of the role in root where the path specifies.

func LeafWalk added in v0.20.2

func LeafWalk(root Role, do func(role Role))

func LoadWorkflow added in v0.17.0

func LoadWorkflow(in []byte) (out yaml.Node, err error)

func MakeDisabledRoleCallback added in v0.50.0

func MakeDisabledRoleCallback(r Role) func(stage template.Stage, err error) error

func RoleToYAML added in v0.17.0

func RoleToYAML(input Role) ([]byte, error)

RoleToYAML exists to avoid exporting aggregatorRole/iteratorRole. Simply put, this function is nothing but a wrapper which allows marshalling Roles outside the workflow package

func Walk added in v0.20.2

func Walk(root Role, do func(role Role))

func WrapConstraints added in v0.19.90

func WrapConstraints(items constraint.Constraints) template.Fields

Types

type GetCurrentRunNumberFunc added in v0.20.0

type GetCurrentRunNumberFunc func() uint32

type GetEnvIdFunc

type GetEnvIdFunc func() uid.ID

type GetStringMapFunc added in v0.12.90

type GetStringMapFunc func() gera.StringMap

type LoadSubworkflowFunc added in v0.21.80

type LoadSubworkflowFunc func(workflowPathExpr string, parent Updatable) (root *aggregatorRole, workflowRepo repos.IRepo, err error)

type ParentAdapter

type ParentAdapter struct {
	SendEvents SendEvents
	// contains filtered or unexported fields
}

func NewParentAdapter

func NewParentAdapter(getEnvId GetEnvIdFunc,
	getCurrentRunNumber GetCurrentRunNumberFunc,
	getDefaults GetStringMapFunc,
	getVars GetStringMapFunc,
	getUserVars GetStringMapFunc,
	SendEvents SendEvents) *ParentAdapter

func (*ParentAdapter) CollectInboundChannels added in v0.13.90

func (*ParentAdapter) CollectInboundChannels() []channel.Inbound

func (*ParentAdapter) CollectOutboundChannels

func (*ParentAdapter) CollectOutboundChannels() []channel.Outbound

func (*ParentAdapter) GetCurrentRunNumber added in v0.20.0

func (p *ParentAdapter) GetCurrentRunNumber() uint32

func (*ParentAdapter) GetDefaults added in v0.12.90

func (p *ParentAdapter) GetDefaults() gera.StringMap

func (*ParentAdapter) GetEnvironmentId

func (p *ParentAdapter) GetEnvironmentId() uid.ID

func (*ParentAdapter) GetParent

func (p *ParentAdapter) GetParent() Updatable

func (*ParentAdapter) GetPath

func (*ParentAdapter) GetPath() string

func (*ParentAdapter) GetUserVars added in v0.12.90

func (p *ParentAdapter) GetUserVars() gera.StringMap

func (*ParentAdapter) GetVars added in v0.12.90

func (p *ParentAdapter) GetVars() gera.StringMap

func (*ParentAdapter) SendEvent added in v0.19.80

func (p *ParentAdapter) SendEvent(ev event.Event)

func (*ParentAdapter) SubscribeToStateChange

func (p *ParentAdapter) SubscribeToStateChange(subscriptionId string, c chan task.State)

func (*ParentAdapter) SubscribeToStatusChange

func (p *ParentAdapter) SubscribeToStatusChange(subscriptionId string, c chan task.Status)

func (*ParentAdapter) UnsubscribeFromStateChange

func (p *ParentAdapter) UnsubscribeFromStateChange(subscriptionId string)

func (*ParentAdapter) UnsubscribeFromStatusChange

func (p *ParentAdapter) UnsubscribeFromStatusChange(subscriptionId string)

type PublicUpdatable added in v0.20.0

type PublicUpdatable interface {
	UpdateStatus(s task.Status)
	UpdateState(s task.State)
}

type Role

type Role interface {
	VarNode
	GetParent() Updatable
	GetParentRole() Role
	GetRootRole() Role
	GetRoles() []Role
	GetPath() string
	GetName() string
	GetStatus() task.Status
	GetState() task.State
	GetTasks() task.Tasks
	GetTaskClasses() []string
	GenerateTaskDescriptors() task.Descriptors

	ProcessTemplates(workflowRepo repos.IRepo, loadSubworkflow LoadSubworkflowFunc, baseConfigStack map[string]string) error
	GlobFilter(g glob.Glob) []Role
	SetRuntimeVar(key string, value string)
	SetRuntimeVars(kv map[string]string)
	DeleteRuntimeVar(key string)
	DeleteRuntimeVars(keys []string)
	GetHooksMapForTrigger(trigger string) callable.HooksMap
	GetAllHooks() callable.Hooks
	IsEnabled() bool
	GetCurrentRunNumber() uint32
	ConsolidatedVarStack() (varStack map[string]string, err error)
	ConsolidatedVarMaps() (defaults, vars, userVars map[string]string, err error)
	GetEnvironmentId() uid.ID
	// contains filtered or unexported methods
}

func GetRoot added in v0.20.2

func GetRoot(role Role) (root Role)

func Load

func Load(workflowPath string, parent Updatable, taskManager *task.Manager, userProperties map[string]string, baseConfigStack map[string]string) (workflow Role, err error)

FIXME: workflowPath should be of type configuration.Path, not string

func LoadDPL added in v0.17.0

func LoadDPL(tasks []*taskclass.Class, rootRoleName string, extraVarsMap map[string]string) (workflow Role, err error)

type SafeState

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

type SafeStatus

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

type SendEvents added in v0.19.80

type SendEvents func(event.Event)

type Updatable

type Updatable interface {
	VarNode
	GetParent() Updatable

	GetEnvironmentId() uid.ID
	GetPath() string
	CollectOutboundChannels() []channel.Outbound
	CollectInboundChannels() []channel.Inbound
	SendEvent(event.Event)
	GetCurrentRunNumber() uint32
	// contains filtered or unexported methods
}

type VarNode added in v0.12.90

type VarNode interface {
	GetDefaults() gera.StringMap
	GetVars() gera.StringMap
	GetUserVars() gera.StringMap
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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