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

Marc Hartmayer mhartmay at linux.ibm.com
Tue Dec 18 13:59:11 UTC 2018


On Fri, Dec 14, 2018 at 03:34 PM +0100, Slavomir Kaslev <kaslevs at vmware.com> wrote:
> VSOCK sockets allow communication between virtual machines and the host they are
> running on.
>
> This patch adds vsock device support along with clitest for the new properties.
>
> Signed-off-by: Slavomir Kaslev <kaslevs at vmware.com>
> ---

[…snip…]

>
>
>  def add_guest_xml_options(geng):
> @@ -2577,6 +2581,23 @@ ParserPanic.add_arg(None, "model", cb=ParserPanic.set_model_cb,
>  ParserPanic.add_arg("iobase", "iobase")
>
>
> +###################
> +# --vsock parsing #
> +###################
> +

I know this blank line is everywhere in this module… but why? It
violates against pep8…

Wouldn’t it make more sense to have an docstring for the class instead?

> +class ParserVsock(VirtCLIParser):
> +    cli_arg_name = "vsock"
> +    propname = "devices.vsock"
> +    remove_first = "model"
> +    stub_none = False
> +
> +_register_virt_parser(ParserVsock)
> +_add_device_address_args(ParserVsock)
> +ParserVsock.add_arg("model", "model")
> +ParserVsock.add_arg("auto_cid", "auto_cid")
> +ParserVsock.add_arg("cid", "cid")
> +
> +
>  ######################################################
>  # --serial, --parallel, --channel, --console parsing #
>  ######################################################
> 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..27b0cc3d
> --- /dev/null
> +++ b/virtinst/devices/vsock.py
> @@ -0,0 +1,42 @@
> +# 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)
> +
> +    MIN_GUEST_CID = 3
> +
> +
> +    ##############
> +    # Validation #
> +    ##############
> +
> +    def validate(self):

The same goes here :)

> +        if not self.auto_cid and (self.cid is None or
> +                                  self.cid < self.MIN_GUEST_CID):
> +            raise ValueError(_("guest CID {0} must be >= 3").format(self.cid))
> +
> +
> +    ##################
> +    # Default config #
> +    ##################
> +
> +    def set_defaults(self, guest):

And here.

> +        if not self.model:
> +            self.model = "virtio"
> +
> +        if self.auto_cid is None and self.cid is None:
> +            self.auto_cid = True
> 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

Kind regards / Beste Grüße
   Marc Hartmayer

IBM Deutschland Research & Development GmbH
Vorsitzende des Aufsichtsrats: Matthias Hartmann
Geschäftsführung: Dirk Wittkopp
Sitz der Gesellschaft: Böblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294





More information about the virt-tools-list mailing list