github.com/cloud-foundations/dominator@v0.0.0-20221004181915-6e4fee580046/fleetmanager/hypervisors/start.go (about) 1 package hypervisors 2 3 import ( 4 "os" 5 6 "github.com/Cloud-Foundations/Dominator/lib/html" 7 ) 8 9 func newManager(startOptions StartOptions) (*Manager, error) { 10 if err := checkPoolLimits(); err != nil { 11 return nil, err 12 } 13 if startOptions.IpmiPasswordFile != "" { 14 file, err := os.Open(startOptions.IpmiPasswordFile) 15 if err != nil { 16 return nil, err 17 } 18 file.Close() 19 } 20 manager := &Manager{ 21 ipmiUsername: startOptions.IpmiUsername, 22 ipmiPasswordFile: startOptions.IpmiPasswordFile, 23 logger: startOptions.Logger, 24 storer: startOptions.Storer, 25 allocatingIPs: make(map[string]struct{}), 26 hypervisors: make(map[string]*hypervisorType), 27 migratingIPs: make(map[string]struct{}), 28 subnets: make(map[string]*subnetType), 29 vms: make(map[string]*vmInfoType), 30 } 31 html.HandleFunc("/listHypervisors", manager.listHypervisorsHandler) 32 html.HandleFunc("/listLocations", manager.listLocationsHandler) 33 html.HandleFunc("/listVMs", manager.listVMsHandler) 34 html.HandleFunc("/showHypervisor", manager.showHypervisorHandler) 35 go manager.notifierLoop() 36 return manager, nil 37 }