Skip to content

Commit

Permalink
feat(task) add auto create task interface
Browse files Browse the repository at this point in the history
  • Loading branch information
noovertime7 committed Oct 19, 2022
1 parent d35a100 commit 98a46a7
Show file tree
Hide file tree
Showing 6 changed files with 406 additions and 97 deletions.
29 changes: 23 additions & 6 deletions agent/agentcontroller/task.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ type AgentTaskController struct {
func AgentTaskRegister(group *gin.RouterGroup) {
task := &AgentTaskController{service: agentservice.GetClusterTaskService()}
group.POST("/taskadd", task.TaskAdd)
group.POST("/task_auto_add", task.TaskAutoAdd)
group.GET("/tasklist", task.TaskList)
group.GET("/taskdetail", task.TaskDetail)
group.DELETE("/taskdelete", task.TaskDelete)
Expand All @@ -31,12 +32,28 @@ func (a *AgentTaskController) TaskAdd(ctx *gin.Context) {
return
}
if err := a.service.TaskAdd(ctx, params); err != nil {
log.Logger.Error("agent添加主机失败", err)
log.Logger.Error("agent添加任务失败", err)
middleware.ResponseError(ctx, globalError.NewGlobalError(globalError.TaskAddError, err))
return
}
middleware.ResponseSuccess(ctx, "添加成功")
log.Logger.Info("agent添加主机成功")
log.Logger.Info("agent添加任务成功")
}

func (a *AgentTaskController) TaskAutoAdd(ctx *gin.Context) {
params := &agentdto.TaskAutoAddInput{}
if err := params.BindValidParams(ctx); err != nil {
log.Logger.Error(err)
middleware.ResponseError(ctx, globalError.NewGlobalError(globalError.ParamBindError, err))
return
}
if err := a.service.TaskAutoAdd(ctx, params); err != nil {
log.Logger.Error("agent自动创建任务成功失败", err)
middleware.ResponseError(ctx, globalError.NewGlobalError(globalError.TaskAddError, err))
return
}
middleware.ResponseSuccess(ctx, "自动创建任务成功")
log.Logger.Info("agent自动创建任务成功成功")
}

func (a *AgentTaskController) TaskList(ctx *gin.Context) {
Expand Down Expand Up @@ -64,12 +81,12 @@ func (a *AgentTaskController) TaskDetail(ctx *gin.Context) {
}
data, err := a.service.TaskDetail(ctx, params)
if err != nil {
log.Logger.Error("agent查询主机详情失败", err)
log.Logger.Error("agent查询任务详情失败", err)
middleware.ResponseError(ctx, globalError.NewGlobalError(globalError.ParamBindError, err))
return
}
middleware.ResponseSuccess(ctx, data)
log.Logger.Info("agent查询主机详情成功")
log.Logger.Info("agent查询任务详情成功")
}

func (a *AgentTaskController) TaskDelete(ctx *gin.Context) {
Expand All @@ -84,7 +101,7 @@ func (a *AgentTaskController) TaskDelete(ctx *gin.Context) {
middleware.ResponseError(ctx, globalError.NewGlobalError(globalError.TaskDeleteError, err))
}
middleware.ResponseSuccess(ctx, "删除成功")
log.Logger.Info("agent删除主机成功")
log.Logger.Info("agent删除任务成功")
}

func (a *AgentTaskController) TaskRestore(ctx *gin.Context) {
Expand Down Expand Up @@ -115,5 +132,5 @@ func (a *AgentTaskController) TaskUpdate(ctx *gin.Context) {
return
}
middleware.ResponseSuccess(ctx, "更新成功")
log.Logger.Info("agent更新主机成功")
log.Logger.Info("agent更新任务成功")
}
31 changes: 27 additions & 4 deletions agent/agentdto/task.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,25 @@ type TaskAddInput struct {
Directory string `json:"directory" validate:"" form:"directory"`
}

// TaskAutoAddInput 新增task
type TaskAutoAddInput struct {
ServiceName string `json:"service_name" form:"service_name" validate:"required" comment:"服务名"`
HostID int64 `json:"host_id" form:"host_id" validate:"required"`
BackupCycle string `form:"backup_cycle" json:"backup_cycle" comment:"数据库备份时间" validate:"required,is_valid_bycle" example:"123456"`
KeepNumber int64 `form:"keep_number" json:"keep_number" comment:"保留周期" validate:"required" example:"123456"`
IsAllDBBak int64 `form:"is_all_dbBak" json:"is_all_dbBak" comment:"是否全库备份 0开启 1关闭" example:"123456"`
IsDingSend int64 `json:"is_ding_send" form:"is_ding_send"`
DingAccessToken string `json:"ding_access_token" form:"ding_access_token"`
DingSecret string `json:"ding_secret" form:"ding_secret"`
OssType int64 `json:"oss_type" validate:"" form:"oss_type"`
IsOssSave int64 `json:"is_oss_save" validate:"" form:"is_oss_save"`
Endpoint string `json:"endpoint" validate:"" form:"endpoint"`
OssAccess string `json:"oss_access" validate:"" form:"oss_access"`
OssSecret string `json:"oss_secret" validate:"" form:"oss_secret"`
BucketName string `json:"bucket_name" validate:"" form:"bucket_name"`
Directory string `json:"directory" validate:"" form:"directory"`
}

// TaskUpdateInput 更新任务
type TaskUpdateInput struct {
ServiceName string `json:"service_name" form:"service_name" validate:"required" comment:"服务名"`
Expand All @@ -46,10 +65,6 @@ type TaskUpdateInput struct {
Directory string `json:"directory" validate:"" form:"directory" `
}

func (d *TaskUpdateInput) BindValidParams(ctx *gin.Context) error {
return public.DefaultGetValidParams(ctx, d)
}

// TaskListInput 通过page pagesize 查询服务信息
type TaskListInput struct {
ServiceName string `json:"service_name" form:"service_name" validate:"required" comment:"服务名"`
Expand Down Expand Up @@ -103,6 +118,14 @@ func (d *TaskAddInput) BindValidParams(ctx *gin.Context) error {
return public.DefaultGetValidParams(ctx, d)
}

func (d *TaskAutoAddInput) BindValidParams(ctx *gin.Context) error {
return public.DefaultGetValidParams(ctx, d)
}

func (d *TaskListInput) BindValidParams(ctx *gin.Context) error {
return public.DefaultGetValidParams(ctx, d)
}

func (d *TaskUpdateInput) BindValidParams(ctx *gin.Context) error {
return public.DefaultGetValidParams(ctx, d)
}
31 changes: 31 additions & 0 deletions agent/agentservice/task.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,37 @@ func (t *TaskService) TaskAdd(ctx *gin.Context, params *agentdto.TaskAddInput) e
return nil
}

func (t *TaskService) TaskAutoAdd(ctx *gin.Context, params *agentdto.TaskAutoAddInput) error {
taskService, addr, err := pkg.GetTaskService(params.ServiceName)
if err != nil {
return err
}
var ops client.CallOption = func(options *client.CallOptions) {
options.Address = []string{addr}
}
taskAddinput := &task.TaskAutoCreateInPut{
HostID: params.HostID,
BackupCycle: params.BackupCycle,
KeepNumber: params.KeepNumber,
IsAllDBBak: params.IsAllDBBak,
IsDingSend: params.IsDingSend,
DingAccessToken: params.DingAccessToken,
DingSecret: params.DingSecret,
OssType: params.OssType,
IsOssSave: params.IsOssSave,
Endpoint: params.Endpoint,
OssAccess: params.OssAccess,
OssSecret: params.OssSecret,
BucketName: params.BucketName,
Directory: params.Directory,
}
data, err := taskService.TaskAutoCreate(ctx, taskAddinput, ops)
if err != nil || !data.OK {
return err
}
return nil
}

func (t *TaskService) TaskList(ctx context.Context, params *agentdto.TaskListInput) (*task.TaskListOutPut, error) {
taskService, addr, err := pkg.GetTaskService(params.ServiceName)
if err != nil {
Expand Down
Loading

0 comments on commit 98a46a7

Please sign in to comment.