github.com/containers/libpod@v1.9.4-0.20220419124438-4284fd425507/cmd/podman/network_rm.go (about) 1 // +build !remoteclient 2 3 package main 4 5 import ( 6 "fmt" 7 8 "github.com/containers/libpod/cmd/podman/cliconfig" 9 "github.com/containers/libpod/pkg/adapter" 10 "github.com/containers/libpod/pkg/rootless" 11 "github.com/pkg/errors" 12 "github.com/sirupsen/logrus" 13 "github.com/spf13/cobra" 14 ) 15 16 var ( 17 networkrmCommand cliconfig.NetworkRmValues 18 networkrmDescription = `Remove networks` 19 _networkrmCommand = &cobra.Command{ 20 Use: "rm [flags] NETWORK [NETWORK...]", 21 Short: "network rm", 22 Long: networkrmDescription, 23 RunE: func(cmd *cobra.Command, args []string) error { 24 networkrmCommand.InputArgs = args 25 networkrmCommand.GlobalFlags = MainGlobalOpts 26 networkrmCommand.Remote = remoteclient 27 return networkrmCmd(&networkrmCommand) 28 }, 29 Example: `podman network rm podman`, 30 } 31 ) 32 33 func init() { 34 networkrmCommand.Command = _networkrmCommand 35 networkrmCommand.SetHelpTemplate(HelpTemplate()) 36 networkrmCommand.SetUsageTemplate(UsageTemplate()) 37 flags := networkrmCommand.Flags() 38 flags.BoolVarP(&networkrmCommand.Force, "force", "f", false, "remove any containers using network") 39 } 40 41 func networkrmCmd(c *cliconfig.NetworkRmValues) error { 42 if rootless.IsRootless() && !remoteclient { 43 return errors.New("network rm is not supported for rootless mode") 44 } 45 if len(c.InputArgs) < 1 { 46 return errors.Errorf("at least one network name is required") 47 } 48 runtime, err := adapter.GetRuntime(getContext(), &c.PodmanCommand) 49 if err != nil { 50 return err 51 } 52 deletes, rmErrors, lastErr := runtime.NetworkRemove(getContext(), c) 53 for _, d := range deletes { 54 fmt.Println(d) 55 } 56 // we only want to print errors if there is more 57 // than one 58 for network, removalErr := range rmErrors { 59 logrus.Errorf("unable to remove %q: %q", network, removalErr) 60 } 61 return lastErr 62 }