summaryrefslogtreecommitdiff
path: root/cmd/podmanV2/volumes
diff options
context:
space:
mode:
authorBrent Baude <bbaude@redhat.com>2020-04-16 12:25:26 -0500
committerBrent Baude <bbaude@redhat.com>2020-04-16 15:53:58 -0500
commit241326a9a8c20ad7f2bcf651416b836e7778e090 (patch)
tree4001e8e47a022bb1b9bfbf2332c42e1aeb802f9e /cmd/podmanV2/volumes
parent88c6fd06cd54fb9a8826306dfdf1a77e400de5de (diff)
downloadpodman-241326a9a8c20ad7f2bcf651416b836e7778e090.tar.gz
podman-241326a9a8c20ad7f2bcf651416b836e7778e090.tar.bz2
podman-241326a9a8c20ad7f2bcf651416b836e7778e090.zip
Podman V2 birth
remote podman v1 and replace with podman v2. Signed-off-by: Brent Baude <bbaude@redhat.com>
Diffstat (limited to 'cmd/podmanV2/volumes')
-rw-r--r--cmd/podmanV2/volumes/create.go72
-rw-r--r--cmd/podmanV2/volumes/inspect.go74
-rw-r--r--cmd/podmanV2/volumes/list.go98
-rw-r--r--cmd/podmanV2/volumes/prune.go74
-rw-r--r--cmd/podmanV2/volumes/rm.go64
-rw-r--r--cmd/podmanV2/volumes/volume.go25
6 files changed, 0 insertions, 407 deletions
diff --git a/cmd/podmanV2/volumes/create.go b/cmd/podmanV2/volumes/create.go
deleted file mode 100644
index 91181dd03..000000000
--- a/cmd/podmanV2/volumes/create.go
+++ /dev/null
@@ -1,72 +0,0 @@
-package volumes
-
-import (
- "context"
- "fmt"
-
- "github.com/containers/libpod/cmd/podmanV2/parse"
- "github.com/containers/libpod/cmd/podmanV2/registry"
- "github.com/containers/libpod/pkg/domain/entities"
- "github.com/pkg/errors"
- "github.com/spf13/cobra"
-)
-
-var (
- createDescription = `If using the default driver, "local", the volume will be created on the host in the volumes directory under container storage.`
-
- createCommand = &cobra.Command{
- Use: "create [flags] [NAME]",
- Short: "Create a new volume",
- Long: createDescription,
- RunE: create,
- Example: `podman volume create myvol
- podman volume create
- podman volume create --label foo=bar myvol`,
- }
-)
-
-var (
- createOpts = entities.VolumeCreateOptions{}
- opts = struct {
- Label []string
- Opts []string
- }{}
-)
-
-func init() {
- registry.Commands = append(registry.Commands, registry.CliCommand{
- Mode: []entities.EngineMode{entities.ABIMode, entities.TunnelMode},
- Command: createCommand,
- Parent: volumeCmd,
- })
- flags := createCommand.Flags()
- flags.StringVar(&createOpts.Driver, "driver", "", "Specify volume driver name (default local)")
- flags.StringSliceVarP(&opts.Label, "label", "l", []string{}, "Set metadata for a volume (default [])")
- flags.StringArrayVarP(&opts.Opts, "opt", "o", []string{}, "Set driver specific options (default [])")
-}
-
-func create(cmd *cobra.Command, args []string) error {
- var (
- err error
- )
- if len(args) > 1 {
- return errors.Errorf("too many arguments, create takes at most 1 argument")
- }
- if len(args) > 0 {
- createOpts.Name = args[0]
- }
- createOpts.Label, err = parse.GetAllLabels([]string{}, opts.Label)
- if err != nil {
- return errors.Wrapf(err, "unable to process labels")
- }
- createOpts.Options, err = parse.GetAllLabels([]string{}, opts.Opts)
- if err != nil {
- return errors.Wrapf(err, "unable to process options")
- }
- response, err := registry.ContainerEngine().VolumeCreate(context.Background(), createOpts)
- if err != nil {
- return err
- }
- fmt.Println(response.IdOrName)
- return nil
-}
diff --git a/cmd/podmanV2/volumes/inspect.go b/cmd/podmanV2/volumes/inspect.go
deleted file mode 100644
index 4d9720432..000000000
--- a/cmd/podmanV2/volumes/inspect.go
+++ /dev/null
@@ -1,74 +0,0 @@
-package volumes
-
-import (
- "encoding/json"
- "fmt"
- "html/template"
- "os"
-
- "github.com/containers/buildah/pkg/formats"
- "github.com/containers/libpod/cmd/podmanV2/registry"
- "github.com/containers/libpod/pkg/domain/entities"
- "github.com/pkg/errors"
- "github.com/spf13/cobra"
- "golang.org/x/net/context"
-)
-
-var (
- volumeInspectDescription = `Display detailed information on one or more volumes.
-
- Use a Go template to change the format from JSON.`
- inspectCommand = &cobra.Command{
- Use: "inspect [flags] VOLUME [VOLUME...]",
- Short: "Display detailed information on one or more volumes",
- Long: volumeInspectDescription,
- RunE: inspect,
- Example: `podman volume inspect myvol
- podman volume inspect --all
- podman volume inspect --format "{{.Driver}} {{.Scope}}" myvol`,
- }
-)
-
-var (
- inspectOpts = entities.VolumeInspectOptions{}
- inspectFormat string
-)
-
-func init() {
- registry.Commands = append(registry.Commands, registry.CliCommand{
- Mode: []entities.EngineMode{entities.ABIMode, entities.TunnelMode},
- Command: inspectCommand,
- Parent: volumeCmd,
- })
- flags := inspectCommand.Flags()
- flags.BoolVarP(&inspectOpts.All, "all", "a", false, "Inspect all volumes")
- flags.StringVarP(&inspectFormat, "format", "f", "json", "Format volume output using Go template")
-}
-
-func inspect(cmd *cobra.Command, args []string) error {
- if (inspectOpts.All && len(args) > 0) || (!inspectOpts.All && len(args) < 1) {
- return errors.New("provide one or more volume names or use --all")
- }
- responses, err := registry.ContainerEngine().VolumeInspect(context.Background(), args, inspectOpts)
- if err != nil {
- return err
- }
- switch inspectFormat {
- case "", formats.JSONString:
- jsonOut, err := json.MarshalIndent(responses, "", " ")
- if err != nil {
- return errors.Wrapf(err, "error marshalling inspect JSON")
- }
- fmt.Println(string(jsonOut))
- default:
- tmpl, err := template.New("volumeInspect").Parse(inspectFormat)
- if err != nil {
- return err
- }
- if err := tmpl.Execute(os.Stdout, responses); err != nil {
- return err
- }
- }
- return nil
-
-}
diff --git a/cmd/podmanV2/volumes/list.go b/cmd/podmanV2/volumes/list.go
deleted file mode 100644
index c38f78c73..000000000
--- a/cmd/podmanV2/volumes/list.go
+++ /dev/null
@@ -1,98 +0,0 @@
-package volumes
-
-import (
- "context"
- "html/template"
- "io"
- "os"
- "strings"
- "text/tabwriter"
-
- "github.com/containers/libpod/cmd/podmanV2/registry"
- "github.com/containers/libpod/pkg/domain/entities"
- "github.com/pkg/errors"
- "github.com/spf13/cobra"
-)
-
-var (
- volumeLsDescription = `
-podman volume ls
-
-List all available volumes. The output of the volumes can be filtered
-and the output format can be changed to JSON or a user specified Go template.`
- lsCommand = &cobra.Command{
- Use: "ls",
- Aliases: []string{"list"},
- Args: cobra.NoArgs,
- Short: "List volumes",
- Long: volumeLsDescription,
- RunE: list,
- }
-)
-
-var (
- // Temporary struct to hold cli values.
- cliOpts = struct {
- Filter []string
- Format string
- Quiet bool
- }{}
- lsOpts = entities.VolumeListOptions{}
-)
-
-func init() {
- registry.Commands = append(registry.Commands, registry.CliCommand{
- Mode: []entities.EngineMode{entities.ABIMode, entities.TunnelMode},
- Command: lsCommand,
- Parent: volumeCmd,
- })
- flags := lsCommand.Flags()
- flags.StringSliceVarP(&cliOpts.Filter, "filter", "f", []string{}, "Filter volume output")
- flags.StringVar(&cliOpts.Format, "format", "{{.Driver}}\t{{.Name}}\n", "Format volume output using Go template")
- flags.BoolVarP(&cliOpts.Quiet, "quiet", "q", false, "Print volume output in quiet mode")
-}
-
-func list(cmd *cobra.Command, args []string) error {
- var w io.Writer = os.Stdout
- if cliOpts.Quiet && cmd.Flag("format").Changed {
- return errors.New("quiet and format flags cannot be used together")
- }
- for _, f := range cliOpts.Filter {
- filterSplit := strings.Split(f, "=")
- if len(filterSplit) < 2 {
- return errors.Errorf("filter input must be in the form of filter=value: %s is invalid", f)
- }
- lsOpts.Filter[filterSplit[0]] = append(lsOpts.Filter[filterSplit[0]], filterSplit[1:]...)
- }
- responses, err := registry.ContainerEngine().VolumeList(context.Background(), lsOpts)
- if err != nil {
- return err
- }
- // "\t" from the command line is not being recognized as a tab
- // replacing the string "\t" to a tab character if the user passes in "\t"
- cliOpts.Format = strings.Replace(cliOpts.Format, `\t`, "\t", -1)
- if cliOpts.Quiet {
- cliOpts.Format = "{{.Name}}\n"
- }
- headers := "DRIVER\tVOLUME NAME\n"
- row := cliOpts.Format
- if !strings.HasSuffix(cliOpts.Format, "\n") {
- row += "\n"
- }
- format := "{{range . }}" + row + "{{end}}"
- if !cliOpts.Quiet && !cmd.Flag("format").Changed {
- w = tabwriter.NewWriter(os.Stdout, 12, 2, 2, ' ', 0)
- format = headers + format
- }
- tmpl, err := template.New("listVolume").Parse(format)
- if err != nil {
- return err
- }
- if err := tmpl.Execute(w, responses); err != nil {
- return err
- }
- if flusher, ok := w.(interface{ Flush() error }); ok {
- return flusher.Flush()
- }
- return nil
-}
diff --git a/cmd/podmanV2/volumes/prune.go b/cmd/podmanV2/volumes/prune.go
deleted file mode 100644
index 148065f56..000000000
--- a/cmd/podmanV2/volumes/prune.go
+++ /dev/null
@@ -1,74 +0,0 @@
-package volumes
-
-import (
- "bufio"
- "context"
- "fmt"
- "os"
- "strings"
-
- "github.com/containers/libpod/cmd/podmanV2/registry"
- "github.com/containers/libpod/cmd/podmanV2/utils"
- "github.com/containers/libpod/pkg/domain/entities"
- "github.com/pkg/errors"
- "github.com/spf13/cobra"
-)
-
-var (
- volumePruneDescription = `Volumes that are not currently owned by a container will be removed.
-
- The command prompts for confirmation which can be overridden with the --force flag.
- Note all data will be destroyed.`
- pruneCommand = &cobra.Command{
- Use: "prune",
- Args: cobra.NoArgs,
- Short: "Remove all unused volumes",
- Long: volumePruneDescription,
- RunE: prune,
- }
-)
-
-var (
- pruneOptions entities.VolumePruneOptions
-)
-
-func init() {
- registry.Commands = append(registry.Commands, registry.CliCommand{
- Mode: []entities.EngineMode{entities.ABIMode, entities.TunnelMode},
- Command: pruneCommand,
- Parent: volumeCmd,
- })
- flags := pruneCommand.Flags()
- flags.BoolVarP(&pruneOptions.Force, "force", "f", false, "Do not prompt for confirmation")
-}
-
-func prune(cmd *cobra.Command, args []string) error {
- var (
- errs utils.OutputErrors
- )
- // Prompt for confirmation if --force is not set
- if !pruneOptions.Force {
- reader := bufio.NewReader(os.Stdin)
- fmt.Println("WARNING! This will remove all volumes 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 errors.Wrapf(err, "error reading input")
- }
- if strings.ToLower(answer)[0] != 'y' {
- return nil
- }
- }
- responses, err := registry.ContainerEngine().VolumePrune(context.Background(), pruneOptions)
- if err != nil {
- return err
- }
- for _, r := range responses {
- if r.Err == nil {
- fmt.Println(r.Id)
- } else {
- errs = append(errs, r.Err)
- }
- }
- return errs.PrintErrors()
-}
diff --git a/cmd/podmanV2/volumes/rm.go b/cmd/podmanV2/volumes/rm.go
deleted file mode 100644
index b019285d8..000000000
--- a/cmd/podmanV2/volumes/rm.go
+++ /dev/null
@@ -1,64 +0,0 @@
-package volumes
-
-import (
- "context"
- "fmt"
-
- "github.com/containers/libpod/cmd/podmanV2/registry"
- "github.com/containers/libpod/cmd/podmanV2/utils"
- "github.com/containers/libpod/pkg/domain/entities"
- "github.com/pkg/errors"
- "github.com/spf13/cobra"
-)
-
-var (
- volumeRmDescription = `Remove one or more existing volumes.
-
- By default only volumes that are not being used by any containers will be removed. To remove the volumes anyways, use the --force flag.`
- rmCommand = &cobra.Command{
- Use: "rm [flags] VOLUME [VOLUME...]",
- Aliases: []string{"remove"},
- Short: "Remove one or more volumes",
- Long: volumeRmDescription,
- RunE: rm,
- Example: `podman volume rm myvol1 myvol2
- podman volume rm --all
- podman volume rm --force myvol`,
- }
-)
-
-var (
- rmOptions = entities.VolumeRmOptions{}
-)
-
-func init() {
- registry.Commands = append(registry.Commands, registry.CliCommand{
- Mode: []entities.EngineMode{entities.ABIMode, entities.TunnelMode},
- Command: rmCommand,
- Parent: volumeCmd,
- })
- flags := rmCommand.Flags()
- flags.BoolVarP(&rmOptions.All, "all", "a", false, "Remove all volumes")
- flags.BoolVarP(&rmOptions.Force, "force", "f", false, "Remove a volume by force, even if it is being used by a container")
-}
-
-func rm(cmd *cobra.Command, args []string) error {
- var (
- errs utils.OutputErrors
- )
- if (len(args) > 0 && rmOptions.All) || (len(args) < 1 && !rmOptions.All) {
- return errors.New("choose either one or more volumes or all")
- }
- responses, err := registry.ContainerEngine().VolumeRm(context.Background(), args, rmOptions)
- if err != nil {
- return err
- }
- for _, r := range responses {
- if r.Err == nil {
- fmt.Println(r.Id)
- } else {
- errs = append(errs, r.Err)
- }
- }
- return errs.PrintErrors()
-}
diff --git a/cmd/podmanV2/volumes/volume.go b/cmd/podmanV2/volumes/volume.go
deleted file mode 100644
index d1135d1bf..000000000
--- a/cmd/podmanV2/volumes/volume.go
+++ /dev/null
@@ -1,25 +0,0 @@
-package volumes
-
-import (
- "github.com/containers/libpod/cmd/podmanV2/registry"
- "github.com/containers/libpod/pkg/domain/entities"
- "github.com/spf13/cobra"
-)
-
-var (
- // Command: podman _volume_
- volumeCmd = &cobra.Command{
- Use: "volume",
- Short: "Manage volumes",
- Long: "Volumes are created in and can be shared between containers",
- TraverseChildren: true,
- RunE: registry.SubCommandExists,
- }
-)
-
-func init() {
- registry.Commands = append(registry.Commands, registry.CliCommand{
- Mode: []entities.EngineMode{entities.ABIMode, entities.TunnelMode},
- Command: volumeCmd,
- })
-}