context

package
v0.1.3 Latest Latest
Warning

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

Go to latest
Published: Jun 13, 2023 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DRYRUN_NAME        = "HYPEROPS_DRYRUN"
	HYPEROPS_FUNC_HOOK = "HYPEROPS_FUNC_HOOK"
)

Variables

View Source
var (
	ErrFuncNotFound   = fmt.Errorf("the funcation in mod not found")
	ErrNotAFunc       = fmt.Errorf("only funcation can be called")
	ErrInvalidArgType = fmt.Errorf("invalid argument type provided to method")
)
View Source
var (
	ErrSuspendFailed        = errors.New("error suspend job failed, reason not found job, maybe has already finished, or task was not running on this worker")
	ErrRecoveryFailed       = errors.New("error recovery job failed, reason not found job, maybe has already finished, or task was not running on this worker")
	ErrSuspendIsRecovring   = errors.New("error suspend job failed, is recovering")
	ErrSuspendIsHanging     = errors.New("error suspend job failed, is hanging")
	ErrSuspendIsPreHanging  = errors.New("error suspend job failed, is prehanging")
	ErrRecoveryIsRecovring  = errors.New("error recovery job failed, is recovering")
	ErrRecoveryIsNotHanging = errors.New("error recovery job failed, is not hanging")
	ErrHangTimeout          = errors.New("error hang task dutaiton > 24h, exit with timeout error")
	ErrTaskKill             = errors.New("error task was killed when hanging")
)

Functions

func AddBuiltin

func AddBuiltin(name string, f Function) *starlark.Builtin

AddBuiltin hook starlark.NewBuiltin for add pre and post func when exec self func

func Call

func Call(thread *starlark.Thread, dict starlark.StringDict, funcinfo string, args []interface{}, kwargs map[string]interface{}) (interface{}, error)

thread 表示执行该命令的starlark线程 dict 表示 需要被执行的函数所在的dict 可以通过starlib.Loader或者ops.predecleared获取 funcinfo 为执行函数的名称,形式为"mod.func",例如:"sh.exec", 需要保证dict中存在有mod这个key,而对应的value是一个starlarkstruct.Module类型,且该module的members中含有这个function,并且保证传入的dict中包含有这个键值对 args和kwargs为func所需要的参数,该函数会自行将其转化为starlark.Value类型

func GetArgs

func GetArgs(args interface{}) (starlark.Tuple, error)

func GetKwargs

func GetKwargs(kwargs map[string]interface{}) ([]starlark.Tuple, error)

func NewSecretsManager

func NewSecretsManager() *secretsManager

NewSecretsManager 返回密码管理器对象,该对象记录了所有的密码信息

func PathExists

func PathExists(path string) bool

判断路径是否存在

func SafePrint

func SafePrint(thread *starlark.Thread, msg string)

SafePrint for replace builtin "print"

Types

type Context

type Context struct {
	sync.Mutex
	// contains filtered or unexported fields
}

Context 当执行脚本时携带上下文

func NewContext

func NewContext(config map[string]interface{}, secrets map[string]string) *Context

NewContext 创建上下文

func (*Context) SetResult

func (c *Context) SetResult(name string, value starlark.Value)

SetResult 设置执行结果

func (*Context) Struct

func (c *Context) Struct() *starlarkstruct.Struct

Struct 作为starlark.Struct方式传递

type Function

type Function func(thread *starlark.Thread, fn *starlark.Builtin, args starlark.Tuple, kwargs []starlark.Tuple) (starlark.Value, error)

type Task

type Task struct {
	ID string

	RecoveryCh chan string
	// contains filtered or unexported fields
}

Task 任务描述

func (*Task) GetStatus

func (t *Task) GetStatus() TaskStatus

func (*Task) TrigerDataEvent

func (t *Task) TrigerDataEvent(data map[string]interface{})

TrigerDataEvent 触发数据事件,收到事件后进行归档操作

func (*Task) TrigerEvent

func (t *Task) TrigerEvent(curStatus TaskStatus)

TrigerEvent 变更状态后自动触发事件

type TaskManager

type TaskManager struct {
	sync.Mutex
	// contains filtered or unexported fields
}

TaskManager 任务管理器,管理全局任务状态

func GetTaskManager

func GetTaskManager() *TaskManager

func NewTaskManager

func NewTaskManager() *TaskManager

NewTaskManager 创建任务管理器

func (*TaskManager) Add

func (t *TaskManager) Add(taskid string, thread *starlark.Thread, eventsCh chan event.Event)

Add 添加task

func (*TaskManager) Delete

func (t *TaskManager) Delete(taskid string, dict starlark.StringDict)

Delete 删除task

func (*TaskManager) Get

func (t *TaskManager) Get(taskid string) *Task

Get 获取task

func (*TaskManager) GetAll

func (t *TaskManager) GetAll() map[string]*Task

GetAll 获取所有执行中的tasks快照

func (*TaskManager) Kill

func (t *TaskManager) Kill(taskid string)

Kill kill a task

func (*TaskManager) Recovery

func (t *TaskManager) Recovery(taskid string) error

Recovery 恢复指定task

func (*TaskManager) RecoveryOver

func (t *TaskManager) RecoveryOver(taskid string) error

func (*TaskManager) StartHanging

func (t *TaskManager) StartHanging(taskid string) error

func (*TaskManager) Suspend

func (t *TaskManager) Suspend(taskid string) error

Suspend 暂停指定task

type TaskStatus

type TaskStatus string

任务状态定义

var (
	PendingStatus    TaskStatus = "pending"
	RunningStatus    TaskStatus = "running"
	HangingStatus    TaskStatus = "hanging"
	PreHangingStatus TaskStatus = "prehanging"
	FinishedStatus   TaskStatus = "finished"
)

Jump to

Keyboard shortcuts

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