[libvirt] [PATCHv4 33/51] snapshot: update rng to support full domain in xml

Eric Blake eblake at redhat.com
Fri Sep 2 04:25:10 UTC 2011


* docs/schemas/domain.rng: Move guts...
* docs/schemas/domaincommon.rng: ...to new file.
* docs/schemas/domainsnapshot.rng: Allow new xml.
* docs/schemas/Makefile.am (schema_DATA): Distribute new file.
* tests/domainsnapshotxml2xmlout/full_domain.xml: New test.
---

Email was post-processed (again).

 docs/schemas/Makefile.am                       |    1 +
 docs/schemas/domain.rng                        | 2555 +-----------------------
 docs/schemas/{domain.rng => domaincommon.rng}  |    8 +-
 docs/schemas/domainsnapshot.rng                |   14 +-
 tests/domainsnapshotxml2xmlout/full_domain.xml |   35 +
 5 files changed, 49 insertions(+), 2564 deletions(-)
 copy docs/schemas/{domain.rng => domaincommon.rng} (99%)
 create mode 100644 tests/domainsnapshotxml2xmlout/full_domain.xml

diff --git a/docs/schemas/Makefile.am b/docs/schemas/Makefile.am
index 596c207..4413d9e 100644
--- a/docs/schemas/Makefile.am
+++ b/docs/schemas/Makefile.am
@@ -6,6 +6,7 @@ schema_DATA = \
 	basictypes.rng \
 	capability.rng \
 	domain.rng \
+	domaincommon.rng \
 	domainsnapshot.rng \
 	interface.rng \
 	network.rng \
diff --git a/docs/schemas/domain.rng b/docs/schemas/domain.rng
index dd8c41a..cf0be68 100644
--- a/docs/schemas/domain.rng
+++ b/docs/schemas/domain.rng
@@ -5,2 +5,2 @@
     <ref name="domain"/>
   </start>

-  <include href='basictypes.rng'/>
-  <include href='storageencryption.rng'/>
-  <include href='networkcommon.rng'/>
-
-  <!--
-    description element, maybe placed anywhere under the root
...
-      <param name="pattern">[a-zA-Z0-9_\.:]+</param>
-    </data>
-  </define>
+  <include href='domaincommon.rng'/>
 </grammar>
diff --git a/docs/schemas/domain.rng b/docs/schemas/domaincommon.rng
similarity index 99%
copy from docs/schemas/domain.rng
copy to docs/schemas/domaincommon.rng
index dd8c41a..756e892 100644
--- a/docs/schemas/domain.rng
+++ b/docs/schemas/domaincommon.rng
@@ -1,16 +1,12 @@
 <?xml version="1.0"?>
 <grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
-  <!-- We handle only document defining a domain -->
-  <start>
-    <ref name="domain"/>
-  </start>
-
+  <!-- domain-related definitions used in multiple grammars -->
   <include href='basictypes.rng'/>
   <include href='storageencryption.rng'/>
   <include href='networkcommon.rng'/>

   <!--
-    description element, maybe placed anywhere under the root
+    description element, may be placed anywhere under the root
     -->
   <define name="description">
     <element name="description">
diff --git a/docs/schemas/domainsnapshot.rng b/docs/schemas/domainsnapshot.rng
index 410833f..a16d731 100644
--- a/docs/schemas/domainsnapshot.rng
+++ b/docs/schemas/domainsnapshot.rng
@@ -1,9 +1,12 @@
+<?xml version="1.0"?>
 <!-- A Relax NG schema for the libvirt domain snapshot properties XML format -->
 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   <start>
     <ref name='domainsnapshot'/>
   </start>

+  <include href='domaincommon.rng'/>
+
   <define name='domainsnapshot'>
     <element name='domainsnapshot'>
       <interleave>
@@ -36,11 +39,14 @@
           </element>
         </optional>
         <optional>
-          <element name='domain'>
-            <element name='uuid'>
-              <text/>
+          <choice>
+            <element name='domain'>
+              <element name='uuid'>
+                <ref name="UUID"/>
+              </element>
             </element>
-          </element>
+            <ref name='domain'/>
+          </choice>
         </optional>
         <optional>
           <element name='parent'>
diff --git a/tests/domainsnapshotxml2xmlout/full_domain.xml b/tests/domainsnapshotxml2xmlout/full_domain.xml
new file mode 100644
index 0000000..942bd7f
--- /dev/null
+++ b/tests/domainsnapshotxml2xmlout/full_domain.xml
@@ -0,0 +1,35 @@
+<domainsnapshot>
+  <name>my snap name</name>
+  <description>!@#$%^</description>
+  <parent>
+    <name>earlier_snap</name>
+  </parent>
+  <state>running</state>
+  <creationTime>1272917631</creationTime>
+<domain type='qemu'>
+  <name>QEMUGuest1</name>
+  <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
+  <memory>219100</memory>
+  <currentMemory>219100</currentMemory>
+  <vcpu cpuset='1-4,8-20,525'>1</vcpu>
+  <os>
+    <type arch='i686' machine='pc'>hvm</type>
+    <boot dev='hd'/>
+  </os>
+  <clock offset='utc'/>
+  <on_poweroff>destroy</on_poweroff>
+  <on_reboot>restart</on_reboot>
+  <on_crash>destroy</on_crash>
+  <devices>
+    <emulator>/usr/bin/qemu</emulator>
+    <disk type='block' device='disk'>
+      <source dev='/dev/HostVG/QEMUGuest1'/>
+      <target dev='hda' bus='ide'/>
+      <address type='drive' controller='0' bus='0' unit='0'/>
+    </disk>
+    <controller type='ide' index='0'/>
+    <memballoon model='virtio'/>
+  </devices>
+</domain>
+  <active>1</active>
+</domainsnapshot>
-- 
1.7.4.4




More information about the libvir-list mailing list