Merge pull request 'Task Management - Task list' (#85) from devad/pcm-coordinator:master into master

Former-commit-id: 41d06eaa9b276ccaa0c35463bd844aa1cdc02912
This commit is contained in:
devad 2024-03-28 16:39:46 +08:00
commit ba27393ba0
6 changed files with 137 additions and 0 deletions

View File

@ -235,6 +235,30 @@ type (
ParticipantId int64 `json:"participantId"`
ParticipantName string `json:"participantName"`
}
pageTaskReq {
Name string `form:"name,optional"`
PageInfo
}
TaskModel {
Id int64 `json:"id,omitempty" db:"id"` // id
Name string `json:"name,omitempty" db:"name"` // 作业名称
Description string `json:"description,omitempty" db:"description"` // 作业描述
Status string `json:"status,omitempty" db:"status"` // 作业状态
Strategy int64 `json:"strategy" db:"strategy"` // 策略
SynergyStatus int64 `json:"synergyStatus" db:"synergy_status"`// 协同状态0-未协同、1-已协同)
CommitTime string `json:"commitTime,omitempty" db:"commit_time"` // 提交时间
StartTime string `json:"startTime,omitempty" db:"start_time"` // 开始时间
EndTime string `json:"endTime,omitempty" db:"end_time"` // 结束运行时间
RunningTime int64 `json:"runningTime" db:"running_time"` // 已运行时间(单位秒)
YamlString string `json:"yamlString,omitempty" db:"yaml_string"`
Result string `json:"result,omitempty" db:"result"` // 作业结果
DeletedAt string `json:"deletedAt,omitempty" gorm:"index" db:"deleted_at"`
NsID string `json:"nsId,omitempty" db:"ns_id"`
tenantId string `json:"tenantId,omitempty" db:"tenant_id"`
createTime string `json:"createTime,omitempty" db:"create_time" gorm:"autoCreateTime"`
}
)
// 任务列表参数

View File

@ -129,6 +129,10 @@ service pcm {
@doc "cluster resource load"
@handler clustersLoadHandler
get /core/cluster/load (clustersLoadReq) returns (clustersLoadResp)
@doc "paging queries the task list"
@handler pageListTaskHandler
get /core/task/list (pageTaskReq) returns(PageResult)
}
//hpc二级接口

View File

@ -0,0 +1,24 @@
package core
import (
"github.com/zeromicro/go-zero/rest/httpx"
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/logic/core"
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/svc"
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/types"
"gitlink.org.cn/JointCloud/pcm-coordinator/pkg/repository/result"
"net/http"
)
func PageListTaskHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.PageTaskReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
l := core.NewPageListTaskLogic(r.Context(), svcCtx)
resp, err := l.PageListTask(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -154,6 +154,11 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) {
Path: "/core/cluster/load",
Handler: core.ClustersLoadHandler(serverCtx),
},
{
Method: http.MethodGet,
Path: "/core/task/list",
Handler: core.PageListTaskHandler(serverCtx),
},
},
rest.WithPrefix("/pcm/v1"),
)

View File

@ -0,0 +1,56 @@
package core
import (
"context"
"gitlink.org.cn/JointCloud/pcm-coordinator/pkg/repository/result"
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/svc"
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/types"
"github.com/zeromicro/go-zero/core/logx"
)
type PageListTaskLogic struct {
logx.Logger
ctx context.Context
svcCtx *svc.ServiceContext
}
func NewPageListTaskLogic(ctx context.Context, svcCtx *svc.ServiceContext) *PageListTaskLogic {
return &PageListTaskLogic{
Logger: logx.WithContext(ctx),
ctx: ctx,
svcCtx: svcCtx,
}
}
func (l *PageListTaskLogic) PageListTask(req *types.PageTaskReq) (resp *types.PageResult, err error) {
limit := req.PageSize
offset := req.PageSize * (req.PageNum - 1)
resp = &types.PageResult{}
var list []types.TaskModel
db := l.svcCtx.DbEngin.Model(&types.TaskModel{}).Table("task")
if req.Name != "" {
db = db.Where("name LIKE ?", "%"+req.Name+"%")
}
db = db.Where("deleted_at is null").Limit(limit).Offset(offset)
//count total
var total int64
err = db.Count(&total).Error
if err != nil {
return resp, err
}
err = db.Order("created_time desc").Find(&list).Error
if err != nil {
return nil, result.NewDefaultError(err.Error())
}
resp.List = list
resp.PageSize = req.PageSize
resp.PageNum = req.PageNum
resp.Total = total
return resp, nil
}

View File

@ -222,6 +222,30 @@ type Task struct {
ParticipantName string `json:"participantName"`
}
type PageTaskReq struct {
Name string `form:"name,optional"`
PageInfo
}
type TaskModel struct {
Id int64 `json:"id,omitempty" db:"id"` // id
Name string `json:"name,omitempty" db:"name"` // 作业名称
Description string `json:"description,omitempty" db:"description"` // 作业描述
Status string `json:"status,omitempty" db:"status"` // 作业状态
Strategy int64 `json:"strategy" db:"strategy"` // 策略
SynergyStatus int64 `json:"synergyStatus" db:"synergy_status"` // 协同状态0-未协同、1-已协同)
CommitTime string `json:"commitTime,omitempty" db:"commit_time"` // 提交时间
StartTime string `json:"startTime,omitempty" db:"start_time"` // 开始时间
EndTime string `json:"endTime,omitempty" db:"end_time"` // 结束运行时间
RunningTime int64 `json:"runningTime" db:"running_time"` // 已运行时间(单位秒)
YamlString string `json:"yamlString,omitempty" db:"yaml_string"`
Result string `json:"result,omitempty" db:"result"` // 作业结果
DeletedAt string `json:"deletedAt,omitempty" gorm:"index" db:"deleted_at"`
NsID string `json:"nsId,omitempty" db:"ns_id"`
TenantId string `json:"tenantId,omitempty" db:"tenant_id"`
CreateTime string `json:"createTime,omitempty" db:"create_time" gorm:"autoCreateTime"`
}
type TaskDetailReq struct {
TaskId int64 `path:"taskId"`
}