Merge pull request 'fix noticeinfo bugs' (#221) from tzwang/pcm-coordinator:master into master
Former-commit-id: 738c04b5d90c9ca6445f30d057fa4fc9773696e6
This commit is contained in:
commit
9cd2e072b2
|
@ -114,7 +114,28 @@ func UpdateAiTaskStatus(svc *svc.ServiceContext, tasklist []*types.TaskModel) {
|
||||||
wg.Done()
|
wg.Done()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
switch trainingTask.Status {
|
||||||
|
case constants.Running:
|
||||||
|
if t.Status != trainingTask.Status {
|
||||||
|
svc.Scheduler.AiStorages.AddNoticeInfo(strconv.FormatInt(t.AdapterId, 10), t.AdapterName, strconv.FormatInt(t.ClusterId, 10), t.ClusterName, t.Name, "running", "任务运行中")
|
||||||
t.Status = trainingTask.Status
|
t.Status = trainingTask.Status
|
||||||
|
}
|
||||||
|
case constants.Failed:
|
||||||
|
if t.Status != trainingTask.Status {
|
||||||
|
svc.Scheduler.AiStorages.AddNoticeInfo(strconv.FormatInt(t.AdapterId, 10), t.AdapterName, strconv.FormatInt(t.ClusterId, 10), t.ClusterName, t.Name, "failed", "任务失败")
|
||||||
|
t.Status = trainingTask.Status
|
||||||
|
}
|
||||||
|
case constants.Completed:
|
||||||
|
if t.Status != trainingTask.Status {
|
||||||
|
svc.Scheduler.AiStorages.AddNoticeInfo(strconv.FormatInt(t.AdapterId, 10), t.AdapterName, strconv.FormatInt(t.ClusterId, 10), t.ClusterName, t.Name, "completed", "任务完成")
|
||||||
|
t.Status = trainingTask.Status
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
if t.Status != trainingTask.Status {
|
||||||
|
svc.Scheduler.AiStorages.AddNoticeInfo(strconv.FormatInt(t.AdapterId, 10), t.AdapterName, strconv.FormatInt(t.ClusterId, 10), t.ClusterName, t.Name, "pending", "任务pending")
|
||||||
|
t.Status = trainingTask.Status
|
||||||
|
}
|
||||||
|
}
|
||||||
t.StartTime = trainingTask.Start
|
t.StartTime = trainingTask.Start
|
||||||
t.EndTime = trainingTask.End
|
t.EndTime = trainingTask.End
|
||||||
err = svc.Scheduler.AiStorages.UpdateAiTask(t)
|
err = svc.Scheduler.AiStorages.UpdateAiTask(t)
|
||||||
|
|
|
@ -64,7 +64,13 @@ func (l *ScheduleSubmitLogic) ScheduleSubmit(req *types.ScheduleReq) (resp *type
|
||||||
synergystatus = 1
|
synergystatus = 1
|
||||||
}
|
}
|
||||||
strategyCode, err := l.svcCtx.Scheduler.AiStorages.GetStrategyCode(req.AiOption.Strategy)
|
strategyCode, err := l.svcCtx.Scheduler.AiStorages.GetStrategyCode(req.AiOption.Strategy)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
adapterName, err := l.svcCtx.Scheduler.AiStorages.GetAdapterNameById(rs[0].AdapterId)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
id, err := l.svcCtx.Scheduler.AiStorages.SaveTask(req.AiOption.TaskName, strategyCode, synergystatus)
|
id, err := l.svcCtx.Scheduler.AiStorages.SaveTask(req.AiOption.TaskName, strategyCode, synergystatus)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -84,11 +90,13 @@ func (l *ScheduleSubmitLogic) ScheduleSubmit(req *types.ScheduleReq) (resp *type
|
||||||
|
|
||||||
clusterName, _ := l.svcCtx.Scheduler.AiStorages.GetClusterNameById(r.ClusterId)
|
clusterName, _ := l.svcCtx.Scheduler.AiStorages.GetClusterNameById(r.ClusterId)
|
||||||
|
|
||||||
err := l.svcCtx.Scheduler.AiStorages.SaveAiTask(id, opt, r.ClusterId, clusterName, r.JobId, constants.Saved, r.Msg)
|
err := l.svcCtx.Scheduler.AiStorages.SaveAiTask(id, opt, adapterName, r.ClusterId, clusterName, r.JobId, constants.Saved, r.Msg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
l.svcCtx.Scheduler.AiStorages.AddNoticeInfo(r.AdapterId, adapterName, r.ClusterId, clusterName, r.TaskName, "create", "任务创建中")
|
||||||
|
|
||||||
resp.Results = append(resp.Results, scheResult)
|
resp.Results = append(resp.Results, scheResult)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@ package database
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/zeromicro/go-zero/core/logx"
|
"github.com/zeromicro/go-zero/core/logx"
|
||||||
|
clientCore "gitlink.org.cn/JointCloud/pcm-coordinator/api/client"
|
||||||
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/schedulers/option"
|
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/schedulers/option"
|
||||||
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/types"
|
"gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/types"
|
||||||
"gitlink.org.cn/JointCloud/pcm-coordinator/pkg/constants"
|
"gitlink.org.cn/JointCloud/pcm-coordinator/pkg/constants"
|
||||||
|
@ -46,6 +47,16 @@ func (s *AiStorage) GetClusterNameById(id string) (string, error) {
|
||||||
return name, nil
|
return name, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *AiStorage) GetAdapterNameById(id string) (string, error) {
|
||||||
|
var name string
|
||||||
|
tx := s.DbEngin.Raw("select `name` from t_adapter where `id` = ?", id).Scan(&name)
|
||||||
|
if tx.Error != nil {
|
||||||
|
logx.Errorf(tx.Error.Error())
|
||||||
|
return "", tx.Error
|
||||||
|
}
|
||||||
|
return name, nil
|
||||||
|
}
|
||||||
|
|
||||||
func (s *AiStorage) GetAdapterIdsByType(adapterType string) ([]string, error) {
|
func (s *AiStorage) GetAdapterIdsByType(adapterType string) ([]string, error) {
|
||||||
var list []types.AdapterInfo
|
var list []types.AdapterInfo
|
||||||
var ids []string
|
var ids []string
|
||||||
|
@ -102,7 +113,7 @@ func (s *AiStorage) SaveTask(name string, strategyCode int64, synergyStatus int6
|
||||||
return taskModel.Id, nil
|
return taskModel.Id, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *AiStorage) SaveAiTask(taskId int64, option *option.AiOption, clusterId string, clusterName string, jobId string, status string, msg string) error {
|
func (s *AiStorage) SaveAiTask(taskId int64, option *option.AiOption, adapterName string, clusterId string, clusterName string, jobId string, status string, msg string) error {
|
||||||
// 构建主任务结构体
|
// 构建主任务结构体
|
||||||
aId, err := strconv.ParseInt(option.AdapterId, 10, 64)
|
aId, err := strconv.ParseInt(option.AdapterId, 10, 64)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -116,6 +127,7 @@ func (s *AiStorage) SaveAiTask(taskId int64, option *option.AiOption, clusterId
|
||||||
aiTaskModel := models.TaskAi{
|
aiTaskModel := models.TaskAi{
|
||||||
TaskId: taskId,
|
TaskId: taskId,
|
||||||
AdapterId: aId,
|
AdapterId: aId,
|
||||||
|
AdapterName: adapterName,
|
||||||
ClusterId: cId,
|
ClusterId: cId,
|
||||||
ClusterName: clusterName,
|
ClusterName: clusterName,
|
||||||
Name: option.TaskName,
|
Name: option.TaskName,
|
||||||
|
@ -281,3 +293,28 @@ func (s *AiStorage) GetStrategyCode(name string) (int64, error) {
|
||||||
}
|
}
|
||||||
return strategy, nil
|
return strategy, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *AiStorage) AddNoticeInfo(adapterId string, adapterName string, clusterId string, clusterName string, taskName string, noticeType string, incident string) {
|
||||||
|
aId, err := strconv.ParseInt(adapterId, 10, 64)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
cId, err := strconv.ParseInt(clusterId, 10, 64)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
noticeInfo := clientCore.NoticeInfo{
|
||||||
|
AdapterId: aId,
|
||||||
|
AdapterName: adapterName,
|
||||||
|
ClusterId: cId,
|
||||||
|
ClusterName: clusterName,
|
||||||
|
NoticeType: noticeType,
|
||||||
|
TaskName: taskName,
|
||||||
|
Incident: incident,
|
||||||
|
CreatedTime: time.Now(),
|
||||||
|
}
|
||||||
|
result := s.DbEngin.Table("t_notice").Create(¬iceInfo)
|
||||||
|
if result.Error != nil {
|
||||||
|
logx.Errorf("Task creation failure, err: %v", result.Error)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -45,6 +45,8 @@ type AiScheduler struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
type AiResult struct {
|
type AiResult struct {
|
||||||
|
AdapterId string
|
||||||
|
TaskName string
|
||||||
JobId string
|
JobId string
|
||||||
ClusterId string
|
ClusterId string
|
||||||
Strategy string
|
Strategy string
|
||||||
|
@ -190,6 +192,8 @@ func (as *AiScheduler) AssignTask(clusters []*strategy.AssignedCluster) (interfa
|
||||||
result, _ = convertType(resp)
|
result, _ = convertType(resp)
|
||||||
mu.Unlock()
|
mu.Unlock()
|
||||||
|
|
||||||
|
result.AdapterId = opt.AdapterId
|
||||||
|
result.TaskName = opt.TaskName
|
||||||
result.Replica = c.Replicas
|
result.Replica = c.Replicas
|
||||||
result.ClusterId = c.ClusterId
|
result.ClusterId = c.ClusterId
|
||||||
result.Strategy = as.option.StrategyName
|
result.Strategy = as.option.StrategyName
|
||||||
|
@ -222,6 +226,10 @@ func (as *AiScheduler) AssignTask(clusters []*strategy.AssignedCluster) (interfa
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.New("database add failed: " + err.Error())
|
return nil, errors.New("database add failed: " + err.Error())
|
||||||
}
|
}
|
||||||
|
adapterName, err := as.AiStorages.GetAdapterNameById(as.option.AdapterId)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
var errmsg string
|
var errmsg string
|
||||||
for _, err := range errs {
|
for _, err := range errs {
|
||||||
|
@ -234,7 +242,7 @@ func (as *AiScheduler) AssignTask(clusters []*strategy.AssignedCluster) (interfa
|
||||||
|
|
||||||
clusterName, _ := as.AiStorages.GetClusterNameById(e.clusterId)
|
clusterName, _ := as.AiStorages.GetClusterNameById(e.clusterId)
|
||||||
|
|
||||||
err := as.AiStorages.SaveAiTask(taskId, as.option, e.clusterId, clusterName, "", constants.Failed, msg)
|
err := as.AiStorages.SaveAiTask(taskId, as.option, adapterName, e.clusterId, clusterName, "", constants.Failed, msg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.New("database add failed: " + err.Error())
|
return nil, errors.New("database add failed: " + err.Error())
|
||||||
}
|
}
|
||||||
|
@ -246,14 +254,14 @@ func (as *AiScheduler) AssignTask(clusters []*strategy.AssignedCluster) (interfa
|
||||||
if s.Msg != "" {
|
if s.Msg != "" {
|
||||||
msg := fmt.Sprintf("clusterId: %v , error: %v \n", s.ClusterId, s.Msg)
|
msg := fmt.Sprintf("clusterId: %v , error: %v \n", s.ClusterId, s.Msg)
|
||||||
errmsg += msg
|
errmsg += msg
|
||||||
err := as.AiStorages.SaveAiTask(taskId, as.option, s.ClusterId, clusterName, "", constants.Failed, msg)
|
err := as.AiStorages.SaveAiTask(taskId, as.option, adapterName, s.ClusterId, clusterName, "", constants.Failed, msg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.New("database add failed: " + err.Error())
|
return nil, errors.New("database add failed: " + err.Error())
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
msg := fmt.Sprintf("clusterId: %v , submitted successfully, jobId: %v \n", s.ClusterId, s.JobId)
|
msg := fmt.Sprintf("clusterId: %v , submitted successfully, jobId: %v \n", s.ClusterId, s.JobId)
|
||||||
errmsg += msg
|
errmsg += msg
|
||||||
err := as.AiStorages.SaveAiTask(taskId, as.option, s.ClusterId, clusterName, s.JobId, constants.Saved, msg)
|
err := as.AiStorages.SaveAiTask(taskId, as.option, adapterName, s.ClusterId, clusterName, s.JobId, constants.Saved, msg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.New("database add failed: " + err.Error())
|
return nil, errors.New("database add failed: " + err.Error())
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue