]> xenbits.xensource.com Git - xcp/xen-api.git/commit
A few bugfixes and a few minor improvements to current xe cmdline tool implementation
authorZheng Li <dev@zheng.li>
Tue, 4 May 2010 05:22:08 +0000 (06:22 +0100)
committerZheng Li <dev@zheng.li>
Tue, 4 May 2010 05:22:08 +0000 (06:22 +0100)
commitb830e2b22c4e9aecc8d42f99eb75efd32925e476
tree8628999fd30e910be7596f2a3d5b03289f79d885
parent9e2e271687e43e2903afbf51dd645e5049dcd0cc
A few bugfixes and a few minor improvements to current xe cmdline tool implementation

Bugfixes:

* xe command line options doesn't mix well with XE_EXTRA_ARGS varialbe. E.g. setting XE_EXTRA_ARGS to "username=xxxx,password=yyyy" (or any non-nil valid configuration) and calling "xe -s <some server> vm-list" will break xe. Note that this is a common user case in a cluster-like environment where all the machines have the same user/passwd config, where one can conveniently set user/passwd in XE_EXTRA_ARGS for once and connect to different servers by only specifying different "-s" arguments in the cmdline.

* Setting "compat=true" in xe's RC file won't work. E.g. xe vm-clone vm-name=<vm name> new-name=<new vm name> with "compat=true" in ~/.xe won't work (but with "compat=true" in XE_EXTRA_ARGS or in xe cmdline will work).

* Setting a password with comma via XE_EXTRA_ARGS will break the logic. After the fix, it's possible to specify that by using backslash to escape the comma (e.g. password=pass\,word)

* clean up the options handling logic, so that cmdline options, RC file setting and XE_EXTRA_ARGS variable can mix consistently even in some corner cases and follow the natural priority: cmdline option > XE_EXTRA_ARGS > ~/.xe RC > default settings

Improvements:

* change options "-debug" and "-debug-on-fail" to "--debug" and "--debug-on-fail", so that every command line option now follows the common naming convention of -shortcut v.s.--full-name (with the only standard exception of having both "-help" and "--help"). AFAICS, both debug options are (maybe deliberately) not documented in the manual, so changing the names might not be a big issue regarding compatibilities.

* complete the pair relation between command line options and RC/environment variables. There were some missings from either side: e.g. "compat=xxxx" has no "--compat" correspondence and "--debug"("--debug-on-fail") has not "debug=xxxx" in par.

Signed-off-by: Zheng Li <dev@zheng.li>
ocaml/xe-cli/newcli.ml