[virt-tools-list] [PATCH] enable zvol creation

Tristan Helmich tristan.helmich at mayflower.de
Thu Jul 28 11:51:10 UTC 2016


Hi,

just a quick patch to allow creation of ZFS zvol via virt-manager.
Please let me know if anything else needs to be changed.

Regards
Tristan

---
 virtManager/storagepool.py |  2 +-
 virtinst/storage.py        | 10 +++++++---
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/virtManager/storagepool.py b/virtManager/storagepool.py
index 8840e2b..d9d9f8a 100644
--- a/virtManager/storagepool.py
+++ b/virtManager/storagepool.py
@@ -249,7 +249,7 @@ class vmmStoragePool(vmmLibvirtObject):
 
     def can_change_alloc(self):
         typ = self.get_type()
-        return (typ in [StoragePool.TYPE_LOGICAL])
+        return (typ in [StoragePool.TYPE_LOGICAL, StoragePool.TYPE_ZFS])
     def supports_volume_creation(self):
         return self.get_xmlobj().supports_volume_creation()
 
diff --git a/virtinst/storage.py b/virtinst/storage.py
index 4f547a0..73b0fa6 100644
--- a/virtinst/storage.py
+++ b/virtinst/storage.py
@@ -108,6 +108,7 @@ class StoragePool(_StorageObject):
     TYPE_GLUSTER = "gluster"
     TYPE_RBD     = "rbd"
     TYPE_SHEEPDOG = "sheepdog"
+    TYPE_ZFS     = "zfs"
 
     # Pool type descriptions for use in higher level programs
     _descs = {}
@@ -122,6 +123,7 @@ class StoragePool(_StorageObject):
     _descs[TYPE_GLUSTER] = _("Gluster Filesystem")
     _descs[TYPE_RBD]     = _("RADOS Block Device/Ceph")
     _descs[TYPE_SHEEPDOG] = _("Sheepdog Filesystem")
+    _descs[TYPE_ZFS]     = _("ZFS Pool")
 
     @staticmethod
     def get_pool_types():
@@ -442,7 +444,7 @@ class StoragePool(_StorageObject):
                             self.TYPE_DISK, self.TYPE_ISCSI, self.TYPE_SCSI,
                             self.TYPE_GLUSTER],
             "source_name": [self.TYPE_LOGICAL, self.TYPE_GLUSTER,
-                            self.TYPE_RBD, self.TYPE_SHEEPDOG],
+                            self.TYPE_RBD, self.TYPE_SHEEPDOG, self.TYPE_ZFS],
             "hosts": [self.TYPE_NETFS, self.TYPE_ISCSI, self.TYPE_GLUSTER,
                      self.TYPE_RBD, self.TYPE_SHEEPDOG],
             "format": [self.TYPE_FS, self.TYPE_NETFS, self.TYPE_DISK],
@@ -471,7 +473,8 @@ class StoragePool(_StorageObject):
             StoragePool.TYPE_DIR, StoragePool.TYPE_FS,
             StoragePool.TYPE_NETFS, StoragePool.TYPE_LOGICAL,
             StoragePool.TYPE_DISK,
-            StoragePool.TYPE_RBD, StoragePool.TYPE_SHEEPDOG]
+            StoragePool.TYPE_RBD, StoragePool.TYPE_SHEEPDOG,
+            StoragePool.TYPE_ZFS]
 
 
     ##################
@@ -698,7 +701,8 @@ class StorageVolume(_StorageObject):
             elif self.type == "network":
                 return self.TYPE_NETWORK
         if (self._pool_xml.type == StoragePool.TYPE_DISK or
-            self._pool_xml.type == StoragePool.TYPE_LOGICAL):
+            self._pool_xml.type == StoragePool.TYPE_LOGICAL or
+            self._pool_xml.type == StoragePool.TYPE_ZFS):
             return self.TYPE_BLOCK
         if (self._pool_xml.type == StoragePool.TYPE_GLUSTER or
             self._pool_xml.type == StoragePool.TYPE_RBD or
-- 
2.9.1




More information about the virt-tools-list mailing list