Merge pull request #726 from mavenugo/res
set cntlr sandbox before cleaning endpoints in ungraceful restart case
This commit is contained in:
commit
abeb8f8a85
|
@ -479,7 +479,7 @@ func (sb *sandbox) populateNetworkResources(ep *endpoint) error {
|
||||||
for _, gwep := range sb.getConnectedEndpoints() {
|
for _, gwep := range sb.getConnectedEndpoints() {
|
||||||
if len(gwep.Gateway()) > 0 {
|
if len(gwep.Gateway()) > 0 {
|
||||||
if gwep != ep {
|
if gwep != ep {
|
||||||
return nil
|
break
|
||||||
}
|
}
|
||||||
if err := sb.updateGateway(gwep); err != nil {
|
if err := sb.updateGateway(gwep); err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
|
@ -197,28 +197,28 @@ func (c *controller) sandboxCleanup() {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
c.Lock()
|
||||||
|
c.sandboxes[sb.id] = sb
|
||||||
|
c.Unlock()
|
||||||
|
|
||||||
for _, eps := range sbs.Eps {
|
for _, eps := range sbs.Eps {
|
||||||
n, err := c.getNetworkFromStore(eps.Nid)
|
n, err := c.getNetworkFromStore(eps.Nid)
|
||||||
var ep *endpoint
|
var ep *endpoint
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logrus.Errorf("getNetworkFromStore for nid %s failed while trying to build sandbox for cleanup: %v", eps.Nid, err)
|
logrus.Errorf("getNetworkFromStore for nid %s failed while trying to build sandbox for cleanup: %v", eps.Nid, err)
|
||||||
n = &network{id: eps.Nid, ctrlr: c, drvOnce: &sync.Once{}}
|
n = &network{id: eps.Nid, ctrlr: c, drvOnce: &sync.Once{}}
|
||||||
ep = &endpoint{id: eps.Eid, network: n}
|
ep = &endpoint{id: eps.Eid, network: n, sandboxID: sbs.ID}
|
||||||
} else {
|
} else {
|
||||||
ep, err = n.getEndpointFromStore(eps.Eid)
|
ep, err = n.getEndpointFromStore(eps.Eid)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logrus.Errorf("getEndpointFromStore for eid %s failed while trying to build sandbox for cleanup: %v", eps.Eid, err)
|
logrus.Errorf("getEndpointFromStore for eid %s failed while trying to build sandbox for cleanup: %v", eps.Eid, err)
|
||||||
ep = &endpoint{id: eps.Eid, network: n}
|
ep = &endpoint{id: eps.Eid, network: n, sandboxID: sbs.ID}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
heap.Push(&sb.endpoints, ep)
|
heap.Push(&sb.endpoints, ep)
|
||||||
}
|
}
|
||||||
|
|
||||||
c.Lock()
|
|
||||||
c.sandboxes[sb.id] = sb
|
|
||||||
c.Unlock()
|
|
||||||
|
|
||||||
if err := sb.Delete(); err != nil {
|
if err := sb.Delete(); err != nil {
|
||||||
logrus.Errorf("failed to delete sandbox %s while trying to cleanup: %v", sb.id, err)
|
logrus.Errorf("failed to delete sandbox %s while trying to cleanup: %v", sb.id, err)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue