diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2022-02-03 08:43:16 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-03 08:43:16 -0500 |
commit | ababa93ec5b79e4c1ff6507cd3ed7fbdcefc0e1a (patch) | |
tree | 69bc9576f3ca2d8f41a8b61c9bf23b0c725fa9fd /libpod/reset.go | |
parent | f2263fade4aef30fd619b648e4d1ca4aaf6bd506 (diff) | |
parent | 55c4a1468b8738a5711d213cfe7c172b463ecd24 (diff) | |
download | podman-ababa93ec5b79e4c1ff6507cd3ed7fbdcefc0e1a.tar.gz podman-ababa93ec5b79e4c1ff6507cd3ed7fbdcefc0e1a.tar.bz2 podman-ababa93ec5b79e4c1ff6507cd3ed7fbdcefc0e1a.zip |
Merge pull request #13116 from Luap99/reset-networks
system prune: remove all networks
Diffstat (limited to 'libpod/reset.go')
-rw-r--r-- | libpod/reset.go | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/libpod/reset.go b/libpod/reset.go index 2b2b586bc..28d0ee3f6 100644 --- a/libpod/reset.go +++ b/libpod/reset.go @@ -7,6 +7,7 @@ import ( "path/filepath" "github.com/containers/common/libimage" + "github.com/containers/common/libnetwork/types" "github.com/containers/podman/v4/libpod/define" "github.com/containers/podman/v4/pkg/errorhandling" "github.com/containers/podman/v4/pkg/rootless" @@ -70,6 +71,22 @@ func (r *Runtime) Reset(ctx context.Context) error { } } + // remove all networks + nets, err := r.network.NetworkList() + if err != nil { + return err + } + for _, net := range nets { + // do not delete the default network + if net.Name == r.network.DefaultNetworkName() { + continue + } + // ignore not exists errors because of the TOCTOU problem + if err := r.network.NetworkRemove(net.Name); err != nil && !errors.Is(err, types.ErrNoSuchNetwork) { + logrus.Errorf("Removing network %s: %v", net.Name, err) + } + } + xdgRuntimeDir := filepath.Clean(os.Getenv("XDG_RUNTIME_DIR")) _, prevError := r.store.Shutdown(true) graphRoot := filepath.Clean(r.store.GraphRoot()) |