Former-commit-id: a47bea1ee2
pull/154/head
| @@ -166,6 +166,18 @@ type ( | |||
| ReqBody []string `json:"reqBody"` | |||
| Replicas int64 `json:"replicas,string"` | |||
| } | |||
| PodLogsReq { | |||
| TaskId string `json:"taskId"` | |||
| TaskName string `json:"taskName"` | |||
| ClusterId string `json:"clusterId"` | |||
| ClusterName string `json:"clusterName"` | |||
| AdapterId string `json:"adapterId"` | |||
| AdapterName string `json:"adapterName"` | |||
| PodName string `json:"podName"` | |||
| stream bool `json:"stream"` | |||
| } | |||
| ) | |||
| type deleteTaskReq { | |||
| @@ -231,6 +231,9 @@ service pcm { | |||
| @doc "Create cloud computing common tasks" | |||
| @handler commitGeneralTask | |||
| post /cloud/task/create (GeneralTaskReq) returns () | |||
| @handler podLogs | |||
| post /cloud/pod/logs (PodLogsReq) returns (string) | |||
| } | |||
| //智算二级接口 | |||
| @@ -968,10 +971,10 @@ service pcm { | |||
| post /schedule/getOverview returns (ScheduleOverviewResp) | |||
| @handler DownloadAlgothmCodeHandler | |||
| get /schedule/getDownloadAlgothmCode (DownloadAlgorithmCodeReq) returns (DownloadAlgorithmCodeResp) | |||
| get /schedule/downloadAlgorithmCode (DownloadAlgorithmCodeReq) returns (DownloadAlgorithmCodeResp) | |||
| @handler UploadAlgothmCodeHandler | |||
| post /schedule/getDownloadAlgothmCode (UploadAlgorithmCodeReq) returns (UploadAlgorithmCodeResp) | |||
| post /schedule/uploadAlgorithmCode (UploadAlgorithmCodeReq) returns (UploadAlgorithmCodeResp) | |||
| @handler GetComputeCardsByClusterHandler | |||
| get /schedule/getComputeCardsByCluster/:adapterId/:clusterId (GetComputeCardsByClusterReq) returns (GetComputeCardsByClusterResp) | |||
| @@ -109,11 +109,10 @@ type ( | |||
| TaskType string `form:"taskType"` | |||
| Dataset string `form:"dataset"` | |||
| Algorithm string `form:"algorithm"` | |||
| Code string `form:"code"` | |||
| } | |||
| DownloadAlgorithmCodeResp { | |||
| Code string `json:"algorithms"` | |||
| Code string `json:"code"` | |||
| } | |||
| UploadAlgorithmCodeReq { | |||
| @@ -0,0 +1,24 @@ | |||
| package cloud | |||
| import ( | |||
| "github.com/zeromicro/go-zero/rest/httpx" | |||
| "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/logic/cloud" | |||
| "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 PodLogsHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { | |||
| return func(w http.ResponseWriter, r *http.Request) { | |||
| var req types.PodLogsReq | |||
| if err := httpx.Parse(r, &req); err != nil { | |||
| result.ParamErrorResult(r, w, err) | |||
| return | |||
| } | |||
| l := cloud.NewPodLogsLogic(r.Context(), svcCtx, w) | |||
| resp, err := l.PodLogs(&req, w) | |||
| result.HttpResult(r, w, resp, err) | |||
| } | |||
| } | |||
| @@ -277,6 +277,11 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) { | |||
| Path: "/cloud/task/create", | |||
| Handler: cloud.CommitGeneralTaskHandler(serverCtx), | |||
| }, | |||
| { | |||
| Method: http.MethodPost, | |||
| Path: "/cloud/pod/logs", | |||
| Handler: cloud.PodLogsHandler(serverCtx), | |||
| }, | |||
| }, | |||
| rest.WithPrefix("/pcm/v1"), | |||
| ) | |||
| @@ -1207,12 +1212,12 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) { | |||
| }, | |||
| { | |||
| Method: http.MethodGet, | |||
| Path: "/schedule/getDownloadAlgothmCode", | |||
| Path: "/schedule/downloadAlgorithmCode", | |||
| Handler: schedule.DownloadAlgothmCodeHandler(serverCtx), | |||
| }, | |||
| { | |||
| Method: http.MethodPost, | |||
| Path: "/schedule/getDownloadAlgothmCode", | |||
| Path: "/schedule/uploadAlgorithmCode", | |||
| Handler: schedule.UploadAlgothmCodeHandler(serverCtx), | |||
| }, | |||
| { | |||
| @@ -7,22 +7,19 @@ import ( | |||
| "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/logic/schedule" | |||
| "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" | |||
| ) | |||
| func DownloadAlgothmCodeHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { | |||
| return func(w http.ResponseWriter, r *http.Request) { | |||
| var req types.DownloadAlgorithmCodeReq | |||
| if err := httpx.Parse(r, &req); err != nil { | |||
| httpx.ErrorCtx(r.Context(), w, err) | |||
| result.ParamErrorResult(r, w, err) | |||
| return | |||
| } | |||
| l := schedule.NewDownloadAlgothmCodeLogic(r.Context(), svcCtx) | |||
| resp, err := l.DownloadAlgothmCode(&req) | |||
| if err != nil { | |||
| httpx.ErrorCtx(r.Context(), w, err) | |||
| } else { | |||
| httpx.OkJsonCtx(r.Context(), w, resp) | |||
| } | |||
| resp, err := l.DownloadAlgorithmCode(&req) | |||
| result.HttpResult(r, w, resp, err) | |||
| } | |||
| } | |||
| @@ -7,22 +7,19 @@ import ( | |||
| "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/logic/schedule" | |||
| "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" | |||
| ) | |||
| func UploadAlgothmCodeHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { | |||
| return func(w http.ResponseWriter, r *http.Request) { | |||
| var req types.UploadAlgorithmCodeReq | |||
| if err := httpx.Parse(r, &req); err != nil { | |||
| httpx.ErrorCtx(r.Context(), w, err) | |||
| result.ParamErrorResult(r, w, err) | |||
| return | |||
| } | |||
| l := schedule.NewUploadAlgothmCodeLogic(r.Context(), svcCtx) | |||
| resp, err := l.UploadAlgothmCode(&req) | |||
| if err != nil { | |||
| httpx.ErrorCtx(r.Context(), w, err) | |||
| } else { | |||
| httpx.OkJsonCtx(r.Context(), w, resp) | |||
| } | |||
| resp, err := l.UploadAlgorithmCode(&req) | |||
| result.HttpResult(r, w, resp, err) | |||
| } | |||
| } | |||
| @@ -99,6 +99,8 @@ func (l *CommitGeneralTaskLogic) CommitGeneralTask(req *types.GeneralTaskReq) er | |||
| Strategy: strategy, | |||
| } | |||
| var taskClouds []cloud.TaskCloudModel | |||
| adapterName := "" | |||
| tx.Table("t_adapter").Select("name").Where("id=?", adapterId).Find(&adapterName) | |||
| for _, r := range rs { | |||
| for _, s := range req.ReqBody { | |||
| sStruct := UnMarshalK8sStruct(s, int64(r.Replica)) | |||
| @@ -107,6 +109,7 @@ func (l *CommitGeneralTaskLogic) CommitGeneralTask(req *types.GeneralTaskReq) er | |||
| taskCloud.TaskId = uint(taskModel.Id) | |||
| clusterId, _ := strconv.ParseUint(r.ClusterId, 10, 64) | |||
| taskCloud.AdapterId = uint(adapterId) | |||
| taskCloud.AdapterName = adapterName | |||
| taskCloud.ClusterId = uint(clusterId) | |||
| taskCloud.ClusterName = r.ClusterName | |||
| taskCloud.Status = constants.Saved | |||
| @@ -116,8 +119,6 @@ func (l *CommitGeneralTaskLogic) CommitGeneralTask(req *types.GeneralTaskReq) er | |||
| taskClouds = append(taskClouds, taskCloud) | |||
| } | |||
| } | |||
| adapterName := "" | |||
| tx.Table("t_adapter").Select("name").Where("id=?", adapterId).Find(&adapterName) | |||
| noticeInfo := clientCore.NoticeInfo{ | |||
| AdapterId: int64(adapterId), | |||
| AdapterName: adapterName, | |||
| @@ -0,0 +1,30 @@ | |||
| package cloud | |||
| import ( | |||
| "context" | |||
| "github.com/zeromicro/go-zero/core/logx" | |||
| "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/svc" | |||
| "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/types" | |||
| "net/http" | |||
| ) | |||
| type PodLogsLogic struct { | |||
| logx.Logger | |||
| ctx context.Context | |||
| svcCtx *svc.ServiceContext | |||
| w http.ResponseWriter | |||
| } | |||
| func NewPodLogsLogic(ctx context.Context, svcCtx *svc.ServiceContext, w http.ResponseWriter) *PodLogsLogic { | |||
| return &PodLogsLogic{ | |||
| Logger: logx.WithContext(ctx), | |||
| ctx: ctx, | |||
| svcCtx: svcCtx, | |||
| w: w, | |||
| } | |||
| } | |||
| func (l *PodLogsLogic) PodLogs(req *types.PodLogsReq, w http.ResponseWriter) (resp string, err error) { | |||
| // todo: add your logic here and delete this line | |||
| return | |||
| } | |||
| @@ -2,13 +2,12 @@ package core | |||
| import ( | |||
| "context" | |||
| "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" | |||
| "gitlink.org.cn/JointCloud/pcm-coordinator/pkg/utils/timeutils" | |||
| "time" | |||
| "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" | |||
| ) | |||
| @@ -51,14 +50,14 @@ func (l *PageListTaskLogic) PageListTask(req *types.PageTaskReq) (resp *types.Pa | |||
| return nil, result.NewDefaultError(err.Error()) | |||
| } | |||
| for _, model := range list { | |||
| if model.EndTime != "" && model.StartTime != "" { | |||
| if model.StartTime != "" && model.EndTime == "" { | |||
| startTime := timeutils.TimeStringToGoTime(model.StartTime) | |||
| endTime := timeutils.TimeStringToGoTime(model.EndTime) | |||
| model.RunningTime = int64(endTime.Sub(startTime).Seconds()) | |||
| model.RunningTime = int64(time.Now().Sub(startTime).Seconds()) | |||
| } | |||
| if model.StartTime != "" { | |||
| if model.StartTime != "" && model.EndTime != "" { | |||
| startTime := timeutils.TimeStringToGoTime(model.StartTime) | |||
| model.RunningTime = int64(time.Now().Sub(startTime).Seconds()) | |||
| endTime := timeutils.TimeStringToGoTime(model.EndTime) | |||
| model.RunningTime = int64(endTime.Sub(startTime).Seconds()) | |||
| } | |||
| } | |||
| resp.List = &list | |||
| @@ -17,6 +17,7 @@ package core | |||
| import ( | |||
| "context" | |||
| "fmt" | |||
| "gitlink.org.cn/JointCloud/pcm-coordinator/pkg/constants" | |||
| "gitlink.org.cn/JointCloud/pcm-coordinator/pkg/models" | |||
| "strconv" | |||
| "time" | |||
| @@ -55,6 +56,11 @@ func (l *TaskListLogic) TaskList(req *types.TaskListReq) (resp *types.TaskListRe | |||
| if len(tasks) == 0 { | |||
| return nil, nil | |||
| } | |||
| // 更新智算任务状态 | |||
| var ch = make(chan struct{}) | |||
| go l.updateAitaskStatus(tasks, ch) | |||
| // 查询任务总数 | |||
| l.svcCtx.DbEngin.Model(&models.Task{}).Count(&resp.TotalCount) | |||
| @@ -106,5 +112,64 @@ func (l *TaskListLogic) TaskList(req *types.TaskListReq) (resp *types.TaskListRe | |||
| } | |||
| return | |||
| select { | |||
| case _ = <-ch: | |||
| return resp, nil | |||
| case <-time.After(1 * time.Second): | |||
| return resp, nil | |||
| } | |||
| } | |||
| func (l *TaskListLogic) updateAitaskStatus(tasks []models.Task, ch chan<- struct{}) { | |||
| for _, task := range tasks { | |||
| if task.AdapterTypeDict != 1 { | |||
| continue | |||
| } | |||
| if task.Status == constants.Succeeded { | |||
| continue | |||
| } | |||
| var aiTask []*models.TaskAi | |||
| tx := l.svcCtx.DbEngin.Raw("select * from task_ai where `task_id` = ? ", task.Id).Scan(&aiTask) | |||
| if tx.Error != nil { | |||
| logx.Errorf(tx.Error.Error()) | |||
| return | |||
| } | |||
| start, _ := time.ParseInLocation(constants.Layout, aiTask[0].StartTime, time.Local) | |||
| end, _ := time.ParseInLocation(constants.Layout, aiTask[0].EndTime, time.Local) | |||
| var status = constants.Succeeded | |||
| for _, a := range aiTask { | |||
| s, _ := time.ParseInLocation(constants.Layout, a.StartTime, time.Local) | |||
| e, _ := time.ParseInLocation(constants.Layout, a.EndTime, time.Local) | |||
| if s.Before(start) { | |||
| start = s | |||
| } | |||
| if e.After(end) { | |||
| end = e | |||
| } | |||
| if a.Status == constants.Failed { | |||
| status = a.Status | |||
| break | |||
| } | |||
| if a.Status == constants.Running { | |||
| status = a.Status | |||
| continue | |||
| } | |||
| } | |||
| task.Status = status | |||
| task.StartTime = &start | |||
| task.EndTime = &end | |||
| tx = l.svcCtx.DbEngin.Updates(task) | |||
| if tx.Error != nil { | |||
| return | |||
| } | |||
| } | |||
| ch <- struct{}{} | |||
| } | |||
| @@ -23,8 +23,14 @@ func NewDownloadAlgothmCodeLogic(ctx context.Context, svcCtx *svc.ServiceContext | |||
| } | |||
| } | |||
| func (l *DownloadAlgothmCodeLogic) DownloadAlgothmCode(req *types.DownloadAlgorithmCodeReq) (resp *types.DownloadAlgorithmCodeResp, err error) { | |||
| // todo: add your logic here and delete this line | |||
| func (l *DownloadAlgothmCodeLogic) DownloadAlgorithmCode(req *types.DownloadAlgorithmCodeReq) (resp *types.DownloadAlgorithmCodeResp, err error) { | |||
| resp = &types.DownloadAlgorithmCodeResp{} | |||
| code, err := l.svcCtx.Scheduler.AiService.AiCollectorAdapterMap[req.AdapterId][req.ClusterId].DownloadAlgorithmCode(l.ctx, | |||
| req.ResourceType, req.Card, req.TaskType, req.Dataset, req.Algorithm) | |||
| if err != nil { | |||
| return nil, err | |||
| } | |||
| resp.Code = code | |||
| return | |||
| return resp, nil | |||
| } | |||
| @@ -23,8 +23,13 @@ func NewUploadAlgothmCodeLogic(ctx context.Context, svcCtx *svc.ServiceContext) | |||
| } | |||
| } | |||
| func (l *UploadAlgothmCodeLogic) UploadAlgothmCode(req *types.UploadAlgorithmCodeReq) (resp *types.UploadAlgorithmCodeResp, err error) { | |||
| // todo: add your logic here and delete this line | |||
| func (l *UploadAlgothmCodeLogic) UploadAlgorithmCode(req *types.UploadAlgorithmCodeReq) (resp *types.UploadAlgorithmCodeResp, err error) { | |||
| resp = &types.UploadAlgorithmCodeResp{} | |||
| err = l.svcCtx.Scheduler.AiService.AiCollectorAdapterMap[req.AdapterId][req.ClusterId].UploadAlgorithmCode(l.ctx, | |||
| req.ResourceType, req.Card, req.TaskType, req.Dataset, req.Algorithm, req.Code) | |||
| if err != nil { | |||
| return nil, err | |||
| } | |||
| return | |||
| return resp, nil | |||
| } | |||
| @@ -54,6 +54,7 @@ const ( | |||
| CAMBRICON = "cambricon" | |||
| TRAIN_CMD = "cd /code; python train.py" | |||
| VERSION = "V1" | |||
| DOMAIN = "http://192.168.242.41:8001/" | |||
| ) | |||
| var ( | |||
| @@ -340,7 +341,44 @@ func (o *OctopusLink) GetAlgorithms(ctx context.Context) ([]*collector.Algorithm | |||
| } | |||
| func (o *OctopusLink) DownloadAlgorithmCode(ctx context.Context, resourceType string, card string, taskType string, dataset string, algorithm string) (string, error) { | |||
| return "", nil | |||
| dcReq := &octopus.DownloadCompressReq{ | |||
| Platform: o.platform, | |||
| Version: VERSION, | |||
| AlgorithmId: "", | |||
| } | |||
| dcResp, err := o.octopusRpc.DownloadCompress(ctx, dcReq) | |||
| if err != nil { | |||
| return "", err | |||
| } | |||
| if !dcResp.Success { | |||
| return "", errors.New(dcResp.Error.Message) | |||
| } | |||
| daReq := &octopus.DownloadAlgorithmReq{ | |||
| Platform: o.platform, | |||
| Version: VERSION, | |||
| AlgorithmId: "", | |||
| CompressAt: dcResp.Payload.CompressAt, | |||
| Domain: DOMAIN, | |||
| } | |||
| daResp, err := o.octopusRpc.DownloadAlgorithm(ctx, daReq) | |||
| if err != nil { | |||
| return "", err | |||
| } | |||
| if !daResp.Success { | |||
| return "", errors.New(dcResp.Error.Message) | |||
| } | |||
| urlReq := &octopus.AlgorithmUrlReq{ | |||
| Platform: o.platform, | |||
| Url: daResp.Payload.DownloadUrl, | |||
| } | |||
| urlResp, err := o.octopusRpc.DownloadAlgorithmUrl(ctx, urlReq) | |||
| if err != nil { | |||
| return "", err | |||
| } | |||
| return urlResp.Algorithm, nil | |||
| } | |||
| func (o *OctopusLink) UploadAlgorithmCode(ctx context.Context, resourceType string, card string, taskType string, dataset string, algorithm string, code string) error { | |||
| @@ -150,6 +150,17 @@ type GeneralTaskReq struct { | |||
| Replicas int64 `json:"replicas,string"` | |||
| } | |||
| type PodLogsReq struct { | |||
| TaskId string `json:"taskId"` | |||
| TaskName string `json:"taskName"` | |||
| ClusterId string `json:"clusterId"` | |||
| ClusterName string `json:"clusterName"` | |||
| AdapterId string `json:"adapterId"` | |||
| AdapterName string `json:"adapterName"` | |||
| PodName string `json:"podName"` | |||
| Stream bool `json:"stream"` | |||
| } | |||
| type DeleteTaskReq struct { | |||
| Id int64 `path:"id"` | |||
| } | |||
| @@ -938,6 +949,184 @@ type ListResult struct { | |||
| List interface{} `json:"list,omitempty"` | |||
| } | |||
| type HpcInfo struct { | |||
| Id int64 `json:"id"` // id | |||
| TaskId int64 `json:"task_id"` // 任务id | |||
| JobId string `json:"job_id"` // 作业id(在第三方系统中的作业id) | |||
| AdapterId int64 `json:"adapter_id"` // 执行任务的适配器id | |||
| ClusterId int64 `json:"cluster_id"` // 执行任务的集群id | |||
| ClusterType string `json:"cluster_type"` // 执行任务的集群类型 | |||
| Name string `json:"name"` // 名称 | |||
| Status string `json:"status"` // 状态 | |||
| CmdScript string `json:"cmd_script"` | |||
| StartTime string `json:"start_time"` // 开始时间 | |||
| RunningTime int64 `json:"running_time"` // 运行时间 | |||
| DerivedEs string `json:"derived_es"` | |||
| Cluster string `json:"cluster"` | |||
| BlockId int64 `json:"block_id"` | |||
| AllocNodes int64 `json:"alloc_nodes"` | |||
| AllocCpu int64 `json:"alloc_cpu"` | |||
| CardCount int64 `json:"card_count"` // 卡数 | |||
| Version string `json:"version"` | |||
| Account string `json:"account"` | |||
| WorkDir string `json:"work_dir"` // 工作路径 | |||
| AssocId int64 `json:"assoc_id"` | |||
| ExitCode int64 `json:"exit_code"` | |||
| WallTime string `json:"wall_time"` // 最大运行时间 | |||
| Result string `json:"result"` // 运行结果 | |||
| DeletedAt string `json:"deleted_at"` // 删除时间 | |||
| YamlString string `json:"yaml_string"` | |||
| AppType string `json:"app_type"` // 应用类型 | |||
| AppName string `json:"app_name"` // 应用名称 | |||
| Queue string `json:"queue"` // 队列名称 | |||
| SubmitType string `json:"submit_type"` // cmd(命令行模式) | |||
| NNode string `json:"n_node"` // 节点个数(当指定该参数时,GAP_NODE_STRING必须为"") | |||
| StdOutFile string `json:"std_out_file"` // 工作路径/std.err.%j | |||
| StdErrFile string `json:"std_err_file"` // 工作路径/std.err.%j | |||
| StdInput string `json:"std_input"` | |||
| Environment string `json:"environment"` | |||
| DeletedFlag int64 `json:"deleted_flag"` // 是否删除(0-否,1-是) | |||
| CreatedBy int64 `json:"created_by"` // 创建人 | |||
| CreateTime string `json:"created_time"` // 创建时间 | |||
| UpdatedBy int64 `json:"updated_by"` // 更新人 | |||
| UpdateTime string `json:"updated_time"` // 更新时间 | |||
| } | |||
| type CloudInfo struct { | |||
| Participant int64 `json:"participant,omitempty"` | |||
| Id int64 `json:"id,omitempty"` | |||
| TaskId int64 `json:"taskId,omitempty"` | |||
| ApiVersion string `json:"apiVersion,omitempty"` | |||
| Kind string `json:"kind,omitempty"` | |||
| Namespace string `json:"namespace,omitempty"` | |||
| Name string `json:"name,omitempty"` | |||
| Status string `json:"status,omitempty"` | |||
| StartTime string `json:"startTime,omitempty"` | |||
| RunningTime int64 `json:"runningTime,omitempty"` | |||
| Result string `json:"result,omitempty"` | |||
| YamlString string `json:"yamlString,omitempty"` | |||
| } | |||
| type AiInfo struct { | |||
| ParticipantId int64 `json:"participantId,omitempty"` | |||
| TaskId int64 `json:"taskId,omitempty"` | |||
| ProjectId string `json:"project_id,omitempty"` | |||
| Name string `json:"name,omitempty"` | |||
| Status string `json:"status,omitempty"` | |||
| StartTime string `json:"startTime,omitempty"` | |||
| RunningTime int64 `json:"runningTime,omitempty"` | |||
| Result string `json:"result,omitempty"` | |||
| JobId string `json:"jobId,omitempty"` | |||
| CreateTime string `json:"createTime,omitempty"` | |||
| ImageUrl string `json:"imageUrl,omitempty"` | |||
| Command string `json:"command,omitempty"` | |||
| FlavorId string `json:"flavorId,omitempty"` | |||
| SubscriptionId string `json:"subscriptionId,omitempty"` | |||
| ItemVersionId string `json:"itemVersionId,omitempty"` | |||
| } | |||
| type VmInfo struct { | |||
| ParticipantId int64 `json:"participantId,omitempty"` | |||
| TaskId int64 `json:"taskId,omitempty"` | |||
| Name string `json:"name,omitempty"` | |||
| FlavorRef string `json:"flavor_ref,omitempty"` | |||
| ImageRef string `json:"image_ref,omitempty"` | |||
| NetworkUuid string `json:"network_uuid,omitempty"` | |||
| BlockUuid string `json:"block_uuid,omitempty"` | |||
| SourceType string `json:"source_type,omitempty"` | |||
| DeleteOnTermination bool `json:"delete_on_termination,omitempty"` | |||
| Status string `json:"status,omitempty"` | |||
| MinCount string `json:"min_count,omitempty"` | |||
| Platform string `json:"platform,omitempty"` | |||
| Uuid string `json:"uuid,omitempty"` | |||
| } | |||
| type PullTaskInfoReq struct { | |||
| AdapterId int64 `form:"adapterId"` | |||
| } | |||
| type PullTaskInfoResp struct { | |||
| HpcInfoList []*HpcInfo `json:"HpcInfoList,omitempty"` | |||
| CloudInfoList []*CloudInfo `json:"CloudInfoList,omitempty"` | |||
| AiInfoList []*AiInfo `json:"AiInfoList,omitempty"` | |||
| VmInfoList []*VmInfo `json:"VmInfoList,omitempty"` | |||
| } | |||
| type PushTaskInfoReq struct { | |||
| AdapterId int64 `json:"adapterId"` | |||
| HpcInfoList []*HpcInfo `json:"hpcInfoList"` | |||
| CloudInfoList []*CloudInfo `json:"cloudInfoList"` | |||
| AiInfoList []*AiInfo `json:"aiInfoList"` | |||
| VmInfoList []*VmInfo `json:"vmInfoList"` | |||
| } | |||
| type PushTaskInfoResp struct { | |||
| Code int64 `json:"code"` | |||
| Msg string `json:"msg"` | |||
| } | |||
| type PushResourceInfoReq struct { | |||
| AdapterId int64 `json:"adapterId"` | |||
| ResourceStats []ResourceStats `json:"resourceStats"` | |||
| } | |||
| type PushResourceInfoResp struct { | |||
| Code int64 `json:"code"` | |||
| Msg string `json:"msg"` | |||
| } | |||
| type NoticeInfo struct { | |||
| AdapterId int64 `json:"adapterId"` | |||
| AdapterName string `json:"adapterName"` | |||
| ClusterId int64 `json:"clusterId"` | |||
| ClusterName string `json:"clusterName"` | |||
| NoticeType string `json:"noticeType"` | |||
| TaskName string `json:"taskName"` | |||
| Incident string `json:"incident"` | |||
| } | |||
| type ListNoticeReq struct { | |||
| } | |||
| type ListNoticeResp struct { | |||
| Code int64 `json:"code"` | |||
| Msg string `json:"msg"` | |||
| Data []NoticeInfo `json:"data"` | |||
| } | |||
| type PushNoticeReq struct { | |||
| NoticeInfo NoticeInfo `json:"noticeInfo"` | |||
| } | |||
| type PushNoticeResp struct { | |||
| Code int64 `json:"code"` | |||
| Msg string `json:"msg"` | |||
| } | |||
| type ResourceStats struct { | |||
| ClusterId int64 `json:"clusterId"` | |||
| Name string `json:"name"` | |||
| CpuCoreAvail int64 `json:"cpuCoreAvail"` | |||
| CpuCoreTotal int64 `json:"cpuCoreTotal"` | |||
| MemAvail float64 `json:"memAvail"` | |||
| MemTotal float64 `json:"memTotal"` | |||
| DiskAvail float64 `json:"diskAvail"` | |||
| DiskTotal float64 `json:"diskTotal"` | |||
| GpuAvail int64 `json:"gpuAvail"` | |||
| CardsAvail []*Card `json:"cardsAvail"` | |||
| CpuCoreHours float64 `json:"cpuCoreHours"` | |||
| Balance float64 `json:"balance"` | |||
| } | |||
| type Card struct { | |||
| Platform string `json:"platform"` | |||
| Type string `json:"type"` | |||
| Name string `json:"name"` | |||
| TOpsAtFp16 float64 `json:"TOpsAtFp16"` | |||
| CardHours float64 `json:"cardHours"` | |||
| CardNum int32 `json:"cardNum"` | |||
| } | |||
| type TaskStatusResp struct { | |||
| Succeeded int `json:"Succeeded"` | |||
| Failed int `json:"Failed"` | |||
| @@ -5506,11 +5695,10 @@ type DownloadAlgorithmCodeReq struct { | |||
| TaskType string `form:"taskType"` | |||
| Dataset string `form:"dataset"` | |||
| Algorithm string `form:"algorithm"` | |||
| Code string `form:"code"` | |||
| } | |||
| type DownloadAlgorithmCodeResp struct { | |||
| Code string `json:"algorithms"` | |||
| Code string `json:"code"` | |||
| } | |||
| type UploadAlgorithmCodeReq struct { | |||
| @@ -26,7 +26,7 @@ require ( | |||
| github.com/zeromicro/go-zero v1.6.3 | |||
| gitlink.org.cn/JointCloud/pcm-ac v0.0.0-20240426095603-549fefd8bece | |||
| gitlink.org.cn/JointCloud/pcm-kubernetes v0.0.0-20240301071143-347480abff2c | |||
| gitlink.org.cn/JointCloud/pcm-octopus v0.0.0-20240424085753-6899615e9142 | |||
| gitlink.org.cn/JointCloud/pcm-octopus v0.0.0-20240510133934-6a5526289b35 | |||
| gitlink.org.cn/JointCloud/pcm-openstack v0.0.0-20240403033338-e7edabad4203 | |||
| gitlink.org.cn/JointCloud/pcm-slurm v0.0.0-20240301080743-8b94bbaf57f5 | |||
| gitlink.org.cn/jcce-pcm/pcm-participant-ceph v0.0.0-20230904090036-24fc730ec87d | |||
| @@ -1082,8 +1082,8 @@ gitlink.org.cn/JointCloud/pcm-ac v0.0.0-20240426095603-549fefd8bece h1:W3yBnvAVV | |||
| gitlink.org.cn/JointCloud/pcm-ac v0.0.0-20240426095603-549fefd8bece/go.mod h1:w3Nb5TNymCItQ7K3x4Q0JLuoq9OerwAzAWT2zsPE9Xo= | |||
| gitlink.org.cn/JointCloud/pcm-kubernetes v0.0.0-20240301071143-347480abff2c h1:2Wl/hvaSFjh6fmCSIQhjkr9llMRREQeqcXNLZ/HPY18= | |||
| gitlink.org.cn/JointCloud/pcm-kubernetes v0.0.0-20240301071143-347480abff2c/go.mod h1:lSRfGs+PxFvw7CcndHWRd6UlLlGrZn0b0hp5cfaMNGw= | |||
| gitlink.org.cn/JointCloud/pcm-octopus v0.0.0-20240424085753-6899615e9142 h1:+po0nesBDSWsgCySBG7eEXk7i9Ytd58wqvjL1M9y6d8= | |||
| gitlink.org.cn/JointCloud/pcm-octopus v0.0.0-20240424085753-6899615e9142/go.mod h1:QOD5+/l2D+AYBjF2h5T0mdJyfGAmF78QmeKdbBXbjLQ= | |||
| gitlink.org.cn/JointCloud/pcm-octopus v0.0.0-20240510133934-6a5526289b35 h1:E2QfpS3Y0FjR8Zyv5l2Ti/2NetQFqHG66c8+T/+J1u0= | |||
| gitlink.org.cn/JointCloud/pcm-octopus v0.0.0-20240510133934-6a5526289b35/go.mod h1:QOD5+/l2D+AYBjF2h5T0mdJyfGAmF78QmeKdbBXbjLQ= | |||
| gitlink.org.cn/JointCloud/pcm-openstack v0.0.0-20240403033338-e7edabad4203 h1:s6PsZ1+bev294IWdZRlV7mnOwI1+UzFcldVW/BqhQzI= | |||
| gitlink.org.cn/JointCloud/pcm-openstack v0.0.0-20240403033338-e7edabad4203/go.mod h1:i2rrbMQ+Fve345BY9Heh4MUqVTAimZQElQhzzRee5B8= | |||
| gitlink.org.cn/JointCloud/pcm-slurm v0.0.0-20240301080743-8b94bbaf57f5 h1:+/5vnzkJBfMRnya1NrhOzlroUtRa5ePiYbPKlHLoLV0= | |||
| @@ -8,6 +8,7 @@ import ( | |||
| type TaskCloudModel struct { | |||
| Id uint `json:"id" gorm:"primarykey;not null;comment:id"` | |||
| TaskId uint `json:"taskId" gorm:"not null;comment:task表id"` | |||
| AdapterName string `json:"adapterName" gorm:"not null;comment:适配器名称"` | |||
| AdapterId uint `json:"adapterId" gorm:"not null;comment:适配器id"` | |||
| AdapterName string `json:"adapterName" gorm:"not null;comment:适配器名称"` | |||
| ClusterId uint `json:"clusterId" gorm:"not null;comment:集群id"` | |||