-
Notifications
You must be signed in to change notification settings - Fork 2.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #9236 from baude/networkprune
add network prune
- Loading branch information
Showing
18 changed files
with
447 additions
and
22 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
package network | ||
|
||
import ( | ||
"bufio" | ||
"fmt" | ||
"os" | ||
"strings" | ||
|
||
"github.com/containers/podman/v2/cmd/podman/common" | ||
"github.com/containers/podman/v2/cmd/podman/registry" | ||
"github.com/containers/podman/v2/cmd/podman/utils" | ||
"github.com/containers/podman/v2/cmd/podman/validate" | ||
"github.com/containers/podman/v2/pkg/domain/entities" | ||
"github.com/spf13/cobra" | ||
"github.com/spf13/pflag" | ||
) | ||
|
||
var ( | ||
networkPruneDescription = `Prune unused networks` | ||
networkPruneCommand = &cobra.Command{ | ||
Use: "prune [options]", | ||
Short: "network prune", | ||
Long: networkPruneDescription, | ||
RunE: networkPrune, | ||
Example: `podman network prune`, | ||
Args: validate.NoArgs, | ||
ValidArgsFunction: common.AutocompleteNetworks, | ||
} | ||
) | ||
|
||
var ( | ||
networkPruneOptions entities.NetworkPruneOptions | ||
force bool | ||
) | ||
|
||
func networkPruneFlags(flags *pflag.FlagSet) { | ||
//TODO: Not implemented but for future reference | ||
//flags.StringSliceVar(&networkPruneOptions.Filters,"filters", []string{}, "provide filter values (e.g. 'until=<timestamp>')") | ||
flags.BoolVarP(&force, "force", "f", false, "do not prompt for confirmation") | ||
} | ||
|
||
func init() { | ||
registry.Commands = append(registry.Commands, registry.CliCommand{ | ||
Mode: []entities.EngineMode{entities.ABIMode, entities.TunnelMode}, | ||
Command: networkPruneCommand, | ||
Parent: networkCmd, | ||
}) | ||
flags := networkPruneCommand.Flags() | ||
networkPruneFlags(flags) | ||
} | ||
|
||
func networkPrune(cmd *cobra.Command, _ []string) error { | ||
var ( | ||
errs utils.OutputErrors | ||
) | ||
if !force { | ||
reader := bufio.NewReader(os.Stdin) | ||
fmt.Println("WARNING! This will remove all networks not used by at least one container.") | ||
fmt.Print("Are you sure you want to continue? [y/N] ") | ||
answer, err := reader.ReadString('\n') | ||
if err != nil { | ||
return err | ||
} | ||
if strings.ToLower(answer)[0] != 'y' { | ||
return nil | ||
} | ||
} | ||
responses, err := registry.ContainerEngine().NetworkPrune(registry.Context(), networkPruneOptions) | ||
if err != nil { | ||
setExitCode(err) | ||
return err | ||
} | ||
for _, r := range responses { | ||
if r.Error == nil { | ||
fmt.Println(r.Name) | ||
} else { | ||
setExitCode(r.Error) | ||
errs = append(errs, r.Error) | ||
} | ||
} | ||
return errs.PrintErrors() | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
% podman-network-prune(1) | ||
|
||
## NAME | ||
podman\-network\-prune - Remove all unused networks | ||
|
||
## SYNOPSIS | ||
**podman network prune** [*options*] | ||
|
||
## DESCRIPTION | ||
Remove all unused networks. An unused network is defined by a network which | ||
has no containers connected or configured to connect to it. It will not remove | ||
the so-called default network which goes by the name of *podman*. | ||
|
||
## OPTIONS | ||
#### **--force**, **-f** | ||
|
||
Do not prompt for confirmation | ||
|
||
## EXAMPLE | ||
Prune networks | ||
|
||
``` | ||
podman network prune | ||
``` | ||
|
||
|
||
## SEE ALSO | ||
podman(1), podman-network(1), podman-network-remove(1) | ||
|
||
## HISTORY | ||
February 2021, Originally compiled by Brent Baude <[email protected]> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.