forked from JointCloud/pcm-coordinator
111 lines
3.3 KiB
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
|
|
}
|