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 pool. Expressing that at least one of these is required is out of scope of the schema.~ --- docs/schemas/storagepool.rng | 27 +++++++++++++++++----- tests/storagepoolxml2xmlin/pool-logical-noname.xml | 18 +++++++++++++++ 2 files changed, 39 insertions(+), 6 deletions(-) create mode 100644 tests/storagepoolxml2xmlin/pool-logical-noname.xml diff --git a/docs/schemas/storagepool.rng b/docs/schemas/storagepool.rng index 6219ce5..8386f29 100644 --- a/docs/schemas/storagepool.rng +++ b/docs/schemas/storagepool.rng @@ -70,7 +70,7 @@ <value>logical</value> </attribute> <interleave> - <ref name='commonmetadata'/> + <ref name='commonMetadataNameOptional'/> <ref name='sizing'/> <ref name='sourcelogical'/> <ref name='targetlogical'/> @@ -132,7 +132,7 @@ <value>rbd</value> </attribute> <interleave> - <ref name='commonmetadata'/> + <ref name='commonMetadataNameOptional'/> <ref name='sizing'/> <ref name='sourcerbd'/> </interleave> @@ -143,7 +143,7 @@ <value>sheepdog</value> </attribute> <interleave> - <ref name='commonmetadata'/> + <ref name='commonMetadataNameOptional'/> <ref name='sizing'/> <ref name='sourcesheepdog'/> </interleave> @@ -154,7 +154,7 @@ <value>gluster</value> </attribute> <interleave> - <ref name='commonmetadata'/> + <ref name='commonMetadataNameOptional'/> <ref name='sizing'/> <ref name='sourcegluster'/> </interleave> @@ -165,7 +165,7 @@ <value>zfs</value> </attribute> <interleave> - <ref name='commonmetadata'/> + <ref name='commonMetadataNameOptional'/> <ref name='sizing'/> <ref name='sourcezfs'/> <optional> @@ -179,7 +179,7 @@ <value>vstorage</value> </attribute> <interleave> - <ref name='commonmetadata'/> + <ref name='commonMetadataNameOptional'/> <ref name='sizing'/> <ref name='sourcevstorage'/> <ref name='target'/> @@ -205,6 +205,21 @@ </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 index 0000000..ad3f88d --- /dev/null +++ b/tests/storagepoolxml2xmlin/pool-logical-noname.xml @@ -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> -- 2.10.2 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list