Merge pull request #46546 from thaJeztah/libnetwork_return_errs
libnetwork: Controller.cleanupLocalEndpoints, sandboxCleanup: return errors
This commit is contained in:
commit
605c8fb75d
3 changed files with 17 additions and 11 deletions
|
@ -155,8 +155,12 @@ func New(cfgOptions ...config.Option) (*Controller, error) {
|
|||
c.reservePools()
|
||||
|
||||
// Cleanup resources
|
||||
c.sandboxCleanup(c.cfg.ActiveSandboxes)
|
||||
c.cleanupLocalEndpoints()
|
||||
if err := c.sandboxCleanup(c.cfg.ActiveSandboxes); err != nil {
|
||||
log.G(context.TODO()).WithError(err).Error("error during sandbox cleanup")
|
||||
}
|
||||
if err := c.cleanupLocalEndpoints(); err != nil {
|
||||
log.G(context.TODO()).WithError(err).Warnf("error during endpoint cleanup")
|
||||
}
|
||||
c.networkCleanup()
|
||||
|
||||
if err := c.startExternalKeyListener(); err != nil {
|
||||
|
|
|
@ -1144,7 +1144,7 @@ func (ep *Endpoint) releaseAddress() {
|
|||
}
|
||||
}
|
||||
|
||||
func (c *Controller) cleanupLocalEndpoints() {
|
||||
func (c *Controller) cleanupLocalEndpoints() error {
|
||||
// Get used endpoints
|
||||
eps := make(map[string]interface{})
|
||||
for _, sb := range c.sandboxes {
|
||||
|
@ -1154,8 +1154,7 @@ func (c *Controller) cleanupLocalEndpoints() {
|
|||
}
|
||||
nl, err := c.getNetworks()
|
||||
if err != nil {
|
||||
log.G(context.TODO()).Warnf("Could not get list of networks during endpoint cleanup: %v", err)
|
||||
return
|
||||
return fmt.Errorf("could not get list of networks: %v", err)
|
||||
}
|
||||
|
||||
for _, n := range nl {
|
||||
|
@ -1192,4 +1191,6 @@ func (c *Controller) cleanupLocalEndpoints() {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ package libnetwork
|
|||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"sync"
|
||||
|
||||
"github.com/containerd/containerd/log"
|
||||
|
@ -171,21 +172,19 @@ func (sb *Sandbox) storeDelete() error {
|
|||
})
|
||||
}
|
||||
|
||||
func (c *Controller) sandboxCleanup(activeSandboxes map[string]interface{}) {
|
||||
func (c *Controller) sandboxCleanup(activeSandboxes map[string]interface{}) error {
|
||||
store := c.getStore()
|
||||
if store == nil {
|
||||
log.G(context.TODO()).Error("Could not find local scope store while trying to cleanup sandboxes")
|
||||
return
|
||||
return fmt.Errorf("could not find local scope store")
|
||||
}
|
||||
|
||||
sandboxStates, err := store.List(datastore.Key(sandboxPrefix), &sbState{c: c})
|
||||
if err != nil {
|
||||
if err == datastore.ErrKeyNotFound {
|
||||
// It's normal for no sandboxes to be found. Just bail out.
|
||||
return
|
||||
return nil
|
||||
}
|
||||
log.G(context.TODO()).Errorf("failed to get sandboxes for scope %s: %v", store.Scope(), err)
|
||||
return
|
||||
return fmt.Errorf("failed to get sandboxes for scope %s: %v", store.Scope(), err)
|
||||
}
|
||||
|
||||
for _, s := range sandboxStates {
|
||||
|
@ -285,4 +284,6 @@ func (c *Controller) sandboxCleanup(activeSandboxes map[string]interface{}) {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue