mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-03 11:35:19 +00:00
docs,rng: Adjust storage pool name grammar checks
https://bugzilla.redhat.com/show_bug.cgi?id=1475250 It's possible to define and start a pool with a '.' in the name; however, when trying to add a volume to a domain using the storage pool source with a '.' in the storage pool name, the domain RNG validation fails because RNG uses 'genericName' which does not allow a '.' in the name. Domain XML def parsing has a virXMLValidateAgainstSchema which generates the error. The Storage Pool XML def parsing has no call to virXMLValidateAgainstSchema. The only Storage Pool name validation occurs in virStoragePoolDefParseXML to ensure the name doesn't have a '/' in it and in storagePoolDefineXML to call virXMLCheckIllegalChars using the same parameter "\n" as qemuDomainDefineXMLFlags would check after the RNG check could be succesful. In order to resolve this, create a poolName definition in storagecommon.rng that will mimic the domain name regex that disallows a newline character, but add the "/" in the exclude list. Then modify the pool and volume source name definitions to key off that poolName.
This commit is contained in:
parent
41b28943da
commit
5d7659027f
@ -1674,7 +1674,7 @@
|
||||
<optional>
|
||||
<element name="source">
|
||||
<attribute name="pool">
|
||||
<ref name="genericName"/>
|
||||
<ref name="poolName"/>
|
||||
</attribute>
|
||||
<attribute name="volume">
|
||||
<ref name="volName"/>
|
||||
|
@ -6,6 +6,14 @@
|
||||
<!-- This schema is not designed for standalone use; another file
|
||||
must include both this file and basictypes.rng -->
|
||||
|
||||
<define name="poolName">
|
||||
<data type="string">
|
||||
<!-- Use literal newline instead of \n for bug in libxml2 2.7.6 -->
|
||||
<param name="pattern">[^/
|
||||
]+</param>
|
||||
</data>
|
||||
</define>
|
||||
|
||||
<define name='encryption'>
|
||||
<element name='encryption'>
|
||||
<attribute name='format'>
|
||||
|
@ -209,7 +209,7 @@
|
||||
<interleave>
|
||||
<optional>
|
||||
<element name='name'>
|
||||
<ref name='genericName'/>
|
||||
<ref name='poolName'/>
|
||||
</element>
|
||||
</optional>
|
||||
<optional>
|
||||
@ -223,7 +223,7 @@
|
||||
<define name='commonmetadata'>
|
||||
<interleave>
|
||||
<element name='name'>
|
||||
<ref name='genericName'/>
|
||||
<ref name='poolName'/>
|
||||
</element>
|
||||
<optional>
|
||||
<element name='uuid'>
|
||||
|
Loading…
Reference in New Issue
Block a user