Patchwork spice: set spice uuid and name

login
register
mail settings
Submitter Marc-André Lureau
Date March 2, 2012, 12:49 p.m.
Message ID <1330692562-21943-1-git-send-email-marcandre.lureau@redhat.com>
Download mbox | patch
Permalink /patch/144242/
State New
Headers show

Comments

Marc-André Lureau - March 2, 2012, 12:49 p.m.
This allows a Spice client to identify a VM
---
 ui/spice-core.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)
Gerd Hoffmann - March 2, 2012, 1:25 p.m.
On 03/02/12 13:49, Marc-André Lureau wrote:
> This allows a Spice client to identify a VM

Patch doesn't apply, please rebase.

cheers,
  Gerd
Marc-André Lureau - March 2, 2012, 1:59 p.m.
On Fri, Mar 2, 2012 at 2:25 PM, Gerd Hoffmann <kraxel@redhat.com> wrote:
> On 03/02/12 13:49, Marc-André Lureau wrote:
>> This allows a Spice client to identify a VM
>
> Patch doesn't apply, please rebase.

It applies here on top of git://git.qemu.org/qemu.git/master:

commit 88e6c60671df4c8b1b6c1eb8f76950ab1bea0ec2
Merge: 14655e4 8f6f962
Author: Anthony Liguori <aliguori@us.ibm.com>
Date:   Thu Mar 1 15:26:55 2012 -0600

    Merge remote-tracking branch 'qemu-kvm/memory/urgent' into staging
Gerd Hoffmann - March 2, 2012, 2:10 p.m.
On 03/02/12 14:59, Marc-André Lureau wrote:
> On Fri, Mar 2, 2012 at 2:25 PM, Gerd Hoffmann <kraxel@redhat.com> wrote:
>> On 03/02/12 13:49, Marc-André Lureau wrote:
>>> This allows a Spice client to identify a VM
>>
>> Patch doesn't apply, please rebase.
> 
> It applies here on top of git://git.qemu.org/qemu.git/master:
> 
> commit 88e6c60671df4c8b1b6c1eb8f76950ab1bea0ec2
> Merge: 14655e4 8f6f962
> Author: Anthony Liguori <aliguori@us.ibm.com>
> Date:   Thu Mar 1 15:26:55 2012 -0600
> 
>     Merge remote-tracking branch 'qemu-kvm/memory/urgent' into staging
> 

No:

rincewind kraxel ~/projects/qemu (tmp)# git am -s
~/Downloads/patches/spice/\[Qemu-devel\]\ \[PATCH\]\ spice\:\ set\
spice\ uuid\ and\ name.eml
Applying: spice: set spice uuid and name
error: patch failed: ui/spice-core.c:699
error: ui/spice-core.c: patch does not apply
Patch failed at 0001 spice: set spice uuid and name
When you have resolved this problem run "git am --resolved".
If you would prefer to skip this patch, instead run "git am --skip".
To restore the original branch and stop patching run "git am --abort".

And please wait until the spice-server changes this patch depends on are
committed upstream before resubmitting.

thanks,
  Gerd
Alon Levy - March 2, 2012, 4:04 p.m.
On Fri, Mar 02, 2012 at 01:49:22PM +0100, Marc-André Lureau wrote:
> This allows a Spice client to identify a VM

My only problem with this is that if we have a monitor vmcchannel you
could issue the command to query that, and much more, without having to
add any messages. And adding a monitor channel is really easy - the only
requirement being that qemu can handle two monitor users, libvirt and
spice.

> ---
>  ui/spice-core.c |    6 ++++++
>  1 files changed, 6 insertions(+), 0 deletions(-)
> 
> diff --git a/ui/spice-core.c b/ui/spice-core.c
> index 1308a3d..8472cdd 100644
> --- a/ui/spice-core.c
> +++ b/ui/spice-core.c
> @@ -19,6 +19,7 @@
>  #include <spice-experimental.h>
>  
>  #include <netdb.h>
> +#include "sysemu.h"
>  
>  #include "qemu-common.h"
>  #include "qemu-spice.h"
> @@ -699,6 +700,11 @@ void qemu_spice_init(void)
>  
>      qemu_opt_foreach(opts, add_channel, NULL, 0);
>  
> +#if SPICE_SERVER_VERSION >= 0x000a02 /* 0.10.2 */
> +    spice_server_set_name(spice_server, qemu_name);
> +    spice_server_set_uuid(spice_server, qemu_uuid);
> +#endif
> +
>      if (0 != spice_server_init(spice_server, &core_interface)) {
>          fprintf(stderr, "failed to initialize spice server");
>          exit(1);
> -- 
> 1.7.7.6
> 
>
Marc-André Lureau - March 2, 2012, 4:15 p.m.
----- Mensaje original -----
> On Fri, Mar 02, 2012 at 01:49:22PM +0100, Marc-André Lureau wrote:
> > This allows a Spice client to identify a VM
> 
> My only problem with this is that if we have a monitor vmcchannel you
> could issue the command to query that, and much more, without having
> to
> add any messages. And adding a monitor channel is really easy - the
> only
> requirement being that qemu can handle two monitor users, libvirt and
> spice.

Interesting idea, then we would have a Spice "qemu monitor" channel, 
and we would need to do the same job as libvirt-qemu to have a stable
layer on top. Arguably, we could share their code, but that doesn't seem
trivial either.

Both approach do not seem incompatible to me.Having a uuid/name Spice API
can be useful for XSpice or other servers too.
Alon Levy - March 2, 2012, 4:27 p.m.
On Fri, Mar 02, 2012 at 11:15:48AM -0500, Marc-André Lureau wrote:
> 
> 
> ----- Mensaje original -----
> > On Fri, Mar 02, 2012 at 01:49:22PM +0100, Marc-André Lureau wrote:
> > > This allows a Spice client to identify a VM
> >
> > My only problem with this is that if we have a monitor vmcchannel you
> > could issue the command to query that, and much more, without having
> > to
> > add any messages. And adding a monitor channel is really easy - the
> > only
> > requirement being that qemu can handle two monitor users, libvirt and
> > spice.
> 
> Interesting idea, then we would have a Spice "qemu monitor" channel,
> and we would need to do the same job as libvirt-qemu to have a stable
> layer on top. Arguably, we could share their code, but that doesn't seem
> trivial either.

True. It would be simpler if there was a libqemumonitor inside qemu that
libvirt and us used.

> 
> Both approach do not seem incompatible to me.Having a uuid/name Spice API
> can be useful for XSpice or other servers too.
True. Then it makes sense to add this.
Stefano Stabellini - March 12, 2012, 4:13 p.m.
On Fri, 2 Mar 2012, Alon Levy wrote:
> On Fri, Mar 02, 2012 at 11:15:48AM -0500, Marc-André Lureau wrote:
> > Interesting idea, then we would have a Spice "qemu monitor" channel,
> > and we would need to do the same job as libvirt-qemu to have a stable
> > layer on top. Arguably, we could share their code, but that doesn't seem
> > trivial either.
> 
> True. It would be simpler if there was a libqemumonitor inside qemu that
> libvirt and us used.

We also wrote a library to open a QMP connection and handle QMP commands
and responses, it is currently part of libxenlight (see libxl_qmp.c),
but it doesn't have to. It is certainly possible to make it more generic
if anybody is interested.

Patch

diff --git a/ui/spice-core.c b/ui/spice-core.c
index 1308a3d..8472cdd 100644
--- a/ui/spice-core.c
+++ b/ui/spice-core.c
@@ -19,6 +19,7 @@ 
 #include <spice-experimental.h>
 
 #include <netdb.h>
+#include "sysemu.h"
 
 #include "qemu-common.h"
 #include "qemu-spice.h"
@@ -699,6 +700,11 @@  void qemu_spice_init(void)
 
     qemu_opt_foreach(opts, add_channel, NULL, 0);
 
+#if SPICE_SERVER_VERSION >= 0x000a02 /* 0.10.2 */
+    spice_server_set_name(spice_server, qemu_name);
+    spice_server_set_uuid(spice_server, qemu_uuid);
+#endif
+
     if (0 != spice_server_init(spice_server, &core_interface)) {
         fprintf(stderr, "failed to initialize spice server");
         exit(1);