github.com/cloud-foundations/dominator@v0.0.0-20221004181915-6e4fee580046/fleetmanager/hypervisors/fsstorer/get.go (about) 1 package fsstorer 2 3 import ( 4 "net" 5 ) 6 7 func (s *Storer) getHypervisorForIp(addr net.IP) (net.IP, error) { 8 if ip, err := netIpToIp(addr); err != nil { 9 return nil, err 10 } else { 11 s.mutex.RLock() 12 hypervisor, ok := s.ipToHypervisor[ip] 13 s.mutex.RUnlock() 14 if !ok { 15 return nil, nil 16 } 17 return hypervisor[:], nil 18 } 19 } 20 21 func (s *Storer) getIPsForHypervisor(hypervisor net.IP) ([]net.IP, error) { 22 if hypervisorIP, err := netIpToIp(hypervisor); err != nil { 23 return nil, err 24 } else { 25 s.mutex.RLock() 26 ipList, ok := s.hypervisorToIPs[hypervisorIP] 27 s.mutex.RUnlock() 28 if !ok { 29 return nil, nil 30 } 31 netIpList := make([]net.IP, 0, len(ipList)) 32 for _, ip := range ipList { 33 ip := ip 34 netIpList = append(netIpList, net.IP(ip[:])) 35 } 36 return netIpList, nil 37 } 38 }