]> xenbits.xensource.com Git - libvirt.git/commitdiff
schema: do not require name for certain pool types
authorJán Tomko <jtomko@redhat.com>
Tue, 28 Mar 2017 13:07:50 +0000 (15:07 +0200)
committerJán Tomko <jtomko@redhat.com>
Wed, 29 Mar 2017 08:36:55 +0000 (10:36 +0200)
Pool types that have the VIR_STORAGE_POOL_SOURCE_NAME flag set
allow omitting the <name> element and instead fill out the pool name
from the <source><name> element.

Relax the schema to make <name> optional for these pools.
Expressing that at least one of these is required is out of scope
of the schema.

docs/schemas/storagepool.rng
tests/storagepoolxml2xmlin/pool-logical-noname.xml [new file with mode: 0644]

index 6219ce5afe6567d8ef74b37d381faf8dd8347328..8386f29aa730763fe05eaf59fd4b7abc1a7b7b94 100644 (file)
@@ -70,7 +70,7 @@
       <value>logical</value>
     </attribute>
     <interleave>
-      <ref name='commonmetadata'/>
+      <ref name='commonMetadataNameOptional'/>
       <ref name='sizing'/>
       <ref name='sourcelogical'/>
       <ref name='targetlogical'/>
       <value>rbd</value>
     </attribute>
     <interleave>
-      <ref name='commonmetadata'/>
+      <ref name='commonMetadataNameOptional'/>
       <ref name='sizing'/>
       <ref name='sourcerbd'/>
     </interleave>
       <value>sheepdog</value>
     </attribute>
     <interleave>
-      <ref name='commonmetadata'/>
+      <ref name='commonMetadataNameOptional'/>
       <ref name='sizing'/>
       <ref name='sourcesheepdog'/>
     </interleave>
       <value>gluster</value>
     </attribute>
     <interleave>
-      <ref name='commonmetadata'/>
+      <ref name='commonMetadataNameOptional'/>
       <ref name='sizing'/>
       <ref name='sourcegluster'/>
     </interleave>
       <value>zfs</value>
     </attribute>
     <interleave>
-      <ref name='commonmetadata'/>
+      <ref name='commonMetadataNameOptional'/>
       <ref name='sizing'/>
       <ref name='sourcezfs'/>
       <optional>
       <value>vstorage</value>
     </attribute>
     <interleave>
-      <ref name='commonmetadata'/>
+      <ref name='commonMetadataNameOptional'/>
       <ref name='sizing'/>
       <ref name='sourcevstorage'/>
       <ref name='target'/>
     </interleave>
   </define>
 
+  <define name='commonMetadataNameOptional'>
+    <interleave>
+      <optional>
+        <element name='name'>
+          <ref name='genericName'/>
+        </element>
+      </optional>
+      <optional>
+        <element name='uuid'>
+          <ref name='UUID'/>
+        </element>
+      </optional>
+    </interleave>
+  </define>
+
   <define name='commonmetadata'>
     <interleave>
       <element name='name'>
diff --git a/tests/storagepoolxml2xmlin/pool-logical-noname.xml b/tests/storagepoolxml2xmlin/pool-logical-noname.xml
new file mode 100644 (file)
index 0000000..ad3f88d
--- /dev/null
@@ -0,0 +1,18 @@
+<pool type='logical'>
+  <uuid>1c13165a-d0f4-3aee-b447-30fb38789091</uuid>
+  <capacity>99891544064</capacity>
+  <allocation>99220455424</allocation>
+  <available>671088640</available>
+  <source>
+    <name>zily</name>
+    <format type='lvm2'/>
+  </source>
+  <target>
+    <path>/dev/zily</path>
+    <permissions>
+      <mode>0700</mode>
+      <owner>0</owner>
+      <group>0</group>
+    </permissions>
+  </target>
+</pool>