|
- package schedulers
-
- import (
- "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/algorithm/providerPricing"
- "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/database"
- "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/strategy"
- "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/strategy/param"
- "gitlink.org.cn/JointCloud/pcm-coordinator/api/pkg/response"
- "gitlink.org.cn/JointCloud/pcm-coordinator/pkg/constants"
- "gitlink.org.cn/JointCloud/pcm-coordinator/pkg/models"
- "gitlink.org.cn/JointCloud/pcm-coordinator/pkg/utils"
- )
-
- type VmScheduler struct {
- storage database.Storage
- }
-
- func NewVmScheduler() *VmScheduler {
- return &VmScheduler{}
- }
-
- func (vm *VmScheduler) PickOptimalStrategy() (strategy.Strategy, error) {
- //获取所有计算中心
- //调度算法
- strategy := strategy.NewPricingStrategy(¶m.ResourcePricingParams{})
- return strategy, nil
- }
-
- func (v *VmScheduler) GetNewStructForDb(task *response.TaskInfo, resource string, participantId int64) (interface{}, error) {
- //TODO implement me
- vm := models.Vm{}
- utils.Convert(task.Metadata, &vm)
- vm.Id = utils.GenSnowflakeID()
- vm.TaskId = vm.TaskId
- vm.Status = constants.Saved
- vm.ParticipantId = participantId
- return vm, nil
- //vm.YamlString =v.yamlString
- /* vm. = utils.GenSnowflakeID()
- vm.NsID = task.NsID
- vm.ParticipantId = participantId*/
- }
-
- /*
- func (vm *VmScheduler) UnMarshalVmStruct(yamlString string, taskId int64, nsID string) models.vm {
- var vm models.Vm
- vm := kyaml.NewYAMLOrJSONDecoder(bytes.NewBufferString(yamlString), 4096)
- }
- */
- func (vm *VmScheduler) genTaskAndProviders() (*providerPricing.Task, []*providerPricing.Provider, error) {
- proParams, err := vm.storage.GetProviderParams()
- if err != nil {
- return nil, nil, nil
- }
- var providerList []*providerPricing.Provider
- for _, p := range proParams {
- provider := providerPricing.NewProvider(p.Participant_id, p.Cpu_avail, p.Mem_avail, p.Disk_avail, 0.0, 0.0, 0.0)
- providerList = append(providerList, provider)
- }
-
- //replicas := task.Metadata.(map[string]interface{})["spec"].(map[string]interface{})["replicas"].(float64)
- //t := algorithm.NewTask(0, int(replicas), 2, 75120000, 301214500, 1200, 2, 6, 2000)
-
- return nil, providerList, nil
- }
-
- func (v VmScheduler) AssignTask(clusters []*strategy.AssignedCluster) error {
- //TODO implement me
- panic("implement me")
- }
|