@@ -3,10 +3,7 @@ package instance
33import (
44 "context"
55 "fmt"
6- "math/rand"
7- "time"
86
9- "github.com/pkg/errors"
107 "github.com/sp-yduck/proxmox-go/api"
118 "github.com/sp-yduck/proxmox-go/proxmox"
129 "github.com/sp-yduck/proxmox-go/rest"
@@ -50,19 +47,17 @@ func (s *Service) createQEMU(ctx context.Context, nodeName string, vmid *int) (*
5047
5148 // get node
5249 if nodeName == "" {
53- // temp solution
54- node , err := s .getRandomNode (ctx )
50+ node , err := s .scheduler .GetNode (ctx )
5551 if err != nil {
56- log .Error (err , "failed to get random node" )
52+ log .Error (err , "failed to get proxmox node" )
5753 return nil , err
5854 }
59- nodeName = node .Node
60- s .scope .SetNodeName (nodeName )
55+ s .scope .SetNodeName (node .Node )
6156 }
6257
6358 // if vmid is empty, generate new vmid
6459 if vmid == nil {
65- nextid , err := s .getNextID (ctx )
60+ nextid , err := s .scheduler . GetID (ctx )
6661 if err != nil {
6762 log .Error (err , "failed to get available vmid" )
6863 return nil , err
@@ -73,7 +68,7 @@ func (s *Service) createQEMU(ctx context.Context, nodeName string, vmid *int) (*
7368 vmoption := s .generateVMOptions ()
7469 vm , err := s .client .CreateVirtualMachine (ctx , nodeName , * vmid , vmoption )
7570 if err != nil {
76- log .Error (err , fmt . Sprintf ( "failed to create qemu instance %s" , vm . VM . Name ) )
71+ log .Error (err , "failed to create qemu instance" )
7772 return nil , err
7873 }
7974 s .scope .SetVMID (* vmid )
@@ -83,28 +78,6 @@ func (s *Service) createQEMU(ctx context.Context, nodeName string, vmid *int) (*
8378 return vm , nil
8479}
8580
86- func (s * Service ) getNextID (ctx context.Context ) (int , error ) {
87- return s .client .RESTClient ().GetNextID (ctx )
88- }
89-
90- func (s * Service ) getNodes (ctx context.Context ) ([]* api.Node , error ) {
91- return s .client .Nodes (ctx )
92- }
93-
94- // GetRandomNode returns a node chosen randomly
95- func (s * Service ) getRandomNode (ctx context.Context ) (* api.Node , error ) {
96- nodes , err := s .getNodes (ctx )
97- if err != nil {
98- return nil , err
99- }
100- if len (nodes ) <= 0 {
101- return nil , errors .Errorf ("no nodes found" )
102- }
103- src := rand .NewSource (time .Now ().Unix ())
104- r := rand .New (src )
105- return nodes [r .Intn (len (nodes ))], nil
106- }
107-
10881func (s * Service ) generateVMOptions () api.VirtualMachineCreateOptions {
10982 vmName := s .scope .Name ()
11083 storageName := s .scope .GetStorage ().Name
0 commit comments