Show usage when docker swarm update
has no flags
This fix tries to address the issue raised in 24352. Previously, when `docker swarm update` has no flags, the output is ``` Swarm updated. ``` even though nothing was updated. This could be misleading for users. This fix tries to address the issue by adding a `PreRunE` function in the command so that in case no flag is provided (`cmd.Flags().NFlag() == 0`), the usage will be outputed instead. An integration has been added to cover the changes. This fix fixes 24352. Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
This commit is contained in:
parent
1bc942597d
commit
5aa5a1cb00
2 changed files with 24 additions and 0 deletions
|
@ -23,6 +23,12 @@ func newUpdateCommand(dockerCli *command.DockerCli) *cobra.Command {
|
|||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
return runUpdate(dockerCli, cmd.Flags(), opts)
|
||||
},
|
||||
PreRunE: func(cmd *cobra.Command, args []string) error {
|
||||
if cmd.Flags().NFlag() == 0 {
|
||||
return pflag.ErrHelp
|
||||
}
|
||||
return nil
|
||||
},
|
||||
}
|
||||
|
||||
cmd.Flags().BoolVar(&opts.autolock, flagAutolock, false, "Change manager autolocking setting (true|false)")
|
||||
|
|
|
@ -1358,3 +1358,21 @@ func (s *DockerSwarmSuite) TestSwarmNetworkIPAMOptions(c *check.C) {
|
|||
c.Assert(err, checker.IsNil, check.Commentf(out))
|
||||
c.Assert(strings.TrimSpace(out), checker.Equals, "map[foo:bar]")
|
||||
}
|
||||
|
||||
// TODO: migrate to a unit test
|
||||
// This test could be migrated to unit test and save costly integration test,
|
||||
// once PR #29143 is merged.
|
||||
func (s *DockerSwarmSuite) TestSwarmUpdateWithoutArgs(c *check.C) {
|
||||
d := s.AddDaemon(c, true, true)
|
||||
|
||||
expectedOutput := `
|
||||
Usage: docker swarm update [OPTIONS]
|
||||
|
||||
Update the swarm
|
||||
|
||||
Options:`
|
||||
|
||||
out, err := d.Cmd("swarm", "update")
|
||||
c.Assert(err, checker.IsNil, check.Commentf("out: %v", out))
|
||||
c.Assert(out, checker.Contains, expectedOutput, check.Commentf(out))
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue