aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Heon <matthew.heon@pm.me>2019-02-18 10:07:31 -0500
committerMatthew Heon <matthew.heon@pm.me>2019-02-21 10:51:42 -0500
commite0a6873d78be969a50a1939f52c81264b9547ac0 (patch)
tree579786d1f4ce7ef9a5d78f6b0fe6738b9f05bd3e
parent43db7734e8f66b55935b1e0416701e634dc47f8a (diff)
downloadpodman-e0a6873d78be969a50a1939f52c81264b9547ac0.tar.gz
podman-e0a6873d78be969a50a1939f52c81264b9547ac0.tar.bz2
podman-e0a6873d78be969a50a1939f52c81264b9547ac0.zip
Add podman system renumber command
This command allows for renumbering Podman locks after an upgrade to Podman with SHM locks from a 1.0 or earlier branch, or after the number of locks was changed. Signed-off-by: Matthew Heon <matthew.heon@pm.me>
-rw-r--r--cmd/podman/cliconfig/config.go4
-rw-r--r--cmd/podman/commands.go1
-rw-r--r--cmd/podman/system_renumber.go44
3 files changed, 49 insertions, 0 deletions
diff --git a/cmd/podman/cliconfig/config.go b/cmd/podman/cliconfig/config.go
index ca788529c..a9032202f 100644
--- a/cmd/podman/cliconfig/config.go
+++ b/cmd/podman/cliconfig/config.go
@@ -548,3 +548,7 @@ type SystemPruneValues struct {
Force bool
Volume bool
}
+
+type SystemRenumberValues struct {
+ PodmanCommand
+}
diff --git a/cmd/podman/commands.go b/cmd/podman/commands.go
index 466ffa22f..0fc1b5a41 100644
--- a/cmd/podman/commands.go
+++ b/cmd/podman/commands.go
@@ -132,5 +132,6 @@ func getTrustSubCommands() []*cobra.Command {
func getSystemSubCommands() []*cobra.Command {
return []*cobra.Command{
_pruneSystemCommand,
+ _renumberCommand,
}
}
diff --git a/cmd/podman/system_renumber.go b/cmd/podman/system_renumber.go
new file mode 100644
index 000000000..7f9436d5d
--- /dev/null
+++ b/cmd/podman/system_renumber.go
@@ -0,0 +1,44 @@
+package main
+
+import (
+ "github.com/containers/libpod/cmd/podman/cliconfig"
+ "github.com/containers/libpod/cmd/podman/libpodruntime"
+ "github.com/pkg/errors"
+ "github.com/spf13/cobra"
+)
+
+var (
+ renumberCommand cliconfig.SystemRenumberValues
+ renumberDescription = `
+ podman system renumber
+
+ Migrate lock numbers to handle a change in maximum number of locks
+`
+
+ _renumberCommand = &cobra.Command{
+ Use: "renumber",
+ Short: "Migrate lock numbers",
+ Long: renumberDescription,
+ RunE: func(cmd *cobra.Command, args []string) error {
+ renumberCommand.InputArgs = args
+ renumberCommand.GlobalFlags = MainGlobalOpts
+ return renumberCmd(&renumberCommand)
+ },
+ }
+)
+
+func init() {
+ renumberCommand.Command = _renumberCommand
+ renumberCommand.SetUsageTemplate(UsageTemplate())
+}
+
+func renumberCmd(c *cliconfig.SystemRenumberValues) error {
+ // We need to pass one extra option to NewRuntime.
+ // This will inform the OCI runtime to start
+ _, err := libpodruntime.GetRuntimeRenumber(&c.PodmanCommand)
+ if err != nil {
+ return errors.Wrapf(err, "error renumbering locks")
+ }
+
+ return nil
+}