diff --git a/api/desc/core/pcm-core.api b/api/desc/core/pcm-core.api index 9d3b7803..a340da14 100644 --- a/api/desc/core/pcm-core.api +++ b/api/desc/core/pcm-core.api @@ -1086,4 +1086,11 @@ type Card { TOpsAtFp16 float64 `json:"TOpsAtFp16"` CardHours float64 `json:"cardHours"` CardNum int32 `json:"cardNum"` +} + +type TaskStatusResp { + Succeeded int `json:"Succeeded"` + Failed int `json:"Failed"` + Running int `json:"Running"` + Pause int `json:"Pause"` } \ No newline at end of file diff --git a/api/desc/pcm.api b/api/desc/pcm.api index 13e2e7a0..2c76692c 100644 --- a/api/desc/pcm.api +++ b/api/desc/pcm.api @@ -136,7 +136,7 @@ service pcm { @doc "Statistical task status" @handler countTaskStatus - get /core/task/countTaskStatus () returns(ListResult) + get /core/task/countTaskStatus () returns(TaskStatusResp) } //hpc二级接口 diff --git a/api/desc/pcm.json b/api/desc/pcm.json index 8e37ad67..e7694333 100644 --- a/api/desc/pcm.json +++ b/api/desc/pcm.json @@ -15102,7 +15102,7 @@ "taskName": { "type": "string" }, - "taskStatus": { + "TaskStatus": { "type": "string" }, "startedAt": { @@ -15118,7 +15118,7 @@ "required": [ "taskId", "taskName", - "taskStatus", + "TaskStatus", "startedAt", "completedAt" ] diff --git a/api/desc/storelink/pcm-storelink.api b/api/desc/storelink/pcm-storelink.api index cb04f4fa..eeea4c46 100644 --- a/api/desc/storelink/pcm-storelink.api +++ b/api/desc/storelink/pcm-storelink.api @@ -94,7 +94,7 @@ type ( TaskSl { TaskId string `json:"taskId"` TaskName string `json:"taskName"` - TaskStatus string `json:"taskStatus"` + TaskStatus string `json:"TaskStatus"` StartedAt int64 `json:"startedAt"` CompletedAt int64 `json:"completedAt"` } diff --git a/api/internal/logic/core/counttaskstatuslogic.go b/api/internal/logic/core/counttaskstatuslogic.go index 7f8cc190..5cedea7f 100644 --- a/api/internal/logic/core/counttaskstatuslogic.go +++ b/api/internal/logic/core/counttaskstatuslogic.go @@ -3,6 +3,7 @@ package core import ( "context" "github.com/pkg/errors" + "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/svc" "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/types" @@ -23,19 +24,18 @@ func NewCountTaskStatusLogic(ctx context.Context, svcCtx *svc.ServiceContext) *C } } -type taskStatus struct { - Quantity string `json:"quantity"` - Status string `json:"status"` -} - -func (l *CountTaskStatusLogic) CountTaskStatus() (resp *types.ListResult, err error) { - resp = &types.ListResult{} - var taskStatusList []*taskStatus - err = l.svcCtx.DbEngin.Raw("select count(*) quantity, status from task group by status").Scan(&taskStatusList).Error +func (l *CountTaskStatusLogic) CountTaskStatus() (resp *types.TaskStatusResp, err error) { + resp = &types.TaskStatusResp{} + sqlStr := `SELECT + COUNT(CASE WHEN status = 'Succeeded' THEN 1 END) AS Succeeded, + COUNT(CASE WHEN status = 'Failed' THEN 1 END) AS Failed, + COUNT(CASE WHEN status = 'Running' THEN 1 END) AS Running, + COUNT(CASE WHEN status = 'Pause' THEN 1 END) AS Pause + FROM task;` + err = l.svcCtx.DbEngin.Raw(sqlStr).Scan(&resp).Error if err != nil { logx.Errorf("CountTaskStatus() => sql execution error: %v", err) return nil, errors.Errorf("Description Failed to collect statistics on the status of a task. Please try again later") } - resp.List = &taskStatusList return } diff --git a/api/internal/types/types.go b/api/internal/types/types.go index 757053fb..59dd185d 100644 --- a/api/internal/types/types.go +++ b/api/internal/types/types.go @@ -1052,6 +1052,13 @@ type Card struct { CardNum int32 `json:"cardNum"` } +type TaskStatusResp struct { + Succeeded int `json:"Succeeded"` + Failed int `json:"Failed"` + Running int `json:"Running"` + Pause int `json:"Pause"` +} + type CommitHpcTaskReq struct { Name string `json:"name"` // paratera:jobName Description string `json:"description,optional"` @@ -5428,7 +5435,7 @@ type DeleteLinkTaskResp struct { type TaskSl struct { TaskId string `json:"taskId"` TaskName string `json:"taskName"` - TaskStatus string `json:"taskStatus"` + TaskStatus string `json:"TaskStatus"` StartedAt int64 `json:"startedAt"` CompletedAt int64 `json:"completedAt"` } @@ -5541,8 +5548,6 @@ type CreateAlertRuleReq struct { type AlertRulesReq struct { AlertType string `form:"alertType"` - AdapterId string `form:"adapterId,optional"` - ClusterId string `form:"clusterId,optional"` } type AlertRulesResp struct {