Documentation ¶
Overview ¶
Package atask default agent subtask response format:
{ "status" : "succeed", //succeed or failed "msg" : "No such file or directory", // "token" : "c5mej1rc77ubvhrfifkg", //the token }
Index ¶
- Constants
- Variables
- func AgentControlDistribute(Jid string, k, v interface{}) (interface{}, error)
- func AgentControlDistributeV2(Jid string, k, v interface{}) (interface{}, error)
- func AgentControlDo(Jid string, args interface{}) (interface{}, error)
- func AgentControlDoV2(Jid string, args interface{}) (interface{}, error)
- func CancelTask(taskID string) error
- func CreateConfTask(t *AgentTask) (string, int64, error)
- func CreateCtrlTask(t *AgentTask) (string, int64, error)
- func CreateTask(request *AgentTask, tType string) (string, int64, error)
- func CreateTaskAndRun(request *AgentTask, tType string, concurrence int) (string, int64, error)
- func CreateTaskTask(t *AgentTask) (string, int64, error)
- func DefaultResFunc(data map[string]interface{})
- func GenerateToken() string
- func GetSubTaskTokenList(ctx context.Context, taskID string) []string
- func Init()
- func PushSubTask(data map[string]interface{})
- func RegistryResFunc(dt string, f ResFunc)
- func ResFuncOld(data map[string]interface{})
- func RunTask(taskID string, rollPercent float64, runCount int, concurrence int) (string, int, error)
- func SendFastTask(agentID string, taskMsg *AgentTaskMsg, needAgentResp bool, timeout int64, ...) (string, error)
- type AgentJobParam
- type AgentSubTask
- type AgentSubTaskToken
- type AgentTask
- type ResFunc
- type SubTaskCount
- type TaskResFuc
Constants ¶
const ( AgentRebootType = 1060 TypeAgentConfig = "Agent_Config" TypeAgentTask = "Agent_Task" TypeAgentCtrl = "Agent_Ctrl" TaskStatusCreated = "created" //未执行 TaskStatusRunning = "running" //执行中 TaskStatusFinished = "finished" // only for task status and task inner_status TaskStatusStopped = "cancelled" // only for task status and task inner_status TaskStatusFail = "failed" // only for subtask status TaskStatusSuccess = "succeed" // only for subtask status TaskStatusResultFail = "result_failed" // only for subtask status TaskStatusResultSuccess = "result_succeed" // only for subtask status )
const AgentJobTimeOut = 60 * 60 // 1 hour
Variables ¶
var ResMap = map[string]ResFunc{}
Functions ¶
func AgentControlDistribute ¶
AgentControlDistribute for old version config
func AgentControlDistributeV2 ¶
AgentControlDistributeV2 for new version config
func AgentControlDo ¶
AgentControlDo for old version config
func AgentControlDoV2 ¶
AgentControlDoV2 for new version config. config load from task_data
func CancelTask ¶
CancelTask cancel a task and set the task_status and inner_status to TaskStatusStopped.
func CreateTask ¶
CreateTask Create a distributed agent task and return taskID, count of subtask, or error.
func CreateTaskAndRun ¶
CreateTaskAndRun Create a distributed agent task and run, return the taskID, count of subtask, or error.
func DefaultResFunc ¶
func DefaultResFunc(data map[string]interface{})
func GenerateToken ¶
func GenerateToken() string
func PushSubTask ¶
func PushSubTask(data map[string]interface{})
func RegistryResFunc ¶
func ResFuncOld ¶
func ResFuncOld(data map[string]interface{})
func RunTask ¶
func RunTask(taskID string, rollPercent float64, runCount int, concurrence int) (string, int, error)
RunTask run a task and return jobID, count of subtask, or error. If rollPercent > 0 , use rollPercent, else use runCount. Concurrence controls the concurrency of each manager instance, so the true concurrency is concurrence * number of instances.
Types ¶
type AgentJobParam ¶
type AgentSubTask ¶
type AgentSubTask struct { AppendData map[string]interface{} `json:"append_data" bson:"append_data"` //创建子任务携带额外信息 TaskType string `json:"task_type" bson:"task_type" ` //TypeAgentConfig TypeAgentTask TypeAgentCtrl TaskDataType int32 `json:"task_data_type" bson:"task_data_type" ` // AgentID string `json:"agent_id" bson:"agent_id" ` TaskID string `json:"task_id" bson:"task_id" ` JobID string `json:"job_id" bson:"job_id" ` //子任务对应jobID(如果有) TaskData interface{} `json:"task_data" bson:"task_data"` //任务下发ac json body TaskUrl string `json:"task_url" bson:"task_url"` //任务下发ac url Token string `json:"token" bson:"token"` Status string `json:"status" bson:"status"` //子任务状态 TaskStatusCreated|TaskStatusRunning|TaskStatusSuccess|TaskStatusFail|TaskStatusResultFail|TaskStatusResultSuccess StatusMsg string `json:"status_msg" bson:"status_msg"` //状态说明信息 InsertTime int64 `json:"insert_time" bson:"insert_time"` UpdateTime int64 `json:"update_time" bson:"update_time"` JobTimeOutTime int64 `json:"job_time_out_time" bson:"job_time_out_time"` //子任务超时时间 JobStartTime int64 `json:"job_start_time" bson:"job_start_time"` //任务开始时间(指开始下发到AC的时间) TaskResult interface{} `json:"task_result" bson:"task_result"` //agent上报数据 TaskResp string `json:"task_resp" bson:"task_resp"` //任务下发ac response }
type AgentSubTaskToken ¶
type AgentSubTaskToken struct {
Token string `json:"token" bson:"token"`
}
type AgentTask ¶
type AgentTask struct { Tag string `json:"tag" bson:"tag"` IDList []string `json:"id_list" bson:"id_list"` Filter *common.FilterQuery `json:"filter" bson:"filter"` Data ConfigRequest `json:"data" binding:"required" bson:"data"` TaskName string `json:"task_name" bson:"task_name"` Action string `json:"action" bson:"action"` TaskUser string `json:"task_user" bson:"task_user"` SubTaskRunningTimeout int64 `json:"subtask_running_timeout" bson:"subtask_running_timeout"` //子任务超时时间 TaskID string `json:"task_id" bson:"task_id"` TaskType string `json:"task_type" bson:"task_type"` //TypeAgentConfig TypeAgentTask TypeAgentCtrl InnerStatus string `json:"inner_status" bson:"inner_status"` //记录下发状态 TaskStatus string `json:"task_status" bson:"task_status"` //记录任务状态 ToDoList []string `json:"todo_list" bson:"todo_list"` IDCount float64 `json:"id_count" bson:"id_count"` DistributedCount int `json:"distributed_count" bson:"distributed_count"` //总共下发总数,包括未执行完成的 JobList []string `json:"job_list" bson:"job_list"` //count from subTask SubTaskCreated int `json:"sub_task_created" bson:"sub_task_created"` SubTaskRunning int `json:"sub_task_running" bson:"sub_task_running"` SubTaskFailed int `json:"sub_task_failed" bson:"sub_task_failed"` SubTaskSucceed int `json:"sub_task_succeed" bson:"sub_task_succeed"` CreateTime int64 `json:"create_time" bson:"create_time" bson:"create_time"` UpdateTime int64 `json:"update_time" bson:"update_time" bson:"update_time"` }
func GetTaskByID ¶
type SubTaskCount ¶
type TaskResFuc ¶
type TaskResFuc func(subTask *AgentSubTask, err error) error