run

package
v0.0.0-...-a556faa Latest Latest
Warning

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

Go to latest
Published: Dec 10, 2024 License: GPL-3.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MS_VERSION = "0.0.1"
)
View Source
const (
	MainBanner = `` /* 338-byte string literal not displayed */

)

Variables

View Source
var (
	CONFIG_PATH  string
	RUN_FLAG     bool
	DRY_RUN_FLAG bool
	PLUGINS_PATH string
)
View Source
var ATOMIC_STAGE *bool // Глобальный флаг атомарности текущего этапа
View Source
var PluginRegistry = make(map[string]v1.Executor)

PluginRegistry - глобальная карта для хранения зарегистрированных плагинов

Functions

func HandleRun

func HandleRun(args []string) error

HandleRun обрабатывает подкоманду run

Types

type ActionMap

type ActionMap struct {
	Name     string
	Action   map[string]interface{}
	Rollback map[string]interface{}
}

type Check

type Check struct {
	Set        *MigrationSet
	Name       string                 `yaml:"name"`
	PluginType string                 `yaml:"plugin"`
	Actions    map[string]interface{} `yaml:"action"`
	Component  map[string]interface{} `yaml:"component"`
}

func (*Check) CheckValideData

func (c *Check) CheckValideData(check Check) error

func (*Check) ExecCheck

func (c *Check) ExecCheck(item interface{}, stageName string) error

type Common

type Common struct {
}

func (*Common) CheckValideData

func (c *Common) CheckValideData(common Common) error

type Component

type Component struct {
	Name            string                 `yaml:"name"`
	Version         string                 `yaml:"version"`
	Group           string                 `yaml:"group"` // Имя группы
	Plugin          string                 `yaml:"plugin"`
	ComponentConfig map[string]interface{} `yaml:"config"`
}

func (*Component) CheckValideData

func (c *Component) CheckValideData(component Component) error

type CustomFormatter

type CustomFormatter struct{}

CustomFormatter реализует интерфейс logrus.Formatter

func (*CustomFormatter) Format

func (f *CustomFormatter) Format(entry *logrus.Entry) ([]byte, error)

Format определяет, как будет выводиться лог

type Global

type Global struct {
	Logging LoggingConfig `yaml:"logging"`
	Plugin  PluginConfig  `yaml:"plugin"`
	Pei     Pei           `yaml:"pei"`
}

Global глобальные настройки

type LoggingConfig

type LoggingConfig struct {
	Level     string `yaml:"level"`
	Formatter string `yaml:"formatter"`
}

LoggingConfig описывает параметры логирования

type MigrationSet

type MigrationSet struct {
	StandsFile          *StandsFile
	PluginController    *plugin.PluginController
	ActionMap           *map[string]ActionMap
	MigrationSetVersion string   `yaml:"msVersion"`
	Atomic              *bool    `yaml:"atomic"` // Флаг атомарности
	YAMLStandFile       string   `yaml:"stands"` // Путь к файлу стендов
	FromRelease         string   `yaml:"from_release"`
	ToRelease           string   `yaml:"to_release"`
	Stages              []Stages `yaml:"stages"` // Список этапов
}

func (*MigrationSet) CheckValideData

func (ms *MigrationSet) CheckValideData(migrationSet MigrationSet) error

func (*MigrationSet) InitMigrationSet

func (mg *MigrationSet) InitMigrationSet(migrationYamlFile string, pluginController *plugin.PluginController) (*MigrationSet, error)

Метод инициализации MigrationSet

func (*MigrationSet) RollbackRelease

func (mg *MigrationSet) RollbackRelease(targetRelease string) error

func (*MigrationSet) UpdateRelease

func (ms *MigrationSet) UpdateRelease(migrationSet MigrationSet) error

type Pei

type Pei struct {
	Version string `yaml:"version"`
}

type PluginConfig

type PluginConfig struct {
	PluginPath     string `yaml:"plugin_path"`
	PluginRepoPath string `yaml:"plugin_repo_path"`
	DefaultRepo    string `yaml:"default_repo"`
}

Plugin описывает параметры плагинов

type RollerConfig

type RollerConfig struct {
	Global Global `yaml:"global"`
}

rollerConfig структура конфигурации

type Script

type Script struct {
	Name       string                 `yaml:"name"`
	PluginType string                 `yaml:"plugin"`
	Actions    map[string]interface{} `yaml:"action"`
	Component  string                 `yaml:"component"`
}

func (*Script) CheckValideData

func (s *Script) CheckValideData(script Script) error

func (*Script) ExecScript

func (s *Script) ExecScript(item interface{}, stageName string) error

type Stages

type Stages struct {
	Set         *MigrationSet
	Name        string      `yaml:"name"`       // Имя этапа
	Description string      `yaml:"desc"`       // Описание этапа
	Dependence  interface{} `yaml:"dependence"` // Зависимости этапа
	Atomic      *bool       `yaml:"atomic"`     // Флаг атомарности: если true, этап останавливается при ошибке
	PreCheck    *[]Check    `yaml:"pre_check"`  // Предварительная проверка перед выполнением этапа
	PreScript   *[]Script   `yaml:"pre_script"` // Предварительный скрипт перед выполнением этапа
	Task        *[]Task     `yaml:"task"`
	PostCheck   *[]Check    `yaml:"post_check"`   // Пост-проверка после выполнения этапа
	PostScript  *[]Script   `yaml:"post_scriprt"` // Пост-скрипт после выполнения этапа
	Rollback    bool        `yaml:"rollback"`     // Флаг отката: если true, позволяет откатить изменения
	Stages      *[]Stages   `yaml:"stage"`        // Шаги, которые входят в этот этап
}

Stage представляет этап обработки с его параметрами.

func (*Stages) CheckMyAtomic

func (s *Stages) CheckMyAtomic(stageName string, myAtomic *bool, parentAtomic *bool) *bool

func (*Stages) CheckValideData

func (s *Stages) CheckValideData(stage Stages) error

func (*Stages) ExecStage

func (s *Stages) ExecStage(stage Stages, stands StandsFile, ActionMap map[string]ActionMap, parentAtomic *bool, parentName string) error

type Stand

type Stand struct {
	Name        string      `yaml:"name"`   // Имя стенда
	Description string      `yaml:"desc"`   // Краткое описание
	Group       string      `yaml:"group"`  // Имя группы
	Common      Common      `yaml:"common"` // Дополнительные настройки
	Include     []string    `yaml:"include"`
	Component   []Component `yaml:"components"`
}

func (*Stand) CheckValideData

func (s *Stand) CheckValideData(stand Stand) error

type StandsFile

type StandsFile struct {
	Release string `yaml:"release"`
	Stand   Stand  `yaml:"stand"`
	// contains filtered or unexported fields
}

Структура для файла, содержащего информацию о стенде и группе

func (*StandsFile) CheckValideData

func (s *StandsFile) CheckValideData(standsFile StandsFile) error

func (*StandsFile) FindComponent

func (s *StandsFile) FindComponent(data interface{}) (map[string]interface{}, error)

type Task

type Task struct {
	Set        *MigrationSet
	PluginType string                 `yaml:"plugin"`
	Actions    map[string]interface{} `yaml:"action"`
	Component  string                 `yaml:"component"`
}

func (*Task) CheckValideData

func (t *Task) CheckValideData(task Task) error

func (*Task) ExecTask

func (t *Task) ExecTask(item interface{}, stageName string) error

Jump to

Keyboard shortcuts

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