From 5bbdd32340542ce573d0d6d6ef7a413c6535c27f Mon Sep 17 00:00:00 2001 From: tzwang Date: Wed, 17 Jan 2024 11:23:00 +0800 Subject: [PATCH] scheduler refactor updated2 Former-commit-id: edf048824700220fad049a2a8553dddd2804edab --- pkg/scheduler/aiScheduler.go | 4 ---- pkg/scheduler/cloudScheduler.go | 4 ---- pkg/scheduler/common.go | 1 - pkg/scheduler/database/storage.go | 6 ++++++ pkg/scheduler/hpcScheduler.go | 4 ---- pkg/scheduler/scheduler.go | 14 +++++++++----- pkg/scheduler/strategies/replicationStrategy.go | 12 ++++++++++++ 7 files changed, 27 insertions(+), 18 deletions(-) create mode 100644 pkg/scheduler/strategies/replicationStrategy.go diff --git a/pkg/scheduler/aiScheduler.go b/pkg/scheduler/aiScheduler.go index 1f4f5442..cbec54f2 100644 --- a/pkg/scheduler/aiScheduler.go +++ b/pkg/scheduler/aiScheduler.go @@ -52,7 +52,3 @@ func (as *AiScheduler) pickOptimalStrategy() (strategies.Strategy, error) { func (as *AiScheduler) genTaskAndProviders() (*providerPricing.Task, []*providerPricing.Provider) { return nil, nil } - -func (as *AiScheduler) assignTask() error { - return nil -} diff --git a/pkg/scheduler/cloudScheduler.go b/pkg/scheduler/cloudScheduler.go index 7384d269..37bd9ca6 100644 --- a/pkg/scheduler/cloudScheduler.go +++ b/pkg/scheduler/cloudScheduler.go @@ -116,7 +116,3 @@ func (cs *CloudScheduler) genTaskAndProviders() (*providerPricing.Task, []*provi return nil, providerList, nil } - -func (cs *CloudScheduler) assignTask() error { - return nil -} diff --git a/pkg/scheduler/common.go b/pkg/scheduler/common.go index 8d838c43..62270a92 100644 --- a/pkg/scheduler/common.go +++ b/pkg/scheduler/common.go @@ -24,7 +24,6 @@ import ( type scheduleService interface { getNewStructForDb(task *response.TaskInfo, resource string, participantId int64) (interface{}, error) pickOptimalStrategy() (strategies.Strategy, error) - assignTask() error } // 求交集 diff --git a/pkg/scheduler/database/storage.go b/pkg/scheduler/database/storage.go index 44887345..7c293d77 100644 --- a/pkg/scheduler/database/storage.go +++ b/pkg/scheduler/database/storage.go @@ -2,4 +2,10 @@ package database type Storage interface { GetProviderParams() ([]providerParams, error) + FindAvailableCluster() +} + +type NSIDSpecified interface { + Storage + NSID() error } diff --git a/pkg/scheduler/hpcScheduler.go b/pkg/scheduler/hpcScheduler.go index e1b4018f..bf964bb7 100644 --- a/pkg/scheduler/hpcScheduler.go +++ b/pkg/scheduler/hpcScheduler.go @@ -49,7 +49,3 @@ func (h *HpcScheduler) pickOptimalStrategy() (strategies.Strategy, error) { func (h *HpcScheduler) genTaskAndProviders(task *response.TaskInfo) (*providerPricing.Task, []*providerPricing.Provider) { return nil, nil } - -func (h *HpcScheduler) assignTask() error { - return nil -} diff --git a/pkg/scheduler/scheduler.go b/pkg/scheduler/scheduler.go index 5e0fe90c..e05351c8 100644 --- a/pkg/scheduler/scheduler.go +++ b/pkg/scheduler/scheduler.go @@ -131,11 +131,15 @@ func (s *scheduler) AssignAndSchedule() error { return nil } - //生成算法所需参数 - //task, providerList, err := s.obtainParamsForStrategy() - //if err != nil { - // return err - //} + strategy, err := s.scheduleService.pickOptimalStrategy() + if err != nil { + return err + } + + _, err = strategy.Schedule() + if err != nil { + return err + } //集群数量不满足,指定到标签匹配后第一个集群 //if len(providerList) < 2 { diff --git a/pkg/scheduler/strategies/replicationStrategy.go b/pkg/scheduler/strategies/replicationStrategy.go new file mode 100644 index 00000000..569fad69 --- /dev/null +++ b/pkg/scheduler/strategies/replicationStrategy.go @@ -0,0 +1,12 @@ +package strategies + +type ReplicationStrategy struct { +} + +func (ps *ReplicationStrategy) findAvailableCLuster() error { + return nil +} + +func (ps *ReplicationStrategy) Schedule() ([]*AssignedCluster, error) { + return nil, nil +}