aboutsummaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
Diffstat (limited to 'cmd')
-rw-r--r--cmd/podman/common/completion.go4
-rw-r--r--cmd/podman/containers/mount.go3
-rw-r--r--cmd/podman/images/history.go3
-rw-r--r--cmd/podman/machine/init.go21
-rw-r--r--cmd/podman/machine/ssh.go29
-rw-r--r--cmd/podman/system/events.go5
-rw-r--r--cmd/podman/utils/alias.go2
7 files changed, 45 insertions, 22 deletions
diff --git a/cmd/podman/common/completion.go b/cmd/podman/common/completion.go
index 193f09e85..2ea5fa10f 100644
--- a/cmd/podman/common/completion.go
+++ b/cmd/podman/common/completion.go
@@ -1111,7 +1111,7 @@ func AutocompleteManifestFormat(cmd *cobra.Command, args []string, toComplete st
// AutocompleteNetworkDriver - Autocomplete network driver option.
// -> "bridge", "macvlan"
func AutocompleteNetworkDriver(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
- drivers := []string{types.BridgeNetworkDriver, types.MacVLANNetworkDriver}
+ drivers := []string{types.BridgeNetworkDriver, types.MacVLANNetworkDriver, types.IPVLANNetworkDriver}
return drivers, cobra.ShellCompDirectiveNoFileComp
}
@@ -1257,7 +1257,7 @@ func AutocompleteNetworkFilters(cmd *cobra.Command, args []string, toComplete st
"id=": func(s string) ([]string, cobra.ShellCompDirective) { return getNetworks(cmd, s, completeIDs) },
"label=": nil,
"driver=": func(_ string) ([]string, cobra.ShellCompDirective) {
- return []string{types.BridgeNetworkDriver, types.MacVLANNetworkDriver}, cobra.ShellCompDirectiveNoFileComp
+ return []string{types.BridgeNetworkDriver, types.MacVLANNetworkDriver, types.IPVLANNetworkDriver}, cobra.ShellCompDirectiveNoFileComp
},
"until=": nil,
}
diff --git a/cmd/podman/containers/mount.go b/cmd/podman/containers/mount.go
index 55f6a1c34..0397b456f 100644
--- a/cmd/podman/containers/mount.go
+++ b/cmd/podman/containers/mount.go
@@ -62,7 +62,8 @@ func mountFlags(cmd *cobra.Command) {
flags.StringVar(&mountOpts.Format, formatFlagName, "", "Print the mounted containers in specified format (json)")
_ = cmd.RegisterFlagCompletionFunc(formatFlagName, common.AutocompleteFormat(nil))
- flags.BoolVar(&mountOpts.NoTruncate, "notruncate", false, "Do not truncate output")
+ flags.BoolVar(&mountOpts.NoTruncate, "no-trunc", false, "Do not truncate output")
+ flags.SetNormalizeFunc(utils.AliasFlags)
}
func init() {
diff --git a/cmd/podman/images/history.go b/cmd/podman/images/history.go
index c065acfad..cc7b1b4eb 100644
--- a/cmd/podman/images/history.go
+++ b/cmd/podman/images/history.go
@@ -11,6 +11,7 @@ import (
"github.com/containers/common/pkg/report"
"github.com/containers/podman/v3/cmd/podman/common"
"github.com/containers/podman/v3/cmd/podman/registry"
+ "github.com/containers/podman/v3/cmd/podman/utils"
"github.com/containers/podman/v3/pkg/domain/entities"
"github.com/docker/go-units"
"github.com/pkg/errors"
@@ -73,8 +74,8 @@ func historyFlags(cmd *cobra.Command) {
flags.BoolVarP(&opts.human, "human", "H", true, "Display sizes and dates in human readable format")
flags.BoolVar(&opts.noTrunc, "no-trunc", false, "Do not truncate the output")
- flags.BoolVar(&opts.noTrunc, "notruncate", false, "Do not truncate the output")
flags.BoolVarP(&opts.quiet, "quiet", "q", false, "Display the numeric IDs only")
+ flags.SetNormalizeFunc(utils.AliasFlags)
}
func history(cmd *cobra.Command, args []string) error {
diff --git a/cmd/podman/machine/init.go b/cmd/podman/machine/init.go
index ec44a707d..19f31d1a6 100644
--- a/cmd/podman/machine/init.go
+++ b/cmd/podman/machine/init.go
@@ -3,6 +3,8 @@
package machine
import (
+ "fmt"
+
"github.com/containers/common/pkg/completion"
"github.com/containers/podman/v3/cmd/podman/registry"
"github.com/containers/podman/v3/pkg/machine"
@@ -26,6 +28,7 @@ var (
var (
initOpts = machine.InitOptions{}
defaultMachineName = "podman-machine-default"
+ now bool
)
func init() {
@@ -61,6 +64,12 @@ func init() {
)
_ = initCmd.RegisterFlagCompletionFunc(memoryFlagName, completion.AutocompleteNone)
+ flags.BoolVar(
+ &now,
+ "now", false,
+ "Start machine now",
+ )
+
ImagePathFlagName := "image-path"
flags.StringVar(&initOpts.ImagePath, ImagePathFlagName, cfg.Engine.MachineImage, "Path to qcow image")
_ = initCmd.RegisterFlagCompletionFunc(ImagePathFlagName, completion.AutocompleteDefault)
@@ -91,5 +100,15 @@ func initMachine(cmd *cobra.Command, args []string) error {
if err != nil {
return err
}
- return vm.Init(initOpts)
+ err = vm.Init(initOpts)
+ if err != nil {
+ return err
+ }
+ if now {
+ err = vm.Start(initOpts.Name, machine.StartOptions{})
+ if err == nil {
+ fmt.Printf("Machine %q started successfully\n", initOpts.Name)
+ }
+ }
+ return err
}
diff --git a/cmd/podman/machine/ssh.go b/cmd/podman/machine/ssh.go
index 84e9e88ab..da0a09338 100644
--- a/cmd/podman/machine/ssh.go
+++ b/cmd/podman/machine/ssh.go
@@ -5,6 +5,7 @@ package machine
import (
"net/url"
+ "github.com/containers/common/pkg/completion"
"github.com/containers/common/pkg/config"
"github.com/containers/podman/v3/cmd/podman/registry"
"github.com/containers/podman/v3/pkg/machine"
@@ -15,7 +16,7 @@ import (
var (
sshCmd = &cobra.Command{
- Use: "ssh [NAME] [COMMAND [ARG ...]]",
+ Use: "ssh [options] [NAME] [COMMAND [ARG ...]]",
Short: "SSH into an existing machine",
Long: "SSH into a managed virtual machine ",
RunE: ssh,
@@ -35,6 +36,10 @@ func init() {
Command: sshCmd,
Parent: machineCmd,
})
+ flags := sshCmd.Flags()
+ usernameFlagName := "username"
+ flags.StringVar(&sshOpts.Username, usernameFlagName, "", "Username to use when ssh-ing into the VM.")
+ _ = sshCmd.RegisterFlagCompletionFunc(usernameFlagName, completion.AutocompleteNone)
}
func ssh(cmd *cobra.Command, args []string) error {
@@ -48,13 +53,6 @@ func ssh(cmd *cobra.Command, args []string) error {
// Set the VM to default
vmName := defaultMachineName
- // If we're not given a VM name, use the remote username from the connection config
- if len(args) == 0 {
- sshOpts.Username, err = remoteConnectionUsername()
- if err != nil {
- return err
- }
- }
// If len is greater than 0, it means we may have been
// provided the VM name. If so, we check. The VM name,
// if provided, must be in args[0].
@@ -68,10 +66,6 @@ func ssh(cmd *cobra.Command, args []string) error {
if validVM {
vmName = args[0]
} else {
- sshOpts.Username, err = remoteConnectionUsername()
- if err != nil {
- return err
- }
sshOpts.Args = append(sshOpts.Args, args[0])
}
}
@@ -83,14 +77,17 @@ func ssh(cmd *cobra.Command, args []string) error {
if validVM {
sshOpts.Args = args[1:]
} else {
- sshOpts.Username, err = remoteConnectionUsername()
- if err != nil {
- return err
- }
sshOpts.Args = args
}
}
+ if !validVM && sshOpts.Username == "" {
+ sshOpts.Username, err = remoteConnectionUsername()
+ if err != nil {
+ return err
+ }
+ }
+
switch vmType {
default:
vm, err = qemu.LoadVMByName(vmName)
diff --git a/cmd/podman/system/events.go b/cmd/podman/system/events.go
index 677504cfc..e698e6652 100644
--- a/cmd/podman/system/events.go
+++ b/cmd/podman/system/events.go
@@ -36,6 +36,7 @@ var (
var (
eventOptions entities.EventsOptions
eventFormat string
+ noTrunc bool
)
func init() {
@@ -58,6 +59,8 @@ func init() {
flags.StringVar(&eventOptions.Since, sinceFlagName, "", "show all events created since timestamp")
_ = eventsCommand.RegisterFlagCompletionFunc(sinceFlagName, completion.AutocompleteNone)
+ flags.BoolVar(&noTrunc, "no-trunc", true, "do not truncate the output")
+
untilFlagName := "until"
flags.StringVar(&eventOptions.Until, untilFlagName, "", "show all events until timestamp")
_ = eventsCommand.RegisterFlagCompletionFunc(untilFlagName, completion.AutocompleteNone)
@@ -110,7 +113,7 @@ func eventsCmd(cmd *cobra.Command, _ []string) error {
}
fmt.Println("")
default:
- fmt.Println(event.ToHumanReadable())
+ fmt.Println(event.ToHumanReadable(!noTrunc))
}
}
diff --git a/cmd/podman/utils/alias.go b/cmd/podman/utils/alias.go
index 306e610d9..4d5b625d0 100644
--- a/cmd/podman/utils/alias.go
+++ b/cmd/podman/utils/alias.go
@@ -23,6 +23,8 @@ func AliasFlags(f *pflag.FlagSet, name string) pflag.NormalizedName {
name = "external"
case "purge":
name = "rm"
+ case "notruncate":
+ name = "no-trunc"
case "override-arch":
name = "arch"
case "override-os":