mirror of
https://github.com/containers/podman.git
synced 2025-12-08 06:39:05 +08:00
@@ -548,3 +548,7 @@ type SystemPruneValues struct {
|
||||
Force bool
|
||||
Volume bool
|
||||
}
|
||||
|
||||
type SystemRenumberValues struct {
|
||||
PodmanCommand
|
||||
}
|
||||
|
||||
@@ -131,5 +131,6 @@ func getTrustSubCommands() []*cobra.Command {
|
||||
func getSystemSubCommands() []*cobra.Command {
|
||||
return []*cobra.Command{
|
||||
_pruneSystemCommand,
|
||||
_renumberCommand,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,8 +8,17 @@ import (
|
||||
"github.com/pkg/errors"
|
||||
)
|
||||
|
||||
// GetRuntimeRenumber gets a libpod runtime that will perform a lock renumber
|
||||
func GetRuntimeRenumber(c *cliconfig.PodmanCommand) (*libpod.Runtime, error) {
|
||||
return getRuntime(c, true)
|
||||
}
|
||||
|
||||
// GetRuntime generates a new libpod runtime configured by command line options
|
||||
func GetRuntime(c *cliconfig.PodmanCommand) (*libpod.Runtime, error) {
|
||||
return getRuntime(c, false)
|
||||
}
|
||||
|
||||
func getRuntime(c *cliconfig.PodmanCommand, renumber bool) (*libpod.Runtime, error) {
|
||||
options := []libpod.RuntimeOption{}
|
||||
|
||||
storageOpts, volumePath, err := util.GetDefaultStoreOptions()
|
||||
|
||||
49
cmd/podman/system_renumber.go
Normal file
49
cmd/podman/system_renumber.go
Normal file
@@ -0,0 +1,49 @@
|
||||
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.
|
||||
Mandatory after the number of locks in libpod.conf is changed.
|
||||
`
|
||||
|
||||
_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 a renumber.
|
||||
// That's controlled by the last argument to GetRuntime.
|
||||
r, err := libpodruntime.GetRuntimeRenumber(&c.PodmanCommand)
|
||||
if err != nil {
|
||||
return errors.Wrapf(err, "error renumbering locks")
|
||||
}
|
||||
if err := r.Shutdown(false); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user