From cac593da8fce27266b40aba5ea3a9784249063ab Mon Sep 17 00:00:00 2001 From: Cole Robinson Date: Mon, 3 Feb 2014 14:52:23 -0500 Subject: [PATCH] storage: Use qcow2 lazy_refcounts if supported --- tests/storage-xml/pool-dir-vol.xml | 3 +++ tests/storage-xml/pool-dir-volclone.xml | 4 ++++ tests/storage-xml/pool-dir-volinput.xml | 3 +++ tests/storage-xml/pool-disk-vol.xml | 3 +++ tests/storage-xml/pool-disk-volinput.xml | 3 +++ tests/storage-xml/pool-fs-vol.xml | 3 +++ tests/storage-xml/pool-fs-volclone.xml | 4 ++++ tests/storage-xml/pool-fs-volinput.xml | 3 +++ tests/storage-xml/pool-logical-vol.xml | 3 +++ tests/storage-xml/pool-logical-volinput.xml | 3 +++ tests/storage-xml/pool-netfs-vol.xml | 3 +++ tests/storage-xml/pool-netfs-volclone.xml | 4 ++++ tests/storage-xml/pool-netfs-volinput.xml | 3 +++ tests/xmlparse-xml/pool-dir-vol-out.xml | 3 +++ tests/xmlparse.py | 1 + virtinst/storage.py | 6 ++++++ virtinst/support.py | 6 ++++-- 17 files changed, 56 insertions(+), 2 deletions(-) diff --git a/tests/storage-xml/pool-dir-vol.xml b/tests/storage-xml/pool-dir-vol.xml index e6d5a6910..687121a47 100644 --- a/tests/storage-xml/pool-dir-vol.xml +++ b/tests/storage-xml/pool-dir-vol.xml @@ -9,5 +9,8 @@ 10736 10736 + + + diff --git a/tests/storage-xml/pool-dir-volclone.xml b/tests/storage-xml/pool-dir-volclone.xml index ea8ebae8b..a26bfd4e1 100644 --- a/tests/storage-xml/pool-dir-volclone.xml +++ b/tests/storage-xml/pool-dir-volclone.xml @@ -13,5 +13,9 @@ 10736 10736 + 1.1 + + + diff --git a/tests/storage-xml/pool-dir-volinput.xml b/tests/storage-xml/pool-dir-volinput.xml index e8e3018e0..49c4693e3 100644 --- a/tests/storage-xml/pool-dir-volinput.xml +++ b/tests/storage-xml/pool-dir-volinput.xml @@ -9,5 +9,8 @@ 10736 10736 + + + diff --git a/tests/storage-xml/pool-disk-vol.xml b/tests/storage-xml/pool-disk-vol.xml index f96726ff5..d3fac0849 100644 --- a/tests/storage-xml/pool-disk-vol.xml +++ b/tests/storage-xml/pool-disk-vol.xml @@ -8,5 +8,8 @@ 10736 10736 + + + diff --git a/tests/storage-xml/pool-disk-volinput.xml b/tests/storage-xml/pool-disk-volinput.xml index f769691ae..a1dedaa18 100644 --- a/tests/storage-xml/pool-disk-volinput.xml +++ b/tests/storage-xml/pool-disk-volinput.xml @@ -9,5 +9,8 @@ 10736 10736 + + + diff --git a/tests/storage-xml/pool-fs-vol.xml b/tests/storage-xml/pool-fs-vol.xml index 01c67371d..b36723d67 100644 --- a/tests/storage-xml/pool-fs-vol.xml +++ b/tests/storage-xml/pool-fs-vol.xml @@ -9,5 +9,8 @@ 10736 10736 + + + diff --git a/tests/storage-xml/pool-fs-volclone.xml b/tests/storage-xml/pool-fs-volclone.xml index f48639eaa..00022e7f1 100644 --- a/tests/storage-xml/pool-fs-volclone.xml +++ b/tests/storage-xml/pool-fs-volclone.xml @@ -13,5 +13,9 @@ 10736 10736 + 1.1 + + + diff --git a/tests/storage-xml/pool-fs-volinput.xml b/tests/storage-xml/pool-fs-volinput.xml index eb0f0993f..fed238b14 100644 --- a/tests/storage-xml/pool-fs-volinput.xml +++ b/tests/storage-xml/pool-fs-volinput.xml @@ -9,5 +9,8 @@ 10736 10736 + + + diff --git a/tests/storage-xml/pool-logical-vol.xml b/tests/storage-xml/pool-logical-vol.xml index aaca040f5..c782e9c77 100644 --- a/tests/storage-xml/pool-logical-vol.xml +++ b/tests/storage-xml/pool-logical-vol.xml @@ -8,5 +8,8 @@ 10736 10736 + + + diff --git a/tests/storage-xml/pool-logical-volinput.xml b/tests/storage-xml/pool-logical-volinput.xml index d51a9b06f..b27e86649 100644 --- a/tests/storage-xml/pool-logical-volinput.xml +++ b/tests/storage-xml/pool-logical-volinput.xml @@ -8,5 +8,8 @@ 10736 10736 + + + diff --git a/tests/storage-xml/pool-netfs-vol.xml b/tests/storage-xml/pool-netfs-vol.xml index c87db9fe7..526a55e84 100644 --- a/tests/storage-xml/pool-netfs-vol.xml +++ b/tests/storage-xml/pool-netfs-vol.xml @@ -9,5 +9,8 @@ 10736 10736 + + + diff --git a/tests/storage-xml/pool-netfs-volclone.xml b/tests/storage-xml/pool-netfs-volclone.xml index d17d4159d..84bed8b28 100644 --- a/tests/storage-xml/pool-netfs-volclone.xml +++ b/tests/storage-xml/pool-netfs-volclone.xml @@ -13,5 +13,9 @@ 10736 10736 + 1.1 + + + diff --git a/tests/storage-xml/pool-netfs-volinput.xml b/tests/storage-xml/pool-netfs-volinput.xml index ee1654f7d..0765b24c2 100644 --- a/tests/storage-xml/pool-netfs-volinput.xml +++ b/tests/storage-xml/pool-netfs-volinput.xml @@ -9,5 +9,8 @@ 10736 10736 + + + diff --git a/tests/xmlparse-xml/pool-dir-vol-out.xml b/tests/xmlparse-xml/pool-dir-vol-out.xml index fed927ba8..b23af50a8 100644 --- a/tests/xmlparse-xml/pool-dir-vol-out.xml +++ b/tests/xmlparse-xml/pool-dir-vol-out.xml @@ -11,6 +11,9 @@ /foo/bar + + + /my/backing diff --git a/tests/xmlparse.py b/tests/xmlparse.py index d49fb4a2c..a34e81839 100644 --- a/tests/xmlparse.py +++ b/tests/xmlparse.py @@ -1047,6 +1047,7 @@ class XMLParseTest(unittest.TestCase): check("format", "raw", "qcow2") check("target_path", None, "/foo/bar") check("backing_store", "/foo/bar/baz", "/my/backing") + check("lazy_refcounts", False, True) check = self._make_checker(vol.permissions) check("mode", "0700", "0744") diff --git a/virtinst/storage.py b/virtinst/storage.py index fc4cd2443..b98b9153f 100644 --- a/virtinst/storage.py +++ b/virtinst/storage.py @@ -595,6 +595,12 @@ class StorageVolume(_StorageObject): target_path = XMLProperty("./target/path") backing_store = XMLProperty("./backingStore/path") + def _lazy_refcounts_default_cb(self): + return self.conn.check_support( + self.conn.SUPPORT_CONN_QCOW2_LAZY_REFCOUNTS) + lazy_refcounts = XMLProperty("./target/features/lazy_refcounts", + is_bool=True, default_cb=_lazy_refcounts_default_cb) + ###################### # Public API helpers # diff --git a/virtinst/support.py b/virtinst/support.py index 523769850..c64bf3906 100644 --- a/virtinst/support.py +++ b/virtinst/support.py @@ -292,8 +292,10 @@ SUPPORT_CONN_VIRTIO_CONSOLE = _make(drv_libvirt_version=[("qemu", 8003)]) SUPPORT_CONN_PANIC_DEVICE = _make(version=1002001, drv_version=[("qemu", 1005000), ("test", 0)]) -SUPPORT_CONN_PM_DISABLE = _make(version="10002", drv_version=[ - ("qemu", 1002000), ("test", 0)]) +SUPPORT_CONN_PM_DISABLE = _make(version="10002", + drv_version=[("qemu", 1002000), ("test", 0)]) +SUPPORT_CONN_QCOW2_LAZY_REFCOUNTS = _make(version="1001000", + drv_version=[("qemu", 1002000), ("test", 0)]) # Domain checks