diff --git a/api/desc/schedule/pcm-schedule.api b/api/desc/schedule/pcm-schedule.api index ac860431..9be2c829 100644 --- a/api/desc/schedule/pcm-schedule.api +++ b/api/desc/schedule/pcm-schedule.api @@ -44,6 +44,7 @@ type ( Params []string `json:"params,optional"` Envs []string `json:"envs,optional"` Cmd string `json:"cmd,optional"` + Replica int32 `json:"replicas"` } AiResourceTypesResp { diff --git a/api/internal/logic/core/commitvmtasklogic.go b/api/internal/logic/core/commitvmtasklogic.go index ff378cc4..f339580a 100644 --- a/api/internal/logic/core/commitvmtasklogic.go +++ b/api/internal/logic/core/commitvmtasklogic.go @@ -110,7 +110,6 @@ func (l *CommitVmTaskLogic) CommitVmTask(req *types.CommitVmTaskReq) (resp *type AND vf.public_flavor_id = ? AND vi.public_image_id = ? AND vn.public_network_id = ?` - // err2 := l.svcCtx.DbEngin.Raw(sql, clusterId, req.FlavorRef, req.ImageRef, req.Uuid).Scan(&taskVm).Error txVm := l.svcCtx.DbEngin.Raw(sql, clusterId, req.FlavorRef, req.ImageRef, req.Uuid).Scan(&VmObject) if txVm.Error != nil { logx.Error(err) @@ -118,7 +117,6 @@ func (l *CommitVmTaskLogic) CommitVmTask(req *types.CommitVmTaskReq) (resp *type } if err2 != nil { logx.Errorf("CommitGeneralTask() => sql execution error: %v", err) - //return errors.Errorf("the cluster does not match the drive resources. Check the data"), nil } taskVm.Name = req.VmName taskVm.Status = "Saved" diff --git a/api/internal/logic/schedule/schedulesubmitlogic.go b/api/internal/logic/schedule/schedulesubmitlogic.go index 545abdd2..98f5f916 100644 --- a/api/internal/logic/schedule/schedulesubmitlogic.go +++ b/api/internal/logic/schedule/schedulesubmitlogic.go @@ -33,8 +33,8 @@ func (l *ScheduleSubmitLogic) ScheduleSubmit(req *types.ScheduleReq) (resp *type AdapterId: req.AiOption.AdapterId, TaskName: req.AiOption.TaskName, ResourceType: req.AiOption.ResourceType, + Replica: req.AiOption.Replica, ComputeCard: req.AiOption.ComputeCard, - Replica: 1, Tops: req.AiOption.Tops, TaskType: req.AiOption.TaskType, DatasetsName: req.AiOption.Datasets, diff --git a/api/internal/scheduler/database/aiStorage.go b/api/internal/scheduler/database/aiStorage.go index 4de5f6bb..f618ff73 100644 --- a/api/internal/scheduler/database/aiStorage.go +++ b/api/internal/scheduler/database/aiStorage.go @@ -120,7 +120,7 @@ func (s *AiStorage) SaveAiTask(taskId int64, option *option.AiOption, clusterId ClusterId: cId, ClusterName: clusterName, Name: option.TaskName, - Replica: option.Replica, + Replica: int64(option.Replica), JobId: jobId, TaskType: option.TaskType, Strategy: option.StrategyName, diff --git a/api/internal/scheduler/schedulers/aiScheduler.go b/api/internal/scheduler/schedulers/aiScheduler.go index 51cdd669..50cf27ca 100644 --- a/api/internal/scheduler/schedulers/aiScheduler.go +++ b/api/internal/scheduler/schedulers/aiScheduler.go @@ -105,7 +105,7 @@ func (as *AiScheduler) PickOptimalStrategy() (strategy.Strategy, error) { return strategy, nil case strategy.STATIC_WEIGHT: //todo resources should match cluster StaticWeightMap - strategy := strategy.NewStaticWeightStrategy(as.option.ClusterToStaticWeight, 1) + strategy := strategy.NewStaticWeightStrategy(as.option.ClusterToStaticWeight, as.option.Replica) return strategy, nil } diff --git a/api/internal/scheduler/schedulers/option/aiOption.go b/api/internal/scheduler/schedulers/option/aiOption.go index d2f8d3eb..b3cc4de0 100644 --- a/api/internal/scheduler/schedulers/option/aiOption.go +++ b/api/internal/scheduler/schedulers/option/aiOption.go @@ -4,7 +4,7 @@ type AiOption struct { AdapterId string ClusterIds []string TaskName string - Replica int64 + Replica int32 ResourceType string // cpu/gpu/compute card CpuCoreNum int64 TaskType string // pytorch/tensorflow/mindspore diff --git a/api/internal/types/types.go b/api/internal/types/types.go index a834baf1..317a225d 100644 --- a/api/internal/types/types.go +++ b/api/internal/types/types.go @@ -5647,6 +5647,7 @@ type AiOption struct { Params []string `json:"params,optional"` Envs []string `json:"envs,optional"` Cmd string `json:"cmd,optional"` + Replica int32 `json:"replicas"` } type AiResourceTypesResp struct {