Browse Source

创建任务返回任务id

pull/499/head
zhangwei 5 months ago
parent
commit
3e9d9efcd7
6 changed files with 5457 additions and 5650 deletions
  1. +4
    -0
      desc/core/pcm-core.api
  2. +4
    -5
      desc/pcm.api
  3. +7
    -6
      internal/handler/cloud/commitgeneraltaskhandler.go
  4. +788
    -992
      internal/handler/routes.go
  5. +10
    -7
      internal/logic/cloud/commitgeneraltasklogic.go
  6. +4644
    -4640
      internal/types/types.go

+ 4
- 0
desc/core/pcm-core.api View File

@@ -170,6 +170,10 @@ type (
UserIp string `json:"userIp,optional"`
}

GeneralTaskResp {
TaskId int64 `json:"taskId"`
}

PodLogsReq {
TaskId string `json:"taskId"`
TaskName string `json:"taskName"`


+ 4
- 5
desc/pcm.api View File

@@ -211,7 +211,7 @@ service pcm {
@doc "获取资源规格范围"
@handler resourceRange
get /core/ai/resourceSpec/range (ResourceSpecReq) returns (ListResult)
//集群资源规格----- 结束
//集群资源规格----- 结束
}

//hpc二级接口
@@ -297,7 +297,7 @@ service pcm {

@doc "Create cloud computing common tasks"
@handler commitGeneralTask
post /cloud/task/create (GeneralTaskReq)
post /cloud/task/create (GeneralTaskReq) returns (GeneralTaskResp)

@handler podLogs
post /cloud/pod/logs (PodLogsReq) returns (string)
@@ -456,7 +456,7 @@ service pcm {
@doc "文本识别"
@handler ChatHandler
post /ai/chat (ChatReq) returns (ChatResult)
/******chat end***********/
/******chat end***********/
}

//screen接口
@@ -1145,5 +1145,4 @@ service pcm {

@handler scheduleSituationHandler
get /monitoring/schedule/situation returns (scheduleSituationResp)
}

}

+ 7
- 6
internal/handler/cloud/commitgeneraltaskhandler.go View File

@@ -1,15 +1,16 @@
package cloud

import (
"github.com/zeromicro/go-zero/rest/httpx"
"gitlink.org.cn/JointCloud/pcm-coordinator/internal/logic/cloud"
"gitlink.org.cn/JointCloud/pcm-coordinator/internal/svc"
"gitlink.org.cn/JointCloud/pcm-coordinator/internal/types"
"gitlink.org.cn/JointCloud/pcm-coordinator/pkg/models"
"gitlink.org.cn/JointCloud/pcm-coordinator/pkg/repository/result"
"gitlink.org.cn/JointCloud/pcm-coordinator/pkg/utils"
"k8s.io/apimachinery/pkg/util/json"
"net/http"

"github.com/zeromicro/go-zero/rest/httpx"
"gitlink.org.cn/JointCloud/pcm-coordinator/internal/logic/cloud"
"gitlink.org.cn/JointCloud/pcm-coordinator/internal/svc"
"gitlink.org.cn/JointCloud/pcm-coordinator/internal/types"
)

func CommitGeneralTaskHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
@@ -32,7 +33,7 @@ func CommitGeneralTaskHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
json.Unmarshal([]byte(userStr), user)
req.UserId = user.Id
l := cloud.NewCommitGeneralTaskLogic(r.Context(), svcCtx)
err := l.CommitGeneralTask(&req)
result.HttpResult(r, w, nil, err)
resp, err := l.CommitGeneralTask(&req)
result.HttpResult(r, w, resp, err)
}
}

+ 788
- 992
internal/handler/routes.go
File diff suppressed because it is too large
View File


+ 10
- 7
internal/logic/cloud/commitgeneraltasklogic.go View File

@@ -43,7 +43,9 @@ func NewCommitGeneralTaskLogic(ctx context.Context, svcCtx *svc.ServiceContext)
}
}

func (l *CommitGeneralTaskLogic) CommitGeneralTask(req *types.GeneralTaskReq) error {
func (l *CommitGeneralTaskLogic) CommitGeneralTask(req *types.GeneralTaskReq) (resp *types.GeneralTaskResp, err error) {
// todo: add your logic here and delete this line
resp = &types.GeneralTaskResp{}
tx := l.svcCtx.DbEngin.Begin()
// 执行回滚或者提交操作
defer func() {
@@ -60,10 +62,10 @@ func (l *CommitGeneralTaskLogic) CommitGeneralTask(req *types.GeneralTaskReq) er
}()
adapterId, _ := strconv.ParseUint(req.AdapterIds[0], 10, 64)
var clusters []*models.CloudModel
err := tx.Raw("SELECT * FROM `t_cluster` where adapter_id in ? and id in ?", req.AdapterIds, req.ClusterIds).Scan(&clusters).Error
err = tx.Raw("SELECT * FROM `t_cluster` where adapter_id in ? and id in ?", req.AdapterIds, req.ClusterIds).Scan(&clusters).Error
if err != nil {
logx.Errorf("CommitGeneralTask() => sql execution error: %v", err)
return errors.Errorf("the cluster does not match the drive resources. Check the data")
return nil, errors.Errorf("the cluster does not match the drive resources. Check the data")
}
taskCloud := cloud.TaskCloudModel{}
opt := &option.CloudOption{}
@@ -73,7 +75,7 @@ func (l *CommitGeneralTaskLogic) CommitGeneralTask(req *types.GeneralTaskReq) er
results, err := l.svcCtx.Scheduler.AssignAndSchedule(sc, executor.SUBMIT_MODE_JOINT_CLOUD, nil)
if err != nil {
logx.Errorf("AssignAndSchedule() => execution error: %v", err)
return err
return nil, err
}

rs := (results).([]*schedulers.CloudResult)
@@ -101,6 +103,7 @@ func (l *CommitGeneralTaskLogic) CommitGeneralTask(req *types.GeneralTaskReq) er
Strategy: strategy,
UserId: req.UserId,
}
resp.TaskId = taskModel.Id
var taskClouds []cloud.TaskCloudModel
adapterName := ""
tx.Table("t_adapter").Select("name").Where("id=?", adapterId).Find(&adapterName)
@@ -138,12 +141,12 @@ func (l *CommitGeneralTaskLogic) CommitGeneralTask(req *types.GeneralTaskReq) er

if db.Error != nil {
logx.Errorf("Task creation failure, err: %v", db.Error)
return errors.New("task creation failure")
return nil, errors.New("task creation failure")
}
// 数据上链
bytes, _ := json.Marshal(taskModel)
if err != nil {
return err
return nil, err
}
// 查询资源价格
var price int64
@@ -163,7 +166,7 @@ func (l *CommitGeneralTaskLogic) CommitGeneralTask(req *types.GeneralTaskReq) er
Amount: price,
Args: []string{strconv.FormatInt(taskModel.Id, 10), string(bytes)},
})
return nil
return resp, nil
}

func UnMarshalK8sStruct(yamlString string, replica int64) *unstructured.Unstructured {


+ 4644
- 4640
internal/types/types.go
File diff suppressed because it is too large
View File


Loading…
Cancel
Save