]> xenbits.xensource.com Git - libvirt.git/commitdiff
conf: format/parse <vmcoreinfo> as tristate
authorCole Robinson <crobinso@redhat.com>
Tue, 17 Apr 2018 16:34:31 +0000 (12:34 -0400)
committerCole Robinson <crobinso@redhat.com>
Thu, 3 May 2018 20:37:41 +0000 (16:37 -0400)
<features><vmcoreinfo/> is a bare boolean XML property. We don't really
use this format anymore and instead prefer tristate <X state=on|off/>
since it's required for modeling on/off/default. If for example future
qemu started enabling vmcoreinfo by default we wouldn't have any way
for the user to turn this off.

Convert it to tristate. For writing XML this is semanticly the same,
<vmcoreinfo/> is processed as <vmcoreinfo state='on'/>.

For apps reading guest XML this is technically an API change,
as they might misinterpret <vmcoreinfo state='off'/>, however this
has only been present in libvirt since 3.10.0 and I don't think any
apps are dependent on this yet

Reviewed-by: John Ferlan <jferlan@redhat.com>
Signed-off-by: Cole Robinson <crobinso@redhat.com>
docs/formatdomain.html.in
docs/schemas/domaincommon.rng
src/conf/domain_conf.c
tests/qemuxml2xmloutdata/vmcoreinfo.xml

index 6a0110e91dd6aa859ecf0d6adcbc885bb581e92c..caeb14e2f4f55f08e4364db8676fff8f91d314d3 100644 (file)
   &lt;gic version='2'/&gt;
   &lt;ioapic driver='qemu'/&gt;
   &lt;hpt resizing='required'/&gt;
+  &lt;vmcoreinfo state='on'/&gt;
 &lt;/features&gt;
 ...</pre>
 
       </dd>
       <dt><code>vmcoreinfo</code></dt>
       <dd>Enable QEMU vmcoreinfo device to let the guest kernel save debug
-          details. <span class="since">Since 3.10.0</span> (QEMU only)
+          details. <span class="since">Since 4.4.0</span> (QEMU only)
       </dd>
     </dl>
 
index 7bad7dd27b35c0bd687b0c7b769ee6f534cb7e3c..0a6b29b2f6a2d351f210497aeae5a53f127ef0ed 100644 (file)
 
   <define name="vmcoreinfo">
     <element name="vmcoreinfo">
-      <empty/>
+      <optional>
+        <attribute name="state">
+          <ref name="virOnOff"/>
+        </attribute>
+      </optional>
     </element>
   </define>
 
index 0ea3e4caacd8d23671c31c2531233f9a6a55be05..c92725dd25beb837c8bcd9a6042d364d0ec9a28a 100644 (file)
@@ -19305,7 +19305,6 @@ virDomainDefParseXML(xmlDocPtr xml,
         case VIR_DOMAIN_FEATURE_VIRIDIAN:
         case VIR_DOMAIN_FEATURE_PRIVNET:
         case VIR_DOMAIN_FEATURE_HYPERV:
-        case VIR_DOMAIN_FEATURE_VMCOREINFO:
         case VIR_DOMAIN_FEATURE_KVM:
             def->features[val] = VIR_TRISTATE_SWITCH_ON;
             break;
@@ -19324,6 +19323,7 @@ virDomainDefParseXML(xmlDocPtr xml,
             }
             break;
 
+        case VIR_DOMAIN_FEATURE_VMCOREINFO:
         case VIR_DOMAIN_FEATURE_HAP:
         case VIR_DOMAIN_FEATURE_PMU:
         case VIR_DOMAIN_FEATURE_PVSPINLOCK:
@@ -26893,7 +26893,6 @@ virDomainDefFormatInternal(virDomainDefPtr def,
             case VIR_DOMAIN_FEATURE_ACPI:
             case VIR_DOMAIN_FEATURE_PAE:
             case VIR_DOMAIN_FEATURE_VIRIDIAN:
-            case VIR_DOMAIN_FEATURE_VMCOREINFO:
             case VIR_DOMAIN_FEATURE_PRIVNET:
                 switch ((virTristateSwitch) def->features[i]) {
                 case VIR_TRISTATE_SWITCH_ABSENT:
@@ -26914,6 +26913,7 @@ virDomainDefFormatInternal(virDomainDefPtr def,
 
                 break;
 
+            case VIR_DOMAIN_FEATURE_VMCOREINFO:
             case VIR_DOMAIN_FEATURE_HAP:
             case VIR_DOMAIN_FEATURE_PMU:
             case VIR_DOMAIN_FEATURE_PVSPINLOCK:
index d0cd2f2ce99f111eb50ff883c78c95106a55498b..48b75d7d44d6a309163c075c91e8ed29c7f242d7 100644 (file)
@@ -9,7 +9,7 @@
     <boot dev='hd'/>
   </os>
   <features>
-    <vmcoreinfo/>
+    <vmcoreinfo state='on'/>
   </features>
   <clock offset='utc'/>
   <on_poweroff>destroy</on_poweroff>