|
@@ -190,13 +190,10 @@ func (daemon *Daemon) ImagesPrune(pruneFilters filters.Args) (*types.ImagesPrune
|
|
|
}
|
|
|
|
|
|
// localNetworksPrune removes unused local networks
|
|
|
-func (daemon *Daemon) localNetworksPrune(pruneFilters filters.Args) (*types.NetworksPruneReport, error) {
|
|
|
+func (daemon *Daemon) localNetworksPrune(pruneFilters filters.Args) *types.NetworksPruneReport {
|
|
|
rep := &types.NetworksPruneReport{}
|
|
|
|
|
|
- until, err := getUntilFromPruneFilters(pruneFilters)
|
|
|
- if err != nil {
|
|
|
- return rep, err
|
|
|
- }
|
|
|
+ until, _ := getUntilFromPruneFilters(pruneFilters)
|
|
|
|
|
|
// When the function returns true, the walk will stop.
|
|
|
l := func(nw libnetwork.Network) bool {
|
|
@@ -204,28 +201,28 @@ func (daemon *Daemon) localNetworksPrune(pruneFilters filters.Args) (*types.Netw
|
|
|
return false
|
|
|
}
|
|
|
nwName := nw.Name()
|
|
|
- predefined := runconfig.IsPreDefinedNetwork(nwName)
|
|
|
- if !predefined && len(nw.Endpoints()) == 0 {
|
|
|
- if err = daemon.DeleteNetwork(nw.ID()); err != nil {
|
|
|
- logrus.Warnf("could not remove network %s: %v", nwName, err)
|
|
|
- return false
|
|
|
- }
|
|
|
- rep.NetworksDeleted = append(rep.NetworksDeleted, nwName)
|
|
|
+ if runconfig.IsPreDefinedNetwork(nwName) {
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ if len(nw.Endpoints()) > 0 {
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ if err := daemon.DeleteNetwork(nw.ID()); err != nil {
|
|
|
+ logrus.Warnf("could not remove local network %s: %v", nwName, err)
|
|
|
+ return false
|
|
|
}
|
|
|
+ rep.NetworksDeleted = append(rep.NetworksDeleted, nwName)
|
|
|
return false
|
|
|
}
|
|
|
daemon.netController.WalkNetworks(l)
|
|
|
- return rep, err
|
|
|
+ return rep
|
|
|
}
|
|
|
|
|
|
// clusterNetworksPrune removes unused cluster networks
|
|
|
func (daemon *Daemon) clusterNetworksPrune(pruneFilters filters.Args) (*types.NetworksPruneReport, error) {
|
|
|
rep := &types.NetworksPruneReport{}
|
|
|
|
|
|
- until, err := getUntilFromPruneFilters(pruneFilters)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
+ until, _ := getUntilFromPruneFilters(pruneFilters)
|
|
|
|
|
|
cluster := daemon.GetCluster()
|
|
|
networks, err := cluster.GetNetworks()
|
|
@@ -248,7 +245,7 @@ func (daemon *Daemon) clusterNetworksPrune(pruneFilters filters.Args) (*types.Ne
|
|
|
// we can safely ignore the "network .. is in use" error
|
|
|
match := networkIsInUse.FindStringSubmatch(err.Error())
|
|
|
if len(match) != 2 || match[1] != nw.ID {
|
|
|
- logrus.Warnf("could not remove network %s: %v", nw.Name, err)
|
|
|
+ logrus.Warnf("could not remove cluster network %s: %v", nw.Name, err)
|
|
|
}
|
|
|
continue
|
|
|
}
|
|
@@ -259,20 +256,20 @@ func (daemon *Daemon) clusterNetworksPrune(pruneFilters filters.Args) (*types.Ne
|
|
|
|
|
|
// NetworksPrune removes unused networks
|
|
|
func (daemon *Daemon) NetworksPrune(pruneFilters filters.Args) (*types.NetworksPruneReport, error) {
|
|
|
- rep := &types.NetworksPruneReport{}
|
|
|
- clusterRep, err := daemon.clusterNetworksPrune(pruneFilters)
|
|
|
- if err != nil {
|
|
|
- logrus.Warnf("could not remove cluster networks: %v", err)
|
|
|
- } else {
|
|
|
- rep.NetworksDeleted = append(rep.NetworksDeleted, clusterRep.NetworksDeleted...)
|
|
|
+ if _, err := getUntilFromPruneFilters(pruneFilters); err != nil {
|
|
|
+ return nil, err
|
|
|
}
|
|
|
- localRep, err := daemon.localNetworksPrune(pruneFilters)
|
|
|
+
|
|
|
+ clusterRep, err := daemon.clusterNetworksPrune(pruneFilters)
|
|
|
if err != nil {
|
|
|
- logrus.Warnf("could not remove local networks: %v", err)
|
|
|
- } else {
|
|
|
- rep.NetworksDeleted = append(rep.NetworksDeleted, localRep.NetworksDeleted...)
|
|
|
+ return nil, fmt.Errorf("could not remove cluster networks: %s", err)
|
|
|
}
|
|
|
- return rep, err
|
|
|
+ rep := &types.NetworksPruneReport{}
|
|
|
+ rep.NetworksDeleted = append(rep.NetworksDeleted, clusterRep.NetworksDeleted...)
|
|
|
+
|
|
|
+ localRep := daemon.localNetworksPrune(pruneFilters)
|
|
|
+ rep.NetworksDeleted = append(rep.NetworksDeleted, localRep.NetworksDeleted...)
|
|
|
+ return rep, nil
|
|
|
}
|
|
|
|
|
|
func getUntilFromPruneFilters(pruneFilters filters.Args) (time.Time, error) {
|