summaryrefslogtreecommitdiff
path: root/cmd/podman/system/renumber.go
diff options
context:
space:
mode:
authorbaude <bbaude@redhat.com>2020-05-01 12:57:41 -0500
committerbaude <bbaude@redhat.com>2020-05-05 12:24:33 -0500
commit25312bb5b4e2bd4e122703006fc85bbf080e5e7c (patch)
treef2728cef53f71fcf1c04ff76ab928770fc5c9e50 /cmd/podman/system/renumber.go
parent4a1331d0afd9a21ff9465916d4006ff7297ae07c (diff)
downloadpodman-25312bb5b4e2bd4e122703006fc85bbf080e5e7c.tar.gz
podman-25312bb5b4e2bd4e122703006fc85bbf080e5e7c.tar.bz2
podman-25312bb5b4e2bd4e122703006fc85bbf080e5e7c.zip
v2 system subcommand
add system df, info, load, renumber, and migrate Refactor for specialized libpod engines add the ability to prune images, volumes, containers, and pods Signed-off-by: baude <bbaude@redhat.com>
Diffstat (limited to 'cmd/podman/system/renumber.go')
-rw-r--r--cmd/podman/system/renumber.go57
1 files changed, 57 insertions, 0 deletions
diff --git a/cmd/podman/system/renumber.go b/cmd/podman/system/renumber.go
new file mode 100644
index 000000000..5ee6b3be6
--- /dev/null
+++ b/cmd/podman/system/renumber.go
@@ -0,0 +1,57 @@
+package system
+
+import (
+ "fmt"
+ "os"
+
+ "github.com/containers/libpod/cmd/podman/registry"
+ "github.com/containers/libpod/cmd/podman/validate"
+ "github.com/containers/libpod/pkg/domain/entities"
+ "github.com/containers/libpod/pkg/domain/infra"
+ "github.com/spf13/cobra"
+)
+
+var (
+ renumberDescription = `
+ podman system renumber
+
+ Migrate lock numbers to handle a change in maximum number of locks.
+ Mandatory after the number of locks in libpod.conf is changed.
+`
+
+ renumberCommand = &cobra.Command{
+ Use: "renumber",
+ Args: validate.NoArgs,
+ Short: "Migrate lock numbers",
+ Long: renumberDescription,
+ Run: renumber,
+ }
+)
+
+func init() {
+ registry.Commands = append(registry.Commands, registry.CliCommand{
+ Mode: []entities.EngineMode{entities.ABIMode},
+ Command: renumberCommand,
+ Parent: systemCmd,
+ })
+
+}
+func renumber(cmd *cobra.Command, args []string) {
+ // Shutdown all running engines, `renumber` will hijack all methods
+ registry.ContainerEngine().Shutdown(registry.Context())
+ registry.ImageEngine().Shutdown(registry.Context())
+
+ engine, err := infra.NewSystemEngine(entities.RenumberMode, registry.PodmanConfig())
+ if err != nil {
+ fmt.Println(err)
+ os.Exit(125)
+ }
+ defer engine.Shutdown(registry.Context())
+
+ err = engine.Renumber(registry.Context(), cmd.Flags(), registry.PodmanConfig())
+ if err != nil {
+ fmt.Println(err)
+ os.Exit(125)
+ }
+ os.Exit(0)
+}