]> xenbits.xensource.com Git - libvirt.git/commit
docs,rng: Adjust storage pool name grammar checks
authorJohn Ferlan <jferlan@redhat.com>
Tue, 3 Oct 2017 11:14:04 +0000 (07:14 -0400)
committerJohn Ferlan <jferlan@redhat.com>
Thu, 5 Oct 2017 12:10:46 +0000 (08:10 -0400)
commit5d7659027fdc34a042af3094d3d02a0d823272c2
treef2ff9e8b68de315bff10ee0316d63de07d1f209a
parent41b28943da6162e20b3d89be9d2def93a370aefb
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.
docs/schemas/domaincommon.rng
docs/schemas/storagecommon.rng
docs/schemas/storagepool.rng