mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-09-19 14:10:58 +00:00
eb0d79c64b
The existing 'chap' XML logic was never used - just defined. Rather than try to insert a square peg into a round hole, blow it up and rewrite the logic to follow the 'ceph' format. Remove the former "chap.login" and "chap.passwd" fields and replace with "chap.username" and "chap.secret" in _virStoragePoolAuthChap. Adjust the virStoragePoolDefParseAuthChap() to process. Change the rng file to describe the new layout Update the formatstorage.html to describe the usage of the secret element to mention that the secret type "iscsi" and "ceph" can be used to storage pool too. Update the formatsecret.html to include a reference to the storage pool Update tests to handle the changes from 'login' and 'passwd' to 'username' and '<secret>' format
506 lines
11 KiB
XML
506 lines
11 KiB
XML
<?xml version="1.0"?>
|
|
<!-- A Relax NG schema for the libvirt storage pool XML format -->
|
|
<grammar xmlns="http://relaxng.org/ns/structure/1.0"
|
|
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
|
<include href='basictypes.rng'/>
|
|
<start>
|
|
<ref name='pool'/>
|
|
</start>
|
|
|
|
|
|
<define name='pool'>
|
|
<element name='pool'>
|
|
<choice>
|
|
<ref name='pooldir'/>
|
|
<ref name='poolfs'/>
|
|
<ref name='poolnetfs'/>
|
|
<ref name='poollogical'/>
|
|
<ref name='pooldisk'/>
|
|
<ref name='pooliscsi'/>
|
|
<ref name='poolscsi'/>
|
|
<ref name='poolmpath'/>
|
|
<ref name='poolrbd'/>
|
|
<ref name='poolsheepdog'/>
|
|
</choice>
|
|
</element>
|
|
</define>
|
|
|
|
<define name='pooldir'>
|
|
<attribute name='type'>
|
|
<value>dir</value>
|
|
</attribute>
|
|
<ref name='commonmetadata'/>
|
|
<ref name='sizing'/>
|
|
<ref name='sourcedir'/>
|
|
<ref name='target'/>
|
|
</define>
|
|
|
|
<define name='poolfs'>
|
|
<attribute name='type'>
|
|
<value>fs</value>
|
|
</attribute>
|
|
<ref name='commonmetadata'/>
|
|
<ref name='sizing'/>
|
|
<ref name='sourcefs'/>
|
|
<ref name='target'/>
|
|
</define>
|
|
|
|
<define name='poolnetfs'>
|
|
<attribute name='type'>
|
|
<value>netfs</value>
|
|
</attribute>
|
|
<ref name='commonmetadata'/>
|
|
<ref name='sizing'/>
|
|
<ref name='sourcenetfs'/>
|
|
<ref name='target'/>
|
|
</define>
|
|
|
|
<define name='poollogical'>
|
|
<attribute name='type'>
|
|
<value>logical</value>
|
|
</attribute>
|
|
<ref name='commonmetadata'/>
|
|
<ref name='sizing'/>
|
|
<ref name='sourcelogical'/>
|
|
<ref name='target'/>
|
|
</define>
|
|
|
|
<define name='pooldisk'>
|
|
<attribute name='type'>
|
|
<value>disk</value>
|
|
</attribute>
|
|
<ref name='commonmetadata'/>
|
|
<ref name='sizing'/>
|
|
<ref name='sourcedisk'/>
|
|
<ref name='target'/>
|
|
</define>
|
|
|
|
<define name='pooliscsi'>
|
|
<attribute name='type'>
|
|
<value>iscsi</value>
|
|
</attribute>
|
|
<ref name='commonmetadata'/>
|
|
<ref name='sizing'/>
|
|
<ref name='sourceiscsi'/>
|
|
<ref name='target'/>
|
|
</define>
|
|
|
|
<define name='poolscsi'>
|
|
<attribute name='type'>
|
|
<value>scsi</value>
|
|
</attribute>
|
|
<ref name='commonmetadata'/>
|
|
<ref name='sizing'/>
|
|
<ref name='sourcescsi'/>
|
|
<ref name='target'/>
|
|
</define>
|
|
|
|
<define name='poolmpath'>
|
|
<attribute name='type'>
|
|
<value>mpath</value>
|
|
</attribute>
|
|
<ref name='commonmetadata'/>
|
|
<ref name='sizing'/>
|
|
<optional>
|
|
<ref name='sourcempath'/>
|
|
</optional>
|
|
<ref name='target'/>
|
|
</define>
|
|
|
|
<define name='poolrbd'>
|
|
<attribute name='type'>
|
|
<value>rbd</value>
|
|
</attribute>
|
|
<ref name='commonmetadata'/>
|
|
<ref name='sizing'/>
|
|
<ref name='sourcerbd'/>
|
|
</define>
|
|
|
|
<define name='poolsheepdog'>
|
|
<attribute name='type'>
|
|
<value>sheepdog</value>
|
|
</attribute>
|
|
<ref name='commonmetadata'/>
|
|
<ref name='sizing'/>
|
|
<ref name='sourcesheepdog'/>
|
|
</define>
|
|
|
|
<define name='sourceinfovendor'>
|
|
<optional>
|
|
<element name='vendor'>
|
|
<attribute name='name'>
|
|
<text/>
|
|
</attribute>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name='product'>
|
|
<attribute name='name'>
|
|
<text/>
|
|
</attribute>
|
|
</element>
|
|
</optional>
|
|
</define>
|
|
|
|
<define name='commonmetadata'>
|
|
<element name='name'>
|
|
<ref name='genericName'/>
|
|
</element>
|
|
<optional>
|
|
<element name='uuid'>
|
|
<ref name='UUID'/>
|
|
</element>
|
|
</optional>
|
|
</define>
|
|
|
|
<define name='sizing'>
|
|
<optional>
|
|
<element name='capacity'>
|
|
<ref name='scaledInteger'/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name='allocation'>
|
|
<ref name='scaledInteger'/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name='available'>
|
|
<ref name='scaledInteger'/>
|
|
</element>
|
|
</optional>
|
|
</define>
|
|
|
|
<define name='permissions'>
|
|
<optional>
|
|
<element name='permissions'>
|
|
<element name='mode'>
|
|
<ref name='octalMode'/>
|
|
</element>
|
|
<element name='owner'>
|
|
<choice>
|
|
<ref name='unsignedInt'/>
|
|
<value>-1</value>
|
|
</choice>
|
|
</element>
|
|
<element name='group'>
|
|
<choice>
|
|
<ref name='unsignedInt'/>
|
|
<value>-1</value>
|
|
</choice>
|
|
</element>
|
|
<optional>
|
|
<element name='label'>
|
|
<text/>
|
|
</element>
|
|
</optional>
|
|
</element>
|
|
</optional>
|
|
</define>
|
|
|
|
<define name='target'>
|
|
<element name='target'>
|
|
<element name='path'>
|
|
<ref name='absFilePath'/>
|
|
</element>
|
|
<ref name='permissions'/>
|
|
</element>
|
|
</define>
|
|
|
|
<define name='sourceinfohost'>
|
|
<oneOrMore>
|
|
<element name='host'>
|
|
<attribute name='name'>
|
|
<text/>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name='port'>
|
|
<ref name="PortNumber"/>
|
|
</attribute>
|
|
</optional>
|
|
<empty/>
|
|
</element>
|
|
</oneOrMore>
|
|
</define>
|
|
|
|
<define name='sourceinfodev'>
|
|
<element name='device'>
|
|
<attribute name='path'>
|
|
<choice>
|
|
<ref name='absFilePath'/>
|
|
<ref name='genericName'/>
|
|
<ref name='IscsiQualifiedName'/>
|
|
</choice>
|
|
</attribute>
|
|
<choice>
|
|
<empty/>
|
|
<ref name='devextents'/>
|
|
</choice>
|
|
</element>
|
|
</define>
|
|
|
|
<define name='initiatorinfo'>
|
|
<element name='initiator'>
|
|
<element name='iqn'>
|
|
<attribute name='name'>
|
|
<text/>
|
|
</attribute>
|
|
<empty/>
|
|
</element>
|
|
</element>
|
|
</define>
|
|
|
|
<define name='devextents'>
|
|
<oneOrMore>
|
|
<element name='freeExtent'>
|
|
<attribute name='start'>
|
|
<ref name='unsignedLong'/>
|
|
</attribute>
|
|
<attribute name='end'>
|
|
<ref name='unsignedLong'/>
|
|
</attribute>
|
|
</element>
|
|
</oneOrMore>
|
|
</define>
|
|
|
|
<define name='sourceinfodir'>
|
|
<element name='dir'>
|
|
<attribute name='path'>
|
|
<ref name='absFilePath'/>
|
|
</attribute>
|
|
<empty/>
|
|
</element>
|
|
</define>
|
|
|
|
<define name='sourceinfoname'>
|
|
<element name='name'>
|
|
<text/>
|
|
</element>
|
|
</define>
|
|
|
|
<define name='sourceinfoauth'>
|
|
<element name='auth'>
|
|
<attribute name='type'>
|
|
<choice>
|
|
<value>chap</value>
|
|
<value>ceph</value>
|
|
</choice>
|
|
</attribute>
|
|
<attribute name='username'>
|
|
<text/>
|
|
</attribute>
|
|
<ref name='sourceinfoauthsecret'/>
|
|
</element>
|
|
</define>
|
|
|
|
<define name='sourceinfoauthsecret'>
|
|
<element name='secret'>
|
|
<choice>
|
|
<attribute name='uuid'>
|
|
<text/>
|
|
</attribute>
|
|
<attribute name='usage'>
|
|
<text/>
|
|
</attribute>
|
|
</choice>
|
|
</element>
|
|
</define>
|
|
|
|
<define name='sourcefmtfs'>
|
|
<optional>
|
|
<element name='format'>
|
|
<attribute name='type'>
|
|
<choice>
|
|
<value>auto</value>
|
|
<value>ext2</value>
|
|
<value>ext3</value>
|
|
<value>ext4</value>
|
|
<value>ufs</value>
|
|
<value>iso9660</value>
|
|
<value>udf</value>
|
|
<value>gfs</value>
|
|
<value>gfs2</value>
|
|
<value>vfat</value>
|
|
<value>hfs+</value>
|
|
<value>xfs</value>
|
|
<value>ocfs2</value>
|
|
</choice>
|
|
</attribute>
|
|
</element>
|
|
</optional>
|
|
</define>
|
|
|
|
|
|
<define name='sourcefmtnetfs'>
|
|
<optional>
|
|
<element name='format'>
|
|
<attribute name='type'>
|
|
<choice>
|
|
<value>auto</value>
|
|
<value>nfs</value>
|
|
</choice>
|
|
</attribute>
|
|
<optional>
|
|
<ref name='sourceinfovendor'/>
|
|
</optional>
|
|
</element>
|
|
</optional>
|
|
</define>
|
|
|
|
|
|
<define name='sourcefmtdisk'>
|
|
<optional>
|
|
<element name='format'>
|
|
<attribute name='type'>
|
|
<choice>
|
|
<value>none</value>
|
|
<value>dos</value>
|
|
<value>dvh</value>
|
|
<value>gpt</value>
|
|
<value>mac</value>
|
|
<value>bsd</value>
|
|
<value>pc98</value>
|
|
<value>sun</value>
|
|
<value>lvm2</value>
|
|
</choice>
|
|
</attribute>
|
|
<optional>
|
|
<ref name='sourceinfovendor'/>
|
|
</optional>
|
|
</element>
|
|
</optional>
|
|
</define>
|
|
|
|
|
|
<define name='sourcefmtlogical'>
|
|
<optional>
|
|
<element name='format'>
|
|
<attribute name='type'>
|
|
<choice>
|
|
<value>auto</value>
|
|
<value>lvm2</value>
|
|
</choice>
|
|
</attribute>
|
|
<optional>
|
|
<ref name='sourceinfovendor'/>
|
|
</optional>
|
|
</element>
|
|
</optional>
|
|
</define>
|
|
|
|
|
|
<define name='sourcedir'>
|
|
<optional>
|
|
<element name='source'>
|
|
<empty/>
|
|
<optional>
|
|
<ref name='sourceinfovendor'/>
|
|
</optional>
|
|
</element>
|
|
</optional>
|
|
</define>
|
|
|
|
<define name='sourcefs'>
|
|
<element name='source'>
|
|
<ref name='sourceinfodev'/>
|
|
<ref name='sourcefmtfs'/>
|
|
<optional>
|
|
<ref name='sourceinfovendor'/>
|
|
</optional>
|
|
</element>
|
|
</define>
|
|
|
|
<define name='sourcenetfs'>
|
|
<element name='source'>
|
|
<ref name='sourceinfohost'/>
|
|
<ref name='sourceinfodir'/>
|
|
<ref name='sourcefmtnetfs'/>
|
|
<optional>
|
|
<ref name='sourceinfovendor'/>
|
|
</optional>
|
|
</element>
|
|
</define>
|
|
|
|
<define name='sourcelogical'>
|
|
<element name='source'>
|
|
<oneOrMore>
|
|
<optional>
|
|
<ref name='sourceinfoname'/>
|
|
</optional>
|
|
<optional>
|
|
<ref name='sourceinfodev'/>
|
|
</optional>
|
|
</oneOrMore>
|
|
<ref name='sourcefmtlogical'/>
|
|
<optional>
|
|
<ref name='sourceinfovendor'/>
|
|
</optional>
|
|
</element>
|
|
</define>
|
|
|
|
<define name='sourcedisk'>
|
|
<element name='source'>
|
|
<ref name='sourceinfodev'/>
|
|
<ref name='sourcefmtdisk'/>
|
|
<optional>
|
|
<ref name='sourceinfovendor'/>
|
|
</optional>
|
|
</element>
|
|
</define>
|
|
|
|
<define name='sourceiscsi'>
|
|
<element name='source'>
|
|
<ref name='sourceinfohost'/>
|
|
<ref name='sourceinfodev'/>
|
|
<optional>
|
|
<ref name='initiatorinfo'/>
|
|
</optional>
|
|
<optional>
|
|
<ref name='sourceinfoauth'/>
|
|
</optional>
|
|
<optional>
|
|
<ref name='sourceinfovendor'/>
|
|
</optional>
|
|
</element>
|
|
</define>
|
|
|
|
<define name='sourcescsi'>
|
|
<element name='source'>
|
|
<ref name='sourceinfoadapter'/>
|
|
<optional>
|
|
<ref name='sourceinfovendor'/>
|
|
</optional>
|
|
</element>
|
|
</define>
|
|
|
|
<define name='sourcempath'>
|
|
<element name='source'>
|
|
<empty/>
|
|
</element>
|
|
</define>
|
|
|
|
<define name='sourcerbd'>
|
|
<element name='source'>
|
|
<ref name='sourceinfoname'/>
|
|
<ref name='sourceinfohost'/>
|
|
<optional>
|
|
<ref name='sourceinfoauth'/>
|
|
</optional>
|
|
</element>
|
|
</define>
|
|
|
|
<define name='sourcesheepdog'>
|
|
<element name='source'>
|
|
<ref name='sourceinfohost'/>
|
|
<ref name='sourceinfoname'/>
|
|
</element>
|
|
</define>
|
|
|
|
<define name='IscsiQualifiedName'>
|
|
<data type='string'>
|
|
<param name="pattern">iqn\.[0-9]{4}-(0[1-9]|1[0-2])\.[a-zA-Z0-9\.\-]+(:.+)?</param>
|
|
</data>
|
|
</define>
|
|
|
|
</grammar>
|