mirror of https://github.com/containers/podman.git
Merge pull request #14272 from Luap99/completion2
shell completion: use more constants in the code
This commit is contained in:
commit
1916fe22a9
|
@ -12,6 +12,7 @@ import (
|
||||||
"github.com/containers/image/v5/pkg/sysregistriesv2"
|
"github.com/containers/image/v5/pkg/sysregistriesv2"
|
||||||
"github.com/containers/podman/v4/cmd/podman/registry"
|
"github.com/containers/podman/v4/cmd/podman/registry"
|
||||||
"github.com/containers/podman/v4/libpod/define"
|
"github.com/containers/podman/v4/libpod/define"
|
||||||
|
"github.com/containers/podman/v4/libpod/events"
|
||||||
"github.com/containers/podman/v4/pkg/domain/entities"
|
"github.com/containers/podman/v4/pkg/domain/entities"
|
||||||
"github.com/containers/podman/v4/pkg/rootless"
|
"github.com/containers/podman/v4/pkg/rootless"
|
||||||
systemdDefine "github.com/containers/podman/v4/pkg/systemd/define"
|
systemdDefine "github.com/containers/podman/v4/pkg/systemd/define"
|
||||||
|
@ -24,6 +25,8 @@ var (
|
||||||
ChangeCmds = []string{"CMD", "ENTRYPOINT", "ENV", "EXPOSE", "LABEL", "ONBUILD", "STOPSIGNAL", "USER", "VOLUME", "WORKDIR"}
|
ChangeCmds = []string{"CMD", "ENTRYPOINT", "ENV", "EXPOSE", "LABEL", "ONBUILD", "STOPSIGNAL", "USER", "VOLUME", "WORKDIR"}
|
||||||
// LogLevels supported by podman
|
// LogLevels supported by podman
|
||||||
LogLevels = []string{"trace", "debug", "info", "warn", "warning", "error", "fatal", "panic"}
|
LogLevels = []string{"trace", "debug", "info", "warn", "warning", "error", "fatal", "panic"}
|
||||||
|
// ValidSaveFormats is the list of support podman save formats
|
||||||
|
ValidSaveFormats = []string{define.OCIManifestDir, define.OCIArchive, define.V2s2ManifestDir, define.V2s2Archive}
|
||||||
)
|
)
|
||||||
|
|
||||||
type completeType int
|
type completeType int
|
||||||
|
@ -1091,11 +1094,21 @@ func getMethodNames(f reflect.Value, prefix string) []string {
|
||||||
// AutocompleteEventFilter - Autocomplete event filter flag options.
|
// AutocompleteEventFilter - Autocomplete event filter flag options.
|
||||||
// -> "container=", "event=", "image=", "pod=", "volume=", "type="
|
// -> "container=", "event=", "image=", "pod=", "volume=", "type="
|
||||||
func AutocompleteEventFilter(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
|
func AutocompleteEventFilter(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
|
||||||
|
event := func(_ string) ([]string, cobra.ShellCompDirective) {
|
||||||
|
return []string{events.Attach.String(), events.AutoUpdate.String(), events.Checkpoint.String(), events.Cleanup.String(),
|
||||||
|
events.Commit.String(), events.Create.String(), events.Exec.String(), events.ExecDied.String(),
|
||||||
|
events.Exited.String(), events.Export.String(), events.Import.String(), events.Init.String(), events.Kill.String(),
|
||||||
|
events.LoadFromArchive.String(), events.Mount.String(), events.NetworkConnect.String(),
|
||||||
|
events.NetworkDisconnect.String(), events.Pause.String(), events.Prune.String(), events.Pull.String(),
|
||||||
|
events.Push.String(), events.Refresh.String(), events.Remove.String(), events.Rename.String(),
|
||||||
|
events.Renumber.String(), events.Restart.String(), events.Restore.String(), events.Save.String(),
|
||||||
|
events.Start.String(), events.Stop.String(), events.Sync.String(), events.Tag.String(), events.Unmount.String(),
|
||||||
|
events.Unpause.String(), events.Untag.String(),
|
||||||
|
}, cobra.ShellCompDirectiveNoFileComp
|
||||||
|
}
|
||||||
eventTypes := func(_ string) ([]string, cobra.ShellCompDirective) {
|
eventTypes := func(_ string) ([]string, cobra.ShellCompDirective) {
|
||||||
return []string{"attach", "checkpoint", "cleanup", "commit", "connect", "create", "disconnect", "exec",
|
return []string{events.Container.String(), events.Image.String(), events.Network.String(),
|
||||||
"exec_died", "exited", "export", "import", "init", "kill", "loadFromArchive", "mount", "pause",
|
events.Pod.String(), events.System.String(), events.Volume.String(),
|
||||||
"prune", "pull", "push", "refresh", "remove", "rename", "renumber", "restart", "restore", "save",
|
|
||||||
"start", "stop", "sync", "tag", "unmount", "unpause", "untag",
|
|
||||||
}, cobra.ShellCompDirectiveNoFileComp
|
}, cobra.ShellCompDirectiveNoFileComp
|
||||||
}
|
}
|
||||||
kv := keyValueCompletion{
|
kv := keyValueCompletion{
|
||||||
|
@ -1103,7 +1116,7 @@ func AutocompleteEventFilter(cmd *cobra.Command, args []string, toComplete strin
|
||||||
"image=": func(s string) ([]string, cobra.ShellCompDirective) { return getImages(cmd, s) },
|
"image=": func(s string) ([]string, cobra.ShellCompDirective) { return getImages(cmd, s) },
|
||||||
"pod=": func(s string) ([]string, cobra.ShellCompDirective) { return getPods(cmd, s, completeDefault) },
|
"pod=": func(s string) ([]string, cobra.ShellCompDirective) { return getPods(cmd, s, completeDefault) },
|
||||||
"volume=": func(s string) ([]string, cobra.ShellCompDirective) { return getVolumes(cmd, s) },
|
"volume=": func(s string) ([]string, cobra.ShellCompDirective) { return getVolumes(cmd, s) },
|
||||||
"event=": eventTypes,
|
"event=": event,
|
||||||
"type=": eventTypes,
|
"type=": eventTypes,
|
||||||
}
|
}
|
||||||
return completeKeyValues(toComplete, kv)
|
return completeKeyValues(toComplete, kv)
|
||||||
|
@ -1130,9 +1143,8 @@ func AutocompleteImageSort(cmd *cobra.Command, args []string, toComplete string)
|
||||||
}
|
}
|
||||||
|
|
||||||
// AutocompleteInspectType - Autocomplete inspect type options.
|
// AutocompleteInspectType - Autocomplete inspect type options.
|
||||||
// -> "container", "image", "all"
|
|
||||||
func AutocompleteInspectType(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
|
func AutocompleteInspectType(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
|
||||||
types := []string{"container", "image", "all"}
|
types := []string{AllType, ContainerType, ImageType, NetworkType, PodType, VolumeType}
|
||||||
return types, cobra.ShellCompDirectiveNoFileComp
|
return types, cobra.ShellCompDirectiveNoFileComp
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1182,10 +1194,8 @@ func AutocompletePsSort(cmd *cobra.Command, args []string, toComplete string) ([
|
||||||
}
|
}
|
||||||
|
|
||||||
// AutocompleteImageSaveFormat - Autocomplete image save format options.
|
// AutocompleteImageSaveFormat - Autocomplete image save format options.
|
||||||
// -> "oci-archive", "oci-dir", "docker-dir"
|
|
||||||
func AutocompleteImageSaveFormat(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
|
func AutocompleteImageSaveFormat(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
|
||||||
formats := []string{"oci-archive", "oci-dir", "docker-dir"}
|
return ValidSaveFormats, cobra.ShellCompDirectiveNoFileComp
|
||||||
return formats, cobra.ShellCompDirectiveNoFileComp
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// AutocompleteWaitCondition - Autocomplete wait condition options.
|
// AutocompleteWaitCondition - Autocomplete wait condition options.
|
||||||
|
@ -1198,21 +1208,21 @@ func AutocompleteWaitCondition(cmd *cobra.Command, args []string, toComplete str
|
||||||
// AutocompleteCgroupManager - Autocomplete cgroup manager options.
|
// AutocompleteCgroupManager - Autocomplete cgroup manager options.
|
||||||
// -> "cgroupfs", "systemd"
|
// -> "cgroupfs", "systemd"
|
||||||
func AutocompleteCgroupManager(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
|
func AutocompleteCgroupManager(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
|
||||||
types := []string{"cgroupfs", "systemd"}
|
types := []string{config.CgroupfsCgroupsManager, config.SystemdCgroupsManager}
|
||||||
return types, cobra.ShellCompDirectiveNoFileComp
|
return types, cobra.ShellCompDirectiveNoFileComp
|
||||||
}
|
}
|
||||||
|
|
||||||
// AutocompleteEventBackend - Autocomplete event backend options.
|
// AutocompleteEventBackend - Autocomplete event backend options.
|
||||||
// -> "file", "journald", "none"
|
// -> "file", "journald", "none"
|
||||||
func AutocompleteEventBackend(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
|
func AutocompleteEventBackend(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
|
||||||
types := []string{"file", "journald", "none"}
|
types := []string{events.LogFile.String(), events.Journald.String(), events.Null.String()}
|
||||||
return types, cobra.ShellCompDirectiveNoFileComp
|
return types, cobra.ShellCompDirectiveNoFileComp
|
||||||
}
|
}
|
||||||
|
|
||||||
// AutocompleteNetworkBackend - Autocomplete network backend options.
|
// AutocompleteNetworkBackend - Autocomplete network backend options.
|
||||||
// -> "cni", "netavark"
|
// -> "cni", "netavark"
|
||||||
func AutocompleteNetworkBackend(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
|
func AutocompleteNetworkBackend(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
|
||||||
types := []string{"cni", "netavark"}
|
types := []string{string(types.CNI), string(types.Netavark)}
|
||||||
return types, cobra.ShellCompDirectiveNoFileComp
|
return types, cobra.ShellCompDirectiveNoFileComp
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1225,7 +1235,7 @@ func AutocompleteLogLevel(cmd *cobra.Command, args []string, toComplete string)
|
||||||
// AutocompleteSDNotify - Autocomplete sdnotify options.
|
// AutocompleteSDNotify - Autocomplete sdnotify options.
|
||||||
// -> "container", "conmon", "ignore"
|
// -> "container", "conmon", "ignore"
|
||||||
func AutocompleteSDNotify(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
|
func AutocompleteSDNotify(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
|
||||||
types := []string{"container", "conmon", "ignore"}
|
types := []string{define.SdNotifyModeContainer, define.SdNotifyModeContainer, define.SdNotifyModeIgnore}
|
||||||
return types, cobra.ShellCompDirectiveNoFileComp
|
return types, cobra.ShellCompDirectiveNoFileComp
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
package common
|
||||||
|
|
||||||
|
const (
|
||||||
|
// AllType can be of type ImageType or ContainerType.
|
||||||
|
AllType = "all"
|
||||||
|
// ContainerType is the container type.
|
||||||
|
ContainerType = "container"
|
||||||
|
// ImageType is the image type.
|
||||||
|
ImageType = "image"
|
||||||
|
// NetworkType is the network type
|
||||||
|
NetworkType = "network"
|
||||||
|
// PodType is the pod type.
|
||||||
|
PodType = "pod"
|
||||||
|
// VolumeType is the volume type
|
||||||
|
VolumeType = "volume"
|
||||||
|
)
|
|
@ -42,6 +42,6 @@ func init() {
|
||||||
|
|
||||||
func inspectExec(cmd *cobra.Command, args []string) error {
|
func inspectExec(cmd *cobra.Command, args []string) error {
|
||||||
// Force container type
|
// Force container type
|
||||||
inspectOpts.Type = inspect.ContainerType
|
inspectOpts.Type = common.ContainerType
|
||||||
return inspect.Inspect(args, *inspectOpts)
|
return inspect.Inspect(args, *inspectOpts)
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,6 +38,6 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
func inspectExec(cmd *cobra.Command, args []string) error {
|
func inspectExec(cmd *cobra.Command, args []string) error {
|
||||||
inspectOpts.Type = inspect.ImageType
|
inspectOpts.Type = common.ImageType
|
||||||
return inspect.Inspect(args, *inspectOpts)
|
return inspect.Inspect(args, *inspectOpts)
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,6 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
validFormats = []string{define.OCIManifestDir, define.OCIArchive, define.V2s2ManifestDir, define.V2s2Archive}
|
|
||||||
containerConfig = registry.PodmanConfig()
|
containerConfig = registry.PodmanConfig()
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -38,8 +37,8 @@ var (
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if !util.StringInSlice(format, validFormats) {
|
if !util.StringInSlice(format, common.ValidSaveFormats) {
|
||||||
return errors.Errorf("format value must be one of %s", strings.Join(validFormats, " "))
|
return errors.Errorf("format value must be one of %s", strings.Join(common.ValidSaveFormats, " "))
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
},
|
},
|
||||||
|
|
|
@ -21,21 +21,6 @@ import (
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
|
||||||
// AllType can be of type ImageType or ContainerType.
|
|
||||||
AllType = "all"
|
|
||||||
// ContainerType is the container type.
|
|
||||||
ContainerType = "container"
|
|
||||||
// ImageType is the image type.
|
|
||||||
ImageType = "image"
|
|
||||||
// NetworkType is the network type
|
|
||||||
NetworkType = "network"
|
|
||||||
// PodType is the pod type.
|
|
||||||
PodType = "pod"
|
|
||||||
// VolumeType is the volume type
|
|
||||||
VolumeType = "volume"
|
|
||||||
)
|
|
||||||
|
|
||||||
// AddInspectFlagSet takes a command and adds the inspect flags and returns an
|
// AddInspectFlagSet takes a command and adds the inspect flags and returns an
|
||||||
// InspectOptions object.
|
// InspectOptions object.
|
||||||
func AddInspectFlagSet(cmd *cobra.Command) *entities.InspectOptions {
|
func AddInspectFlagSet(cmd *cobra.Command) *entities.InspectOptions {
|
||||||
|
@ -49,7 +34,7 @@ func AddInspectFlagSet(cmd *cobra.Command) *entities.InspectOptions {
|
||||||
_ = cmd.RegisterFlagCompletionFunc(formatFlagName, completion.AutocompleteNone)
|
_ = cmd.RegisterFlagCompletionFunc(formatFlagName, completion.AutocompleteNone)
|
||||||
|
|
||||||
typeFlagName := "type"
|
typeFlagName := "type"
|
||||||
flags.StringVarP(&opts.Type, typeFlagName, "t", AllType, fmt.Sprintf("Specify inspect-object type (%q, %q or %q)", ImageType, ContainerType, AllType))
|
flags.StringVarP(&opts.Type, typeFlagName, "t", common.AllType, "Specify inspect-object type")
|
||||||
_ = cmd.RegisterFlagCompletionFunc(typeFlagName, common.AutocompleteInspectType)
|
_ = cmd.RegisterFlagCompletionFunc(typeFlagName, common.AutocompleteInspectType)
|
||||||
|
|
||||||
validate.AddLatestFlag(cmd, &opts.Latest)
|
validate.AddLatestFlag(cmd, &opts.Latest)
|
||||||
|
@ -76,21 +61,22 @@ type inspector struct {
|
||||||
// newInspector creates a new inspector based on the specified options.
|
// newInspector creates a new inspector based on the specified options.
|
||||||
func newInspector(options entities.InspectOptions) (*inspector, error) {
|
func newInspector(options entities.InspectOptions) (*inspector, error) {
|
||||||
switch options.Type {
|
switch options.Type {
|
||||||
case ImageType, ContainerType, AllType, PodType, NetworkType, VolumeType:
|
case common.ImageType, common.ContainerType, common.AllType, common.PodType, common.NetworkType, common.VolumeType:
|
||||||
// Valid types.
|
// Valid types.
|
||||||
default:
|
default:
|
||||||
return nil, errors.Errorf("invalid type %q: must be %q, %q, %q, %q, %q, or %q", options.Type, ImageType, ContainerType, PodType, NetworkType, VolumeType, AllType)
|
return nil, errors.Errorf("invalid type %q: must be %q, %q, %q, %q, %q, or %q", options.Type,
|
||||||
|
common.ImageType, common.ContainerType, common.PodType, common.NetworkType, common.VolumeType, common.AllType)
|
||||||
}
|
}
|
||||||
if options.Type == ImageType {
|
if options.Type == common.ImageType {
|
||||||
if options.Latest {
|
if options.Latest {
|
||||||
return nil, errors.Errorf("latest is not supported for type %q", ImageType)
|
return nil, errors.Errorf("latest is not supported for type %q", common.ImageType)
|
||||||
}
|
}
|
||||||
if options.Size {
|
if options.Size {
|
||||||
return nil, errors.Errorf("size is not supported for type %q", ImageType)
|
return nil, errors.Errorf("size is not supported for type %q", common.ImageType)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if options.Type == PodType && options.Size {
|
if options.Type == common.PodType && options.Size {
|
||||||
return nil, errors.Errorf("size is not supported for type %q", PodType)
|
return nil, errors.Errorf("size is not supported for type %q", common.PodType)
|
||||||
}
|
}
|
||||||
podOpts := entities.PodInspectOptions{
|
podOpts := entities.PodInspectOptions{
|
||||||
Latest: options.Latest,
|
Latest: options.Latest,
|
||||||
|
@ -122,21 +108,21 @@ func (i *inspector) inspect(namesOrIDs []string) error {
|
||||||
if len(namesOrIDs) > 0 {
|
if len(namesOrIDs) > 0 {
|
||||||
return errors.New("--latest and arguments cannot be used together")
|
return errors.New("--latest and arguments cannot be used together")
|
||||||
}
|
}
|
||||||
if i.options.Type == AllType {
|
if i.options.Type == common.AllType {
|
||||||
tmpType = ContainerType // -l works with --type=all, defaults to containertype
|
tmpType = common.ContainerType // -l works with --type=all, defaults to containertype
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect - note that AllType requires us to expensively query one-by-one.
|
// Inspect - note that AllType requires us to expensively query one-by-one.
|
||||||
switch tmpType {
|
switch tmpType {
|
||||||
case AllType:
|
case common.AllType:
|
||||||
allData, allErrs, err := i.inspectAll(ctx, namesOrIDs)
|
allData, allErrs, err := i.inspectAll(ctx, namesOrIDs)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
data = allData
|
data = allData
|
||||||
errs = allErrs
|
errs = allErrs
|
||||||
case ImageType:
|
case common.ImageType:
|
||||||
imgData, allErrs, err := i.imageEngine.Inspect(ctx, namesOrIDs, i.options)
|
imgData, allErrs, err := i.imageEngine.Inspect(ctx, namesOrIDs, i.options)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -145,7 +131,7 @@ func (i *inspector) inspect(namesOrIDs []string) error {
|
||||||
for i := range imgData {
|
for i := range imgData {
|
||||||
data = append(data, imgData[i])
|
data = append(data, imgData[i])
|
||||||
}
|
}
|
||||||
case ContainerType:
|
case common.ContainerType:
|
||||||
ctrData, allErrs, err := i.containerEngine.ContainerInspect(ctx, namesOrIDs, i.options)
|
ctrData, allErrs, err := i.containerEngine.ContainerInspect(ctx, namesOrIDs, i.options)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -154,7 +140,7 @@ func (i *inspector) inspect(namesOrIDs []string) error {
|
||||||
for i := range ctrData {
|
for i := range ctrData {
|
||||||
data = append(data, ctrData[i])
|
data = append(data, ctrData[i])
|
||||||
}
|
}
|
||||||
case PodType:
|
case common.PodType:
|
||||||
for _, pod := range namesOrIDs {
|
for _, pod := range namesOrIDs {
|
||||||
i.podOptions.NameOrID = pod
|
i.podOptions.NameOrID = pod
|
||||||
podData, err := i.containerEngine.PodInspect(ctx, i.podOptions)
|
podData, err := i.containerEngine.PodInspect(ctx, i.podOptions)
|
||||||
|
@ -184,7 +170,7 @@ func (i *inspector) inspect(namesOrIDs []string) error {
|
||||||
data = append(data, podData)
|
data = append(data, podData)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case NetworkType:
|
case common.NetworkType:
|
||||||
networkData, allErrs, err := registry.ContainerEngine().NetworkInspect(ctx, namesOrIDs, i.options)
|
networkData, allErrs, err := registry.ContainerEngine().NetworkInspect(ctx, namesOrIDs, i.options)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -193,7 +179,7 @@ func (i *inspector) inspect(namesOrIDs []string) error {
|
||||||
for i := range networkData {
|
for i := range networkData {
|
||||||
data = append(data, networkData[i])
|
data = append(data, networkData[i])
|
||||||
}
|
}
|
||||||
case VolumeType:
|
case common.VolumeType:
|
||||||
volumeData, allErrs, err := i.containerEngine.VolumeInspect(ctx, namesOrIDs, i.options)
|
volumeData, allErrs, err := i.containerEngine.VolumeInspect(ctx, namesOrIDs, i.options)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -203,7 +189,8 @@ func (i *inspector) inspect(namesOrIDs []string) error {
|
||||||
data = append(data, volumeData[i])
|
data = append(data, volumeData[i])
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
return errors.Errorf("invalid type %q: must be %q, %q, %q, %q, %q, or %q", i.options.Type, ImageType, ContainerType, PodType, NetworkType, VolumeType, AllType)
|
return errors.Errorf("invalid type %q: must be %q, %q, %q, %q, %q, or %q", i.options.Type,
|
||||||
|
common.ImageType, common.ContainerType, common.PodType, common.NetworkType, common.VolumeType, common.AllType)
|
||||||
}
|
}
|
||||||
// Always print an empty array
|
// Always print an empty array
|
||||||
if data == nil {
|
if data == nil {
|
||||||
|
|
|
@ -37,6 +37,6 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
func networkInspect(_ *cobra.Command, args []string) error {
|
func networkInspect(_ *cobra.Command, args []string) error {
|
||||||
inspectOpts.Type = inspect.NetworkType
|
inspectOpts.Type = common.NetworkType
|
||||||
return inspect.Inspect(args, *inspectOpts)
|
return inspect.Inspect(args, *inspectOpts)
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,6 @@ import (
|
||||||
|
|
||||||
"github.com/containers/common/pkg/completion"
|
"github.com/containers/common/pkg/completion"
|
||||||
"github.com/containers/podman/v4/cmd/podman/common"
|
"github.com/containers/podman/v4/cmd/podman/common"
|
||||||
"github.com/containers/podman/v4/cmd/podman/inspect"
|
|
||||||
"github.com/containers/podman/v4/cmd/podman/registry"
|
"github.com/containers/podman/v4/cmd/podman/registry"
|
||||||
"github.com/containers/podman/v4/pkg/domain/entities"
|
"github.com/containers/podman/v4/pkg/domain/entities"
|
||||||
"github.com/containers/podman/v4/utils"
|
"github.com/containers/podman/v4/utils"
|
||||||
|
@ -58,7 +57,7 @@ func export(cmd *cobra.Command, args []string) error {
|
||||||
if cliExportOpts.Output == "" {
|
if cliExportOpts.Output == "" {
|
||||||
return errors.New("expects output path, use --output=[path]")
|
return errors.New("expects output path, use --output=[path]")
|
||||||
}
|
}
|
||||||
inspectOpts.Type = inspect.VolumeType
|
inspectOpts.Type = common.VolumeType
|
||||||
volumeData, _, err := containerEngine.VolumeInspect(ctx, args, inspectOpts)
|
volumeData, _, err := containerEngine.VolumeInspect(ctx, args, inspectOpts)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
|
@ -5,7 +5,6 @@ import (
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"github.com/containers/podman/v4/cmd/podman/common"
|
"github.com/containers/podman/v4/cmd/podman/common"
|
||||||
"github.com/containers/podman/v4/cmd/podman/inspect"
|
|
||||||
"github.com/containers/podman/v4/cmd/podman/parse"
|
"github.com/containers/podman/v4/cmd/podman/parse"
|
||||||
"github.com/containers/podman/v4/cmd/podman/registry"
|
"github.com/containers/podman/v4/cmd/podman/registry"
|
||||||
"github.com/containers/podman/v4/pkg/domain/entities"
|
"github.com/containers/podman/v4/pkg/domain/entities"
|
||||||
|
@ -60,7 +59,7 @@ func importVol(cmd *cobra.Command, args []string) error {
|
||||||
tarFile = os.Stdin
|
tarFile = os.Stdin
|
||||||
}
|
}
|
||||||
|
|
||||||
inspectOpts.Type = inspect.VolumeType
|
inspectOpts.Type = common.VolumeType
|
||||||
volumeData, _, err := containerEngine.VolumeInspect(ctx, volumes, inspectOpts)
|
volumeData, _, err := containerEngine.VolumeInspect(ctx, volumes, inspectOpts)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
|
@ -48,6 +48,6 @@ func volumeInspect(cmd *cobra.Command, args []string) error {
|
||||||
if (inspectOpts.All && len(args) > 0) || (!inspectOpts.All && len(args) < 1) {
|
if (inspectOpts.All && len(args) > 0) || (!inspectOpts.All && len(args) < 1) {
|
||||||
return errors.New("provide one or more volume names or use --all")
|
return errors.New("provide one or more volume names or use --all")
|
||||||
}
|
}
|
||||||
inspectOpts.Type = inspect.VolumeType
|
inspectOpts.Type = common.VolumeType
|
||||||
return inspect.Inspect(args, *inspectOpts)
|
return inspect.Inspect(args, *inspectOpts)
|
||||||
}
|
}
|
||||||
|
|
|
@ -98,6 +98,8 @@ type Type string
|
||||||
// Status describes the actual event action (stop, start, create, kill)
|
// Status describes the actual event action (stop, start, create, kill)
|
||||||
type Status string
|
type Status string
|
||||||
|
|
||||||
|
// When updating this list below please also update the shell completion list in
|
||||||
|
// cmd/podman/common/completion.go and the StringToXXX function in events.go.
|
||||||
const (
|
const (
|
||||||
// Container - event is related to containers
|
// Container - event is related to containers
|
||||||
Container Type = "container"
|
Container Type = "container"
|
||||||
|
|
Loading…
Reference in New Issue