[virt-tools-list] [PATCH 1/3] virtinst: Add vsock device type

Pavel Hrdina phrdina at redhat.com
Mon Dec 10 03:46:14 UTC 2018


On Fri, Dec 07, 2018 at 05:02:14PM +0200, Slavomir Kaslev wrote:
> Signed-off-by: Slavomir Kaslev <kaslevs at vmware.com>
> ---
>  virtinst/devices/__init__.py |  1 +
>  virtinst/devices/vsock.py    | 41 ++++++++++++++++++++++++++++++++++++
>  virtinst/guest.py            |  3 ++-
>  3 files changed, 44 insertions(+), 1 deletion(-)
>  create mode 100644 virtinst/devices/vsock.py

This patch fails './setup.py test'.  Every new XML element should have
it's command line option for virt-install and also we require some basic
test to be available.  So you need to extend this patch to introduce
command line option(s).

> diff --git a/virtinst/devices/__init__.py b/virtinst/devices/__init__.py
> index 6da0766d..6120f5d0 100644
> --- a/virtinst/devices/__init__.py
> +++ b/virtinst/devices/__init__.py
> @@ -22,6 +22,7 @@ from .redirdev import DeviceRedirdev
>  from .rng import DeviceRng
>  from .tpm import DeviceTpm
>  from .video import DeviceVideo
> +from .vsock import DeviceVsock
>  from .watchdog import DeviceWatchdog
>  
>  
> diff --git a/virtinst/devices/vsock.py b/virtinst/devices/vsock.py
> new file mode 100644
> index 00000000..beb00e50
> --- /dev/null
> +++ b/virtinst/devices/vsock.py
> @@ -0,0 +1,41 @@
> +# Copyright (C) 2018 VMware, Inc.
> +#
> +# Copyright 2018
> +# Slavomir Kaslev <kaslevs at vmware.com>
> +#
> +# This work is licensed under the GNU GPLv2 or later.
> +# See the COPYING file in the top-level directory.
> +
> +from .device import Device
> +from ..xmlbuilder import XMLProperty
> +
> +
> +class DeviceVsock(Device):
> +    XML_NAME = "vsock"
> +
> +    model = XMLProperty("./@model")
> +    auto_cid = XMLProperty("./cid/@auto", is_yesno=True)
> +    cid = XMLProperty("./cid/@address", is_int=True)
> +
> +
> +    ##############
> +    # Validation #
> +    ##############
> +
> +    def validate(self):
> +        if not self.auto_cid and (self.cid is None or self.cid < 3):
> +            raise ValueError(_("guest CID {0} must be >= 3").format(self.cid))

It would be better to have some const variable, for example
CID_MIN_GUEST_ADDRESS or something like that instead of "magic number".

> +
> +
> +    ##################
> +    # Default config #
> +    ##################
> +
> +    def set_defaults(self, guest):
> +        if not self.model:
> +            self.model = "virtio"
> +
> +        if self.auto_cid is None and self.cid is None:
> +            self.auto_cid = True
> +        if self.cid is None and not self.auto_cid:
> +            self.cid = 3

I think that it would be better not to have any default CID.  We can
default to set cid auto to True if nothing is provided and if cid auto
is set to False we should require cid address.

Otherwise looks good.

Pavel

> diff --git a/virtinst/guest.py b/virtinst/guest.py
> index eeb40cb6..9acff3b9 100644
> --- a/virtinst/guest.py
> +++ b/virtinst/guest.py
> @@ -29,7 +29,7 @@ class _DomainDevices(XMLBuilder):
>              'smartcard', 'serial', 'parallel', 'console', 'channel',
>              'input', 'tpm', 'graphics', 'sound', 'video', 'hostdev',
>              'redirdev', 'watchdog', 'memballoon', 'rng', 'panic',
> -            'memory']
> +            'memory', 'vsock']
>  
>  
>      disk = XMLChildProperty(DeviceDisk)
> @@ -53,6 +53,7 @@ class _DomainDevices(XMLBuilder):
>      rng = XMLChildProperty(DeviceRng)
>      panic = XMLChildProperty(DevicePanic)
>      memory = XMLChildProperty(DeviceMemory)
> +    vsock = XMLChildProperty(DeviceVsock)
>  
>      def get_all(self):
>          retlist = []
> -- 
> 2.19.1
> 
> _______________________________________________
> virt-tools-list mailing list
> virt-tools-list at redhat.com
> https://www.redhat.com/mailman/listinfo/virt-tools-list
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/virt-tools-list/attachments/20181210/c11b5ebf/attachment.sig>


More information about the virt-tools-list mailing list