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

Slavomir Kaslev kaslevs at vmware.com
Thu Dec 6 19:53:10 UTC 2018


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

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))
+
+
+    ##################
+    # 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
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




More information about the virt-tools-list mailing list