pcm-coordinator/internal/logic/core/jobtotallogic.go

111 lines
3.3 KiB
Go

/*
Copyright (c) [2023] [pcm]
[pcm-coordinator] is licensed under Mulan PSL v2.
You can use this software according to the terms and conditions of the Mulan PSL v2.
You may obtain a copy of Mulan PSL v2 at:
http://license.coscl.org.cn/MulanPSL2
THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
EITHER EXPaRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
See the Mulan PSL v2 for more details.
*/
package core
import (
"context"
"github.com/zeromicro/go-zero/core/logx"
"gitlink.org.cn/JointCloud/pcm-coordinator/internal/svc"
"gitlink.org.cn/JointCloud/pcm-coordinator/internal/types"
)
type JobTotalLogic struct {
logx.Logger
ctx context.Context
svcCtx *svc.ServiceContext
}
type Job struct {
TotalSize int `json:"totalSize"`
OtJobs []OtJob `json:"otJobs"`
}
type OtJob struct {
Name string `json:"name"`
Status string `json:"status"`
Tasks []Task `json:"tasks"`
}
type Task struct {
CenterName []string `json:"centerName"`
}
func NewJobTotalLogic(ctx context.Context, svcCtx *svc.ServiceContext) *JobTotalLogic {
return &JobTotalLogic{
Logger: logx.WithContext(ctx),
ctx: ctx,
svcCtx: svcCtx,
}
}
func (l *JobTotalLogic) JobTotal() (resp *types.JobTotalResp, err error) {
//// 获取任务时间信息
//resp = &types.JobTotalResp{}
//bytes, err := httputils.HttpGet("http://grampus.openi.org.cn/openapi/v1/sharescreen/computepower/alljobinfo")
//if err != nil {
// return nil, err
//}
//json.Unmarshal(bytes, resp)
//
//// 获取其他任务信息
//jobs := &Job{}
//jobBytes, err := httputils.HttpGet("http://grampus.openi.org.cn/openapi/v1/sharescreen/trainjob?pageIndex=1&pageSize=10")
//if err != nil {
// return nil, err
//}
//json.Unmarshal(jobBytes, jobs)
//
//for _, job := range jobs.OtJobs {
// trainJob := types.TrainJob{
// Name: job.Name,
// Status: enum.ExternalStatus(job.Status).String(),
// Strategy: 0,
// SynergyStatus: "未协同",
// }
// if job.Tasks[0].CenterName != nil {
// trainJob.ParticipantName = job.Tasks[0].CenterName[0]
// }
// resp.TrainJobs = append(resp.TrainJobs, trainJob)
//}
//
//var tasks []models.Task
//tx := l.svcCtx.DbEngin.Find(&tasks)
//if tx.Error != nil {
// logx.Error(err)
// return nil, tx.Error
//}
//if len(tasks) == 0 {
// return nil, nil
//}
//for _, task := range tasks {
// var participantName string
// tx := l.svcCtx.DbEngin.Raw("SELECT name from sc_participant_phy_info where id in (SELECT CONCAT_WS(',',GROUP_CONCAT(DISTINCT h.participant_id) ,GROUP_CONCAT(DISTINCT a.participant_id) ,GROUP_CONCAT(DISTINCT c.participant_id))as service_name from task t left join hpc h on t.id = h.task_id left join cloud c on t.id = c.task_id left join ai a on t.id = a.task_id where t.id = ?)", task.Id).Scan(&participantName)
// if tx.Error != nil {
// logx.Error(err)
// return nil, tx.Error
// }
// // 承接方转义
// resp.TrainJobs = append(resp.TrainJobs, types.TrainJob{
// ParticipantName: participantName,
// Name: task.Name,
// Strategy: int(task.Strategy),
// SynergyStatus: enum.SynergyStatus(task.SynergyStatus).String(),
// Status: task.Status,
// })
//
//}
return resp, nil
}