mirror of
https://github.com/newnius/YAO-scheduler.git
synced 2025-06-07 22:31:55 +00:00
add network
This commit is contained in:
parent
9dd9c50002
commit
152946b25c
@ -24,6 +24,7 @@ type ResourcePool struct {
|
||||
}
|
||||
|
||||
func (pool *ResourcePool) start() {
|
||||
//TODO: retrieve networks from yao-agent-master in blocking io
|
||||
pool.networks = map[string]bool{}
|
||||
pool.networksFree = map[string]bool{}
|
||||
|
||||
@ -133,11 +134,14 @@ func (pool *ResourcePool) statusHistory() MsgPoolStatusHistory {
|
||||
}
|
||||
|
||||
func (pool *ResourcePool) acquireNetwork() string {
|
||||
pool.networkMu.Lock()
|
||||
defer pool.networkMu.Unlock()
|
||||
var network string
|
||||
if len(pool.networksFree) == 0 {
|
||||
for {
|
||||
for {
|
||||
network = "yao-net-" + strconv.Itoa(rand.Intn(999999))
|
||||
if _, ok := pool.networksFree[network]; !ok {
|
||||
if _, ok := pool.networks[network]; !ok {
|
||||
break
|
||||
}
|
||||
}
|
||||
@ -146,18 +150,19 @@ func (pool *ResourcePool) acquireNetwork() string {
|
||||
resp, err := doRequest("POST", "http://yao-agent-master:8000/network_create", strings.NewReader(v.Encode()), "application/x-www-form-urlencoded", "")
|
||||
if err != nil {
|
||||
log.Println(err.Error())
|
||||
return ""
|
||||
continue
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
pool.networksFree[network] = true
|
||||
pool.networks[network] = true
|
||||
break
|
||||
}
|
||||
pool.networkMu.Lock()
|
||||
}
|
||||
|
||||
for k := range pool.networksFree {
|
||||
network = k
|
||||
delete(pool.networksFree, k)
|
||||
}
|
||||
pool.networkMu.Unlock()
|
||||
return network
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user