planner

package
v0.0.0-...-2932577 Latest Latest
Warning

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

Go to latest
Published: Jun 6, 2021 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNodeAlreadyExists = errors.New("node with same name already exists")
	ErrUnknownNodeName   = errors.New("unknown node name")
	ErrUnknownOperation  = errors.New("unknown operation")
	ErrUnknownNode       = errors.New("unknown node")
	ErrFoundCycle        = errors.New("found cycle")
	ErrAlreadyUsed       = errors.New("node already used in dataflow")
)

Возможные ошибки

View Source
var (
	ErrBadName                  = errors.New("name must contain only letters and numbers")
	ErrExpectedAction           = errors.New("expected not empty action name")
	ErrExpectedAddresses        = errors.New("expected not empty addresses")
	ErrExpectedHost             = errors.New("expected not empty host")
	ErrExpectedPort             = errors.New("expected non-zero port")
	ErrExpectedPositiveReplicas = errors.New("expected replicas count > 0")
	ErrExpectedSchemeName       = errors.New("expected not empty scheme name")
	ErrExpectedDataflow         = errors.New("expected not empty dataflow")
	ErrNodeNameUsed             = errors.New("node name already used")
	ErrNodeAddressUsed          = errors.New("address already used")
	ErrEmptyArg                 = errors.New("arg can not be empty")
	ErrEmptyEnvVarName          = errors.New("env variable name can not be empty")
)

Возможные ошибки проверки схемы

Functions

This section is empty.

Types

type AddrDescription

type AddrDescription struct {
	Host string `yaml:"host" json:"host"`
	Port int    `yaml:"port" json:"port"`
}

AddrDescription описание адреса сервера, на котором будет запущено действие

type NodeDescription

type NodeDescription struct {
	Name      string             `yaml:"name" json:"name"`
	Action    string             `yaml:"action" json:"action"`
	Addresses []*AddrDescription `yaml:"addresses" json:"addresses"`
	Args      []string           `yaml:"args" json:"args"`
	Env       map[string]string  `yaml:"env" json:"env"`
}

NodeDescription описание узла.

func (*NodeDescription) Check

func (d *NodeDescription) Check() error

Check выполняет проверку правильности описания узла.

type NodePlan

type NodePlan struct {
	Name      string             `json:"name"`
	Action    string             `json:"action"`
	Host      string             `json:"host"`
	Port      int                `json:"port"`
	In        []string           `json:"in"`
	Out       []string           `json:"out"`
	Args      []string           `json:"args"`
	Env       map[string]string  `json:"env"`
	Addresses []*AddrDescription `json:"addresses"`
}

NodePlan описание узла, предназначенного для запуска на сервере.

type Plan

type Plan struct {
	Name   string      `json:"name"`
	Scheme *Scheme     `json:"scheme"`
	Nodes  []*NodePlan `json:"nodes"`
}

Plan содержит информацию, необходимую для запуска обработки потока на серверах.

type Planner

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

Planner преобразует дерево разбора программы потока данных в план выполнения действий на серверах.

func NewPlanner

func NewPlanner(r parser.Node, scheme *Scheme) (*Planner, error)

NewPlanner создает новый объект Planner

func (*Planner) Plan

func (s *Planner) Plan() (*Plan, error)

Plan строит план выполнения пайплайна.

type Scheme

type Scheme struct {
	Name     string             `yaml:"name" json:"name"`
	Nodes    []*NodeDescription `yaml:"nodes" json:"nodes"`
	Dataflow string             `yaml:"dataflow" json:"dataflow"`
}

Scheme схема запуска пайплайна. Содержит данные о серверах, а также описание программы.

func (*Scheme) Check

func (s *Scheme) Check() error

Check выполняет проверку правильности задания схемы.

Jump to

Keyboard shortcuts

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