dag

package
v0.33.0 Latest Latest
Warning

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

Go to latest
Published: Feb 17, 2022 License: Apache-2.0 Imports: 5 Imported by: 20

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetSchedulable

func GetSchedulable(g *Graph, doneTasks ...string) (sets.String, error)

GetSchedulable returns a set of PipelineTask names that can be scheduled, given a list of successfully finished doneTasks. It returns tasks which have all dependencies marked as done, and thus can be scheduled. If the specified doneTasks are invalid (i.e. if it is indicated that a Task is done, but the previous Tasks are not done), an error is returned.

Types

type Graph added in v0.9.0

type Graph struct {
	// Nodes represent map of PipelineTask name to Node in Pipeline Graph
	Nodes map[string]*Node
}

Graph represents the Pipeline Graph

func Build added in v0.9.0

func Build(tasks Tasks, deps map[string][]string) (*Graph, error)

Build returns a valid pipeline Graph. Returns error if the pipeline is invalid

type Node added in v0.9.0

type Node struct {
	// Task represent the PipelineTask in Pipeline
	Task Task
	// Prev represent all the Previous task Nodes for the current Task
	Prev []*Node
	// Next represent all the Next task Nodes for the current Task
	Next []*Node
}

Node represents a Task in a pipeline.

type Task added in v0.9.0

type Task interface {
	HashKey() string
	Deps() []string
}

Task is an interface for all types that could be in a DAG

type Tasks added in v0.9.0

type Tasks interface {
	Items() []Task
}

Tasks is an interface for lists of types that could be in a DAG

Jump to

Keyboard shortcuts

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