[libvirt PATCH] capabilities: report full external snapshot support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Now that deleting and reverting external snapshots is implemented we can
report that in capabilities so management applications can use that
information and start using external snapshots.

Signed-off-by: Pavel Hrdina <phrdina@xxxxxxxxxx>
---
 docs/formatcaps.rst                            | 6 ++++++
 src/conf/capabilities.c                        | 1 +
 src/conf/capabilities.h                        | 1 +
 src/conf/schemas/capability.rng                | 5 +++++
 src/qemu/qemu_capabilities.c                   | 1 +
 tests/qemucaps2xmloutdata/caps.aarch64+hvf.xml | 1 +
 tests/qemucaps2xmloutdata/caps.aarch64.xml     | 1 +
 tests/qemucaps2xmloutdata/caps.ppc.xml         | 1 +
 tests/qemucaps2xmloutdata/caps.ppc64.xml       | 1 +
 tests/qemucaps2xmloutdata/caps.riscv64.xml     | 1 +
 tests/qemucaps2xmloutdata/caps.s390x.xml       | 1 +
 tests/qemucaps2xmloutdata/caps.sparc.xml       | 1 +
 tests/qemucaps2xmloutdata/caps.x86_64+hvf.xml  | 1 +
 tests/qemucaps2xmloutdata/caps.x86_64.xml      | 1 +
 14 files changed, 23 insertions(+)

diff --git a/docs/formatcaps.rst b/docs/formatcaps.rst
index f7e5342654..0e056914b8 100644
--- a/docs/formatcaps.rst
+++ b/docs/formatcaps.rst
@@ -134,6 +134,11 @@ The ``<guest/>`` element will typically wrap up the following elements:
       external disk snapshots are supported. If absent, external snapshots may
       still be supported, but it requires attempting the API and checking for an
       error to find out for sure. :since:`Since 1.2.3`
+   ``externalSnapshot``
+      If this element is present, the hypervisor supports creating, deleting and
+      reverting external snapshots including memory state and management
+      applications can switch from internal snapshots to external snapshots.
+      :since:`Since 9.7.0`
 
 Examples
 ~~~~~~~~
@@ -318,6 +323,7 @@ capabilities enabled in the chip and BIOS you will see:
         <cpuselection/>
         <deviceboot/>
         <disksnapshot default='on' toggle='no'/>
+        <externalSnapshot/>
       </features>
     </guest>
 
diff --git a/src/conf/capabilities.c b/src/conf/capabilities.c
index 56768ce6e0..34f04cb7d3 100644
--- a/src/conf/capabilities.c
+++ b/src/conf/capabilities.c
@@ -508,6 +508,7 @@ static const struct virCapsGuestFeatureInfo virCapsGuestFeatureInfos[VIR_CAPS_GU
     [VIR_CAPS_GUEST_FEATURE_TYPE_DEVICEBOOT] = { "deviceboot", false },
     [VIR_CAPS_GUEST_FEATURE_TYPE_DISKSNAPSHOT] = { "disksnapshot", true },
     [VIR_CAPS_GUEST_FEATURE_TYPE_HAP] = { "hap", true },
+    [VIR_CAPS_GUEST_FEATURE_TYPE_EXTERNAL_SNAPSHOT] = { "externalSnapshot", false },
 };
 
 
diff --git a/src/conf/capabilities.h b/src/conf/capabilities.h
index c78e3e52fa..9eaf6e2807 100644
--- a/src/conf/capabilities.h
+++ b/src/conf/capabilities.h
@@ -40,6 +40,7 @@ typedef enum {
     VIR_CAPS_GUEST_FEATURE_TYPE_DEVICEBOOT,
     VIR_CAPS_GUEST_FEATURE_TYPE_DISKSNAPSHOT,
     VIR_CAPS_GUEST_FEATURE_TYPE_HAP,
+    VIR_CAPS_GUEST_FEATURE_TYPE_EXTERNAL_SNAPSHOT,
 
     VIR_CAPS_GUEST_FEATURE_TYPE_LAST
 } virCapsGuestFeatureType;
diff --git a/src/conf/schemas/capability.rng b/src/conf/schemas/capability.rng
index 83b414961a..b1968df258 100644
--- a/src/conf/schemas/capability.rng
+++ b/src/conf/schemas/capability.rng
@@ -493,6 +493,11 @@
             <empty/>
           </element>
         </optional>
+        <optional>
+          <element name="externalSnapshot">
+            <empty/>
+          </element>
+        </optional>
       </interleave>
     </element>
   </define>
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 40eacf0f4d..05cc11218a 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -1121,6 +1121,7 @@ virQEMUCapsInitGuestFromBinary(virCaps *caps,
     virCapabilitiesAddGuestFeature(guest, VIR_CAPS_GUEST_FEATURE_TYPE_DEVICEBOOT);
     virCapabilitiesAddGuestFeatureWithToggle(guest, VIR_CAPS_GUEST_FEATURE_TYPE_DISKSNAPSHOT,
                                              true, false);
+    virCapabilitiesAddGuestFeature(guest, VIR_CAPS_GUEST_FEATURE_TYPE_EXTERNAL_SNAPSHOT);
 
     if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_TCG)) {
         virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_QEMU,
diff --git a/tests/qemucaps2xmloutdata/caps.aarch64+hvf.xml b/tests/qemucaps2xmloutdata/caps.aarch64+hvf.xml
index b53a886b90..b9a5b5a1d6 100644
--- a/tests/qemucaps2xmloutdata/caps.aarch64+hvf.xml
+++ b/tests/qemucaps2xmloutdata/caps.aarch64+hvf.xml
@@ -21,6 +21,7 @@
       <cpuselection/>
       <deviceboot/>
       <disksnapshot default='on' toggle='no'/>
+      <externalSnapshot/>
     </features>
   </guest>
 
diff --git a/tests/qemucaps2xmloutdata/caps.aarch64.xml b/tests/qemucaps2xmloutdata/caps.aarch64.xml
index 5dca6d3102..61512ed740 100644
--- a/tests/qemucaps2xmloutdata/caps.aarch64.xml
+++ b/tests/qemucaps2xmloutdata/caps.aarch64.xml
@@ -21,6 +21,7 @@
       <cpuselection/>
       <deviceboot/>
       <disksnapshot default='on' toggle='no'/>
+      <externalSnapshot/>
     </features>
   </guest>
 
diff --git a/tests/qemucaps2xmloutdata/caps.ppc.xml b/tests/qemucaps2xmloutdata/caps.ppc.xml
index e7ba391795..86d6b85ae0 100644
--- a/tests/qemucaps2xmloutdata/caps.ppc.xml
+++ b/tests/qemucaps2xmloutdata/caps.ppc.xml
@@ -19,6 +19,7 @@
       <cpuselection/>
       <deviceboot/>
       <disksnapshot default='on' toggle='no'/>
+      <externalSnapshot/>
     </features>
   </guest>
 
diff --git a/tests/qemucaps2xmloutdata/caps.ppc64.xml b/tests/qemucaps2xmloutdata/caps.ppc64.xml
index 85623f3980..90859f9594 100644
--- a/tests/qemucaps2xmloutdata/caps.ppc64.xml
+++ b/tests/qemucaps2xmloutdata/caps.ppc64.xml
@@ -20,6 +20,7 @@
       <cpuselection/>
       <deviceboot/>
       <disksnapshot default='on' toggle='no'/>
+      <externalSnapshot/>
     </features>
   </guest>
 
diff --git a/tests/qemucaps2xmloutdata/caps.riscv64.xml b/tests/qemucaps2xmloutdata/caps.riscv64.xml
index 09b7eb7f2f..c6fa950211 100644
--- a/tests/qemucaps2xmloutdata/caps.riscv64.xml
+++ b/tests/qemucaps2xmloutdata/caps.riscv64.xml
@@ -19,6 +19,7 @@
       <cpuselection/>
       <deviceboot/>
       <disksnapshot default='on' toggle='no'/>
+      <externalSnapshot/>
     </features>
   </guest>
 
diff --git a/tests/qemucaps2xmloutdata/caps.s390x.xml b/tests/qemucaps2xmloutdata/caps.s390x.xml
index bb82a15040..6379ab73e6 100644
--- a/tests/qemucaps2xmloutdata/caps.s390x.xml
+++ b/tests/qemucaps2xmloutdata/caps.s390x.xml
@@ -20,6 +20,7 @@
       <cpuselection/>
       <deviceboot/>
       <disksnapshot default='on' toggle='no'/>
+      <externalSnapshot/>
     </features>
   </guest>
 
diff --git a/tests/qemucaps2xmloutdata/caps.sparc.xml b/tests/qemucaps2xmloutdata/caps.sparc.xml
index 9d977c4102..b5b158e430 100644
--- a/tests/qemucaps2xmloutdata/caps.sparc.xml
+++ b/tests/qemucaps2xmloutdata/caps.sparc.xml
@@ -19,6 +19,7 @@
       <cpuselection/>
       <deviceboot/>
       <disksnapshot default='on' toggle='no'/>
+      <externalSnapshot/>
     </features>
   </guest>
 
diff --git a/tests/qemucaps2xmloutdata/caps.x86_64+hvf.xml b/tests/qemucaps2xmloutdata/caps.x86_64+hvf.xml
index 356819a6c6..f5e49ba4db 100644
--- a/tests/qemucaps2xmloutdata/caps.x86_64+hvf.xml
+++ b/tests/qemucaps2xmloutdata/caps.x86_64+hvf.xml
@@ -22,6 +22,7 @@
       <cpuselection/>
       <deviceboot/>
       <disksnapshot default='on' toggle='no'/>
+      <externalSnapshot/>
     </features>
   </guest>
 
diff --git a/tests/qemucaps2xmloutdata/caps.x86_64.xml b/tests/qemucaps2xmloutdata/caps.x86_64.xml
index 35359780c4..8dd1439a80 100644
--- a/tests/qemucaps2xmloutdata/caps.x86_64.xml
+++ b/tests/qemucaps2xmloutdata/caps.x86_64.xml
@@ -22,6 +22,7 @@
       <cpuselection/>
       <deviceboot/>
       <disksnapshot default='on' toggle='no'/>
+      <externalSnapshot/>
     </features>
   </guest>
 
-- 
2.41.0




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux