fix db bugs
Former-commit-id: 3e372dc02fb4f2a4e4f9ab14922abaa51dbc7eea
This commit is contained in:
parent
564380be1a
commit
bd3f60d62e
|
@ -68,6 +68,8 @@ func (l *GetCenterTaskListLogic) GetCenterTaskList() (resp *types.CenterTaskList
|
|||
t := &types.AiTask{
|
||||
Name: task.Name,
|
||||
Status: task.Status,
|
||||
Cluster: task.ClusterName,
|
||||
Card: task.Card,
|
||||
TimeElapsed: int32(elapsed.Seconds()),
|
||||
}
|
||||
resp.List = append(resp.List, t)
|
||||
|
|
|
@ -73,7 +73,12 @@ func (l *ScheduleSubmitLogic) ScheduleSubmit(req *types.ScheduleReq) (resp *type
|
|||
scheResult.Strategy = r.Strategy
|
||||
scheResult.Replica = r.Replica
|
||||
scheResult.Msg = r.Msg
|
||||
err := l.svcCtx.Scheduler.AiStorages.SaveAiTask(id, opt, r.ClusterId, r.TaskId, constants.Saved, r.Msg)
|
||||
|
||||
opt.ComputeCard = r.Card
|
||||
|
||||
clusterName, _ := l.svcCtx.Scheduler.AiStorages.GetClusterNameById(r.ClusterId)
|
||||
|
||||
err := l.svcCtx.Scheduler.AiStorages.SaveAiTask(id, opt, r.ClusterId, clusterName, r.TaskId, constants.Saved, r.Msg)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
|
@ -35,6 +35,16 @@ func (s *AiStorage) GetClustersByAdapterId(id string) (*types.ClusterListResp, e
|
|||
return &resp, nil
|
||||
}
|
||||
|
||||
func (s *AiStorage) GetClusterNameById(id string) (string, error) {
|
||||
var name string
|
||||
tx := s.DbEngin.Raw("select `description` from t_cluster 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) {
|
||||
var list []types.AdapterInfo
|
||||
var ids []string
|
||||
|
@ -90,7 +100,7 @@ func (s *AiStorage) SaveTask(name string, strategyCode int64, synergyStatus int6
|
|||
return taskModel.Id, nil
|
||||
}
|
||||
|
||||
func (s *AiStorage) SaveAiTask(taskId int64, option *option.AiOption, clusterId string, jobId string, status string, msg string) error {
|
||||
func (s *AiStorage) SaveAiTask(taskId int64, option *option.AiOption, clusterId string, clusterName string, jobId string, status string, msg string) error {
|
||||
// 构建主任务结构体
|
||||
aId, err := strconv.ParseInt(option.AdapterId, 10, 64)
|
||||
if err != nil {
|
||||
|
@ -100,18 +110,24 @@ func (s *AiStorage) SaveAiTask(taskId int64, option *option.AiOption, clusterId
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
del, _ := time.Parse(constants.Layout, constants.Layout)
|
||||
|
||||
aiTaskModel := models.TaskAi{
|
||||
TaskId: taskId,
|
||||
AdapterId: aId,
|
||||
ClusterId: cId,
|
||||
Name: option.TaskName,
|
||||
Replica: option.Replica,
|
||||
JobId: jobId,
|
||||
TaskType: option.TaskType,
|
||||
Strategy: option.StrategyName,
|
||||
Status: status,
|
||||
Msg: msg,
|
||||
CommitTime: time.Now(),
|
||||
TaskId: taskId,
|
||||
AdapterId: aId,
|
||||
ClusterId: cId,
|
||||
ClusterName: clusterName,
|
||||
Name: option.TaskName,
|
||||
Replica: option.Replica,
|
||||
JobId: jobId,
|
||||
TaskType: option.TaskType,
|
||||
Strategy: option.StrategyName,
|
||||
Status: status,
|
||||
Msg: msg,
|
||||
Card: option.ComputeCard,
|
||||
DeletedAt: del,
|
||||
CommitTime: time.Now(),
|
||||
}
|
||||
// 保存任务数据到数据库
|
||||
tx := s.DbEngin.Create(&aiTaskModel)
|
||||
|
|
|
@ -46,6 +46,7 @@ type AiResult struct {
|
|||
ClusterId string
|
||||
Strategy string
|
||||
Replica int32
|
||||
Card string
|
||||
Msg string
|
||||
}
|
||||
|
||||
|
@ -156,6 +157,7 @@ func (as *AiScheduler) AssignTask(clusters []*strategy.AssignedCluster) (interfa
|
|||
result.Replica = c.Replicas
|
||||
result.ClusterId = c.ClusterId
|
||||
result.Strategy = as.option.StrategyName
|
||||
result.Card = opt.ComputeCard
|
||||
|
||||
ch <- result
|
||||
wg.Done()
|
||||
|
@ -192,23 +194,29 @@ func (as *AiScheduler) AssignTask(clusters []*strategy.AssignedCluster) (interfa
|
|||
})
|
||||
msg := fmt.Sprintf("clusterId: %v , error: %v \n", e.clusterId, e.err.Error())
|
||||
errmsg += msg
|
||||
err := as.AiStorages.SaveAiTask(taskId, as.option, e.clusterId, "", constants.Failed, msg)
|
||||
|
||||
clusterName, _ := as.AiStorages.GetClusterNameById(e.clusterId)
|
||||
|
||||
err := as.AiStorages.SaveAiTask(taskId, as.option, e.clusterId, clusterName, "", constants.Failed, msg)
|
||||
if err != nil {
|
||||
return nil, errors.New("database add failed: " + err.Error())
|
||||
}
|
||||
}
|
||||
for _, s := range results {
|
||||
as.option.ComputeCard = s.Card //execute card
|
||||
clusterName, _ := as.AiStorages.GetClusterNameById(s.ClusterId)
|
||||
|
||||
if s.Msg != "" {
|
||||
msg := fmt.Sprintf("clusterId: %v , error: %v \n", s.ClusterId, s.Msg)
|
||||
errmsg += msg
|
||||
err := as.AiStorages.SaveAiTask(taskId, as.option, s.ClusterId, "", constants.Failed, msg)
|
||||
err := as.AiStorages.SaveAiTask(taskId, as.option, s.ClusterId, clusterName, "", constants.Failed, msg)
|
||||
if err != nil {
|
||||
return nil, errors.New("database add failed: " + err.Error())
|
||||
}
|
||||
} else {
|
||||
msg := fmt.Sprintf("clusterId: %v , submitted successfully, taskId: %v \n", s.ClusterId, s.TaskId)
|
||||
errmsg += msg
|
||||
err := as.AiStorages.SaveAiTask(taskId, as.option, s.ClusterId, s.TaskId, constants.Saved, msg)
|
||||
err := as.AiStorages.SaveAiTask(taskId, as.option, s.ClusterId, clusterName, s.TaskId, constants.Saved, msg)
|
||||
if err != nil {
|
||||
return nil, errors.New("database add failed: " + err.Error())
|
||||
}
|
||||
|
|
|
@ -18,8 +18,9 @@ type Strategy interface {
|
|||
}
|
||||
|
||||
type AssignedCluster struct {
|
||||
ClusterId string
|
||||
Replicas int32
|
||||
ClusterId string
|
||||
ClusterName string
|
||||
Replicas int32
|
||||
}
|
||||
|
||||
func GetStrategyNames() []string {
|
||||
|
|
|
@ -402,7 +402,7 @@ func (o *OctopusLink) DownloadAlgorithmCode(ctx context.Context, resourceType st
|
|||
|
||||
aLatest := &octopus.Algorithms{}
|
||||
for i, _ := range algorithms {
|
||||
if time.Unix(aLatest.CreatedAt, 0).After(time.Unix(algorithms[i].CreatedAt, 0)) {
|
||||
if time.Unix(algorithms[i].CreatedAt, 0).After(time.Unix(aLatest.CreatedAt, 0)) {
|
||||
aLatest = algorithms[i]
|
||||
}
|
||||
}
|
||||
|
@ -789,36 +789,32 @@ func setResourceIdByCard(option *option.AiOption, specs *octopus.GetResourceSpec
|
|||
}
|
||||
switch computeCard {
|
||||
case GCU:
|
||||
option.ComputeCard = computeCard
|
||||
if cardNum == s { // 1, 4, 8
|
||||
option.ResourceId = spec.Id
|
||||
option.ComputeCard = computeCard
|
||||
return nil
|
||||
}
|
||||
if 1 < cardNum && cardNum <= 4 && s == 4 {
|
||||
option.ResourceId = spec.Id
|
||||
option.ComputeCard = computeCard
|
||||
return nil
|
||||
}
|
||||
if 4 < cardNum && s == 8 {
|
||||
option.ResourceId = spec.Id
|
||||
option.ComputeCard = computeCard
|
||||
return nil
|
||||
}
|
||||
|
||||
case MLU: // 1, 2, 4
|
||||
option.ComputeCard = computeCard
|
||||
if cardNum/2 == s {
|
||||
option.ResourceId = spec.Id
|
||||
option.ComputeCard = computeCard
|
||||
return nil
|
||||
}
|
||||
if 1 < cardNum/2 && cardNum/2 <= 2 && s == 2 {
|
||||
option.ResourceId = spec.Id
|
||||
option.ComputeCard = computeCard
|
||||
return nil
|
||||
}
|
||||
if 2 < cardNum/2 && s == 4 {
|
||||
option.ResourceId = spec.Id
|
||||
option.ComputeCard = computeCard
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
|
|
@ -565,10 +565,14 @@ func (s *ShuguangAi) generateResourceId(option *option.AiOption) error {
|
|||
|
||||
if option.ResourceType == CPU {
|
||||
option.ResourceId = "WodTB2rJ8SobMgQ1nrtR245jxOrsovFi"
|
||||
option.ComputeCard = CPU
|
||||
return nil
|
||||
}
|
||||
|
||||
if option.ResourceType == CARD {
|
||||
|
||||
option.ComputeCard = DCU
|
||||
|
||||
if 0 <= option.Tops && option.Tops <= DCU_TOPS {
|
||||
option.ResourceId = "WodTB2rJ8SobMgQ1nrtR245jxOrsovFi"
|
||||
return nil
|
||||
|
|
Loading…
Reference in New Issue