Documentation ¶
Index ¶
- Constants
- Variables
- func AddBuiltin(name string, f Function) *starlark.Builtin
- func Call(thread *starlark.Thread, dict starlark.StringDict, funcinfo string, ...) (interface{}, error)
- func GetArgs(args interface{}) (starlark.Tuple, error)
- func GetKwargs(kwargs map[string]interface{}) ([]starlark.Tuple, error)
- func NewSecretsManager() *secretsManager
- func PathExists(path string) bool
- func SafePrint(thread *starlark.Thread, msg string)
- type Context
- type Function
- type Task
- type TaskManager
- func (t *TaskManager) Add(taskid string, thread *starlark.Thread, eventsCh chan event.Event)
- func (t *TaskManager) Delete(taskid string, dict starlark.StringDict)
- func (t *TaskManager) Get(taskid string) *Task
- func (t *TaskManager) GetAll() map[string]*Task
- func (t *TaskManager) Kill(taskid string)
- func (t *TaskManager) Recovery(taskid string) error
- func (t *TaskManager) RecoveryOver(taskid string) error
- func (t *TaskManager) StartHanging(taskid string) error
- func (t *TaskManager) Suspend(taskid string) error
- type TaskStatus
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 ¶
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 NewSecretsManager ¶
func NewSecretsManager() *secretsManager
NewSecretsManager 返回密码管理器对象,该对象记录了所有的密码信息
Types ¶
type Context ¶
Context 当执行脚本时携带上下文
func NewContext ¶
NewContext 创建上下文
func (*Context) Struct ¶
func (c *Context) Struct() *starlarkstruct.Struct
Struct 作为starlark.Struct方式传递
type Task ¶
Task 任务描述
func (*Task) GetStatus ¶
func (t *Task) GetStatus() TaskStatus
func (*Task) TrigerDataEvent ¶
TrigerDataEvent 触发数据事件,收到事件后进行归档操作
type TaskManager ¶
TaskManager 任务管理器,管理全局任务状态
func GetTaskManager ¶
func GetTaskManager() *TaskManager
func (*TaskManager) Delete ¶
func (t *TaskManager) Delete(taskid string, dict starlark.StringDict)
Delete 删除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
type TaskStatus ¶
type TaskStatus string
任务状态定义
var ( PendingStatus TaskStatus = "pending" RunningStatus TaskStatus = "running" HangingStatus TaskStatus = "hanging" PreHangingStatus TaskStatus = "prehanging" FinishedStatus TaskStatus = "finished" )
Click to show internal directories.
Click to hide internal directories.