[libvirt] [PATCH] virsh: Fix a problem of argv parsing

Eric Blake eblake at redhat.com
Tue Apr 5 14:50:30 UTC 2011


On 04/05/2011 06:38 AM, Osier Yang wrote:
> Problem example:
>   # virsh -d 5 vol-create --pool default col.xml
>   vol-create: pool(optdata): default
>   vol-create: pool(optdata): col.xml
>   error: command 'vol-create' requires <file> option
> 
>   It gets same "vshCmdOptDef" for both "--pool default"
>   and "col.xml".
> 
> This patch fixes it by increase "data_ct" when things like
> "--pool default" is successfully parsed, so that could
> get right "vshCmdOptDef" for the other arguments which
> are not with option name together.

While I agree that this patch appears to fix the problem, I'd feel much
better if we _also_ added a test case to prove we don't regress in the
future (especially since we might be making future changes to argument
parsing to improve tab-completion or unambiguous prefix support).

It looks like the following are impacted (at least these are the
commands with more than one VSH_OT_DATA/VSH_OFLAG_REQ option):
domblkstat
domifstat
domblkinfo
save
dump
vcpupin
setvcpus
setmem
setmaxmem
domxml-from-native
domxml-to-native
migrate
migrate-setmaxdowntime
pool-define-as
pool-create-as
vol-create-as
vol-create
vol-create-from
vol-clone
vol-upload
vol-download
secret-set-value
attach-device
detach-device
update-device
attach-interface
detach-interface
attach-disk
detach-disk
snapshot-dumpxml
snapshot-revert
snapshot-delete
qemu-monitor-command


And since test:///default supports setvcpus, a valid test might be to
copy the layout of virsh-schedinfo as framework, and test that all of
these are equivalent:

virsh -c test:///default setvcpus test 2
virsh -c test:///default setvcpus --domain test 2
virsh -c test:///default setvcpus --domain=test 2
virsh -c test:///default setvcpus test --count 2
virsh -c test:///default setvcpus test --count=2
virsh -c test:///default setvcpus --domain test --count 2
virsh -c test:///default setvcpus --domain=test --count 2
virsh -c test:///default setvcpus --domain test --count=2
virsh -c test:///default setvcpus --domain=test --count=2
virsh -c test:///default setvcpus --count 2 --domain test
virsh -c test:///default setvcpus --count 2 --domain=test
virsh -c test:///default setvcpus --count=2 --domain test
virsh -c test:///default setvcpus --count=2 --domain=test

-- 
Eric Blake   eblake at redhat.com    +1-801-349-2682
Libvirt virtualization library http://libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 619 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20110405/70771f50/attachment-0001.sig>


More information about the libvir-list mailing list