[libvirt] [PATCH] qemu: don't attempt undefined QMP commands

Daniel P. Berrange berrange at redhat.com
Fri Nov 30 08:31:32 UTC 2012


On Thu, Nov 29, 2012 at 05:40:20PM -0700, Eric Blake wrote:
> https://bugzilla.redhat.com/show_bug.cgi?id=872292
> 
> Libvirt should not attempt to call a QMP command that has not been
> documented in qemu.git - if future qemu introduces a command by the
> same name but with subtly different semantics, then libvirt will be
> broken when trying to use that command.

The reason these were added was that back in the first days of QMP
the intention was that every HMP command would have an identical
QMP command. This plan changed before it was ever completed, hence
the situation we're in now.


> diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c
> index aef5044..43e45ef 100644
> --- a/src/qemu/qemu_monitor.c
> +++ b/src/qemu/qemu_monitor.c
> @@ -2387,7 +2387,8 @@ int qemuMonitorAddHostNetwork(qemuMonitorPtr mon,
>      }
> 
>      if (mon->json)
> -        ret = qemuMonitorJSONAddHostNetwork(mon, netstr);
> +        virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
> +                       _("JSON monitor should be using netdev_add"));
>      else
>          ret = qemuMonitorTextAddHostNetwork(mon, netstr);
> 
> @@ -2418,7 +2419,8 @@ int qemuMonitorRemoveHostNetwork(qemuMonitorPtr mon,
>      }
> 
>      if (mon->json)
> -        ret = qemuMonitorJSONRemoveHostNetwork(mon, vlan, netname);
> +        virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
> +                       _("JSON monitor should be using netdev_del"));

In these two you recommend different commands

>      else
>          ret = qemuMonitorTextRemoveHostNetwork(mon, vlan, netname);
>      return ret;
> @@ -2548,7 +2550,8 @@ int qemuMonitorAttachDrive(qemuMonitorPtr mon,
>      }
> 
>      if (mon->json)
> -        ret = qemuMonitorJSONAttachDrive(mon, drivestr, controllerAddr, driveAddr);
> +        virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
> +                       _("JSON monitor should be using AddDrive"));

while this one recommends a different method


ACK you standardize on one.

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 :|




More information about the libvir-list mailing list