|
|
|
@@ -19,6 +19,7 @@ import ( |
|
|
|
"gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/scheduler" |
|
|
|
"gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/scheduler/algorithm/providerPricing" |
|
|
|
"gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/scheduler/entity" |
|
|
|
"gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/scheduler/schedulers/option" |
|
|
|
"gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/scheduler/service/collector" |
|
|
|
"gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/scheduler/strategy" |
|
|
|
"gitlink.org.cn/jcce-pcm/pcm-coordinator/api/pkg/response" |
|
|
|
@@ -30,6 +31,7 @@ type AiScheduler struct { |
|
|
|
yamlString string |
|
|
|
task *response.TaskInfo |
|
|
|
*scheduler.Scheduler |
|
|
|
option option.AiOption |
|
|
|
} |
|
|
|
|
|
|
|
func NewAiScheduler(val string, scheduler *scheduler.Scheduler) (*AiScheduler, error) { |
|
|
|
@@ -48,7 +50,7 @@ func (as *AiScheduler) GetNewStructForDb(task *response.TaskInfo, resource strin |
|
|
|
} |
|
|
|
|
|
|
|
func (as *AiScheduler) PickOptimalStrategy() (strategy.Strategy, error) { |
|
|
|
resources, err := as.findProvidersWithResource() |
|
|
|
resources, err := as.findClustersWithResource() |
|
|
|
if err != nil { |
|
|
|
return nil, err |
|
|
|
} |
|
|
|
@@ -83,12 +85,19 @@ func (as *AiScheduler) AssignTask(clusters []*strategy.AssignedCluster) error { |
|
|
|
return errors.New("clusters is nil") |
|
|
|
} |
|
|
|
|
|
|
|
_ = *as.AiExecutor |
|
|
|
executorMap := *as.AiExecutor |
|
|
|
for _, cluster := range clusters { |
|
|
|
_, err := executorMap[cluster.Name].Execute(option.AiOption{}) |
|
|
|
if err != nil { |
|
|
|
// TODO: database operation |
|
|
|
} |
|
|
|
// TODO: database operation |
|
|
|
} |
|
|
|
|
|
|
|
return nil |
|
|
|
} |
|
|
|
|
|
|
|
func (as *AiScheduler) findProvidersWithResource() ([]*collector.ResourceSpecs, error) { |
|
|
|
func (as *AiScheduler) findClustersWithResource() ([]*collector.ResourceSpecs, error) { |
|
|
|
var resourceSpecs []*collector.ResourceSpecs |
|
|
|
for _, resourceCollector := range *as.ResourceCollector { |
|
|
|
spec, err := resourceCollector.GetResourceSpecs() |
|
|
|
|