canonical / juju-verify

https://launchpad.net/juju-verify
GNU General Public License v3.0
2 stars 7 forks source link

juju-verify CLI does not allow optional parameters followed by positional args #142

Open esunar opened 2 years ago

esunar commented 2 years ago

juju-verify uses argparse to parse the allowed parameters.

The usage section mentions: """ usage: juju-verify [-h] [--model MODEL] [-l {trace,debug,info}] [-s] (--units UNITS [UNITS ...] | --machines MACHINES [MACHINES ...]) {shutdown,reboot} """

However, due to bug [1], the positional arguments ("{shutdown,reboot}") need to be passed at the beginning of the command.

Example: """

WRONG

$ juju verify -m foundations-maas:test-lma2-microk8s -u microk8s/5 reboot usage: juju-verify [-h] [--model MODEL] [-l {trace,debug,info}] [-s] (--units UNITS [UNITS ...] | --machines MACHINES [MACHINES ...]) {shutdown,reboot} juju-verify: error: the following arguments are required: check

CORRECT

$ juju verify reboot -m foundations-maas:test-lma2-microk8s -u microk8s/5 """

  1. https://bugs.python.org/issue9338

Imported from Launchpad using lp2gh.

esunar commented 2 years ago

(by aluria) Alternatively, the "--units" and "--machines" optional arguments (at least one param) should be turned into a single argument (e.g. "--units unit/0,unit/1,..." rather than "--units unit/0 unit/1 ...").

However, the comma-separated approach would be quite different to the one accepted by the juju core CLI tool.

For now, this is just a piece of advice of why the CLI may not work as expected.