| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- package executor
- import (
- "fmt"
- schemepkg "git.buran.team/main/cep/scheme"
- )
- type FindContainer func(string) (Container, error)
- type Checker interface {
- Check() *TaskResult
- }
- func NewChecker(global *Global, ticket *Ticket, finder FindContainer, checkerScheme schemepkg.Checker) (Checker, error) {
- switch checkerScheme.Kind {
- case schemepkg.CHECKER_KIND_SEQUENTIAL:
- checks := []Check{}
- for _, checkScheme := range checkerScheme.KindSequential.Checks {
- container, err := finder(checkScheme.ContainerID)
- if err != nil {
- return nil, fmt.Errorf("can't create checker: %w", err)
- }
- check, err := NewCheck(global, ticket, checkScheme, container)
- if err != nil {
- return nil, fmt.Errorf("can't create checker: %w", err)
- }
- checks = append(checks, check)
- }
- return NewSequentialChecker(global, ticket, checks)
- case schemepkg.CHECKER_KIND_PARALLEL:
- checks := []Check{}
- for _, checkScheme := range checkerScheme.KindParallel.Checks {
- container, err := finder(checkScheme.ContainerID)
- if err != nil {
- return nil, fmt.Errorf("can't create checker: %w", err)
- }
- check, err := NewCheck(global, ticket, checkScheme, container)
- if err != nil {
- return nil, fmt.Errorf("can't create checker: %w", err)
- }
- checks = append(checks, check)
- }
- return NewParallelChecker(global, ticket, checks)
- }
- return nil, ErrKindUnknown
- }
|