
On Wed, Sep 21, 2011 at 06:28:26AM -0600, Eric Blake wrote:
On 09/21/2011 06:18 AM, Jason Krieg wrote:
Hi,
the virsh qemu-monitor-command is not working with libvirt 0.9.5
with git commit 85d2810823a31634b12145d6c196930b40425370
*opts_seen moved into the != VSH_OT_ARGV if statement
so now opts_seen is only set if not VSH_OT_ARGV
diff -Nurp libvirt-0.9.5/tools/virsh.c libvirt-0.9.5.new/tools/virsh.c --- libvirt-0.9.5/tools/virsh.c 2011-09-20 05:00:45.000000000 +0200 +++ libvirt-0.9.5.new/tools/virsh.c 2011-09-21 13:56:17.000000000 +0200 @@ -13916,8 +13916,8 @@ vshCmddefGetData(const vshCmdDef *cmd, u opt =&cmd->opts[i]; if (opt->type != VSH_OT_ARGV) { *opts_need_arg&= ~(1<< i); - *opts_seen |= 1<< i; } + *opts_seen |= 1<< i; return opt;
Thanks for the report, but reverting this change would break snapshot-create-as diskspec parsing.
I'll have to come up with a proper fix that works with both commands.
Hands up who wants to pull all this dodgy ARGV parsing code out of virsh, and into a isolated src/util/cliparse.c module, where it can be properly unit tested without involving the rest of the virsh code... Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|