From 3f265e91f4f57758407cc219804678df6250ebc6 Mon Sep 17 00:00:00 2001 From: Daniel J Walsh Date: Wed, 21 Oct 2020 05:59:51 -0400 Subject: Fix handling and documentation of podman wait --interval In older versions of podman, we supported decimal numbers defaulting to microseconds. This PR fixes to allow users to continue to specify only digits. Also cleaned up documentation to fully describe what input for --interval flag. Finally improved testing on podman wait to actually make sure the command succeeded. Fixed tests to work on podman-remote. Signed-off-by: Daniel J Walsh --- cmd/podman/containers/wait.go | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'cmd/podman') diff --git a/cmd/podman/containers/wait.go b/cmd/podman/containers/wait.go index 4bc3d20e2..7ecc72a40 100644 --- a/cmd/podman/containers/wait.go +++ b/cmd/podman/containers/wait.go @@ -23,7 +23,7 @@ var ( Short: "Block on one or more containers", Long: waitDescription, RunE: wait, - Example: `podman wait --interval 5000 ctrID + Example: `podman wait --interval 5s ctrID podman wait ctrID1 ctrID2`, } @@ -32,7 +32,7 @@ var ( Short: waitCommand.Short, Long: waitCommand.Long, RunE: waitCommand.RunE, - Example: `podman container wait --interval 5000 ctrID + Example: `podman container wait --interval 5s ctrID podman container wait ctrID1 ctrID2`, } ) @@ -40,10 +40,11 @@ var ( var ( waitOptions = entities.WaitOptions{} waitCondition string + waitInterval string ) func waitFlags(flags *pflag.FlagSet) { - flags.DurationVarP(&waitOptions.Interval, "interval", "i", time.Duration(250), "Milliseconds to wait before polling for completion") + flags.StringVarP(&waitInterval, "interval", "i", "250ns", "Time Interval to wait before polling for completion") flags.StringVar(&waitCondition, "condition", "stopped", "Condition to wait on") } @@ -70,8 +71,11 @@ func wait(cmd *cobra.Command, args []string) error { err error errs utils.OutputErrors ) - if waitOptions.Interval == 0 { - return errors.New("interval must be greater then 0") + if waitOptions.Interval, err = time.ParseDuration(waitInterval); err != nil { + var err1 error + if waitOptions.Interval, err1 = time.ParseDuration(waitInterval + "ms"); err1 != nil { + return err + } } if !waitOptions.Latest && len(args) == 0 { -- cgit v1.2.3-54-g00ecf