[virt-tools-list] [PATCH 3/5] virtinst: add listen=none graphics option

Marc-André Lureau mlureau at redhat.com
Thu Apr 28 14:14:27 UTC 2016


Hi

----- Original Message -----
> On Thu, Apr 28, 2016 at 09:39:40AM -0400, Marc-André Lureau wrote:
> > Hi
> > 
> > ----- Original Message -----
> > > On Thu, Apr 28, 2016 at 02:22:09PM +0200, Marc-André Lureau wrote:
> > > > Add a special listen value to disable any extra display server
> > > > listening
> > > > socket. This is necessary now that qemu prevents starting a spice+virgl
> > > > VM with listening sockets (until spice allows remoting with virgl).
> > > > 
> > > > Signed-off-by: Marc-André Lureau <marcandre.lureau at redhat.com>
> > > > ---
> > > >  man/virt-install.pod                                     |  9
> > > >  +++++++--
> > > >  tests/cli-test-xml/compare/virt-install-many-devices.xml |  4 ++++
> > > >  tests/clitest.py                                         |  1 +
> > > >  virtinst/cli.py                                          | 11
> > > >  ++++++++++-
> > > >  4 files changed, 22 insertions(+), 3 deletions(-)
> > > > 
> > > > diff --git a/man/virt-install.pod b/man/virt-install.pod
> > > > index 0bc3d8c..0537693 100644
> > > > --- a/man/virt-install.pod
> > > > +++ b/man/virt-install.pod
> > > > @@ -964,8 +964,13 @@ Specify the spice tlsport.
> > > >  Address to listen on for VNC/Spice connections. Default is typically
> > > >  127.0.0.1
> > > >  (localhost only), but some hypervisors allow changing this globally
> > > >  (for
> > > >  example, the qemu driver default can be changed in
> > > >  /etc/libvirt/qemu.conf).
> > > > -Use 0.0.0.0 to allow access from other machines. This is use by 'vnc'
> > > > and
> > > > -'spice'
> > > > +Use 0.0.0.0 to allow access from other machines.
> > > > +
> > > > +Use 'none' to specify that the display server should not listen on any
> > > > +port. The display server can be accessed only locally through
> > > > +libvirt unix socket (virt-viewer with --attach for instance).
> > > > +
> > > > +This is used by 'vnc' and 'spice'
> > > >  
> > > >  =item B<keymap>
> > > >  
> > > > diff --git a/tests/cli-test-xml/compare/virt-install-many-devices.xml
> > > > b/tests/cli-test-xml/compare/virt-install-many-devices.xml
> > > > index e771cd3..d268cd9 100644
> > > > --- a/tests/cli-test-xml/compare/virt-install-many-devices.xml
> > > > +++ b/tests/cli-test-xml/compare/virt-install-many-devices.xml
> > > > @@ -214,6 +214,10 @@
> > > >        <gl enable="yes"/>
> > > >        <image compression="off"/>
> > > >      </graphics>
> > > > +    <graphics type="spice" autoport="no">
> > > > +      <gl enable="yes"/>
> > > > +      <image compression="off"/>
> > > > +    </graphics>
> > > 
> > > NACK, please don't do this ... it's not intuitive and it may confuse
> > > users.
> > > This wasn't designed in libvirt to start a domain with spice to not
> > > listen
> > > anywhere.  Even though it works, we shouldn't use it.  I'm working on
> > > patches,
> > > that will introduce new <listen type='fd'/> which will tell qemu that
> > > spice
> > > shouldn't listen and that a client have to pass FD in order to connect.
> > > I'll
> > > also block this particular case in libvirt while starting a domain, that
> > > no
> > > port
> > > was specified.  It's not even documented anywhere.
> > 
> > Isn't it simply a documentation issue then? I don't think listen type='fd'
> > is more intuitive either. Also changing this now will break existing
> > configuration relying on this behaviour.
> 
> The 'fd' is a working name, I'll probably change it to 'none' or something
> else.
> Well one shouldn't rely on anything that isn't mentioned anywhere and is base
> on
> testing or reviewing code.  Instead of erroring out I'll probably convert
> this
> case to <listen type='none'/> but you should wait with those patches.  I

Ok, please keep me in CC. Are you working on this for the next release? if not, I can help.

> don't
> like similar configurations anywhere, where for some values it listens on
> address but with one exception that if you set port=0 and autoport=no that it
> won't listen anywhere (even if live XML has a listen=127.0.0.1).  It's
> ambiguous
> and like I said it may confuse users.
> 
> For that XML you are using in this patch live XML looks like this:
> 
> ...
>     <graphics type='spice' autoport='no' listen='127.0.0.1'>
>       <listen type='address' address='127.0.0.1/>
>       <gl enable='yes'/>
>       <image compression='off'/>
>     </graphics>
> ...
> 
> which basically means that spice should listen on address 127.0.0.1 but no
> port
> was specified so does it really listen anywhere or what?

Isn't that a live XML "bug" instead?

> 
> I'm working on making this clear and to always represent a current state in
> the
> XML so everyone that uses libvirt knows exactly what's the configuration.

Sounds good

> 
> So in this case it should looks like this:
> 
> ...
>     <graphics type='spice'>
>       <listen type='none'/>
>       <gl enable='yes'/>
>       <image compression='off'/>
>     </graphics>
> ...

I like it, let me know how I can help. I hope we can have it in next libvirt release, since it's not possible to setup a spice+virgl VM anymore since qemu "Disallow use of gl + TCP port" now.

thanks




More information about the virt-tools-list mailing list