<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
  <body>
    <h1>Storage Pool Capabilities XML format</h1>

    <ul id="toc"></ul>

    <h2><a id="Overview">Overview</a></h2>

    <p>The Storage Pool Capabilities XML will provide the information
    to determine what types of Storage Pools exist, whether the pool is
    supported, and if relevant the source format types, the required
    source elements, and the target volume format types. </p>

    <p>The Storage Pool Capabilities XML provides more information than the
      <a href="/html/libvirt-libvirt-host.html#virConnectGetCapabilities">
        <code>virConnectGetCapabilities</code>
      </a>
    which only provides an enumerated list of supported pool types.</p>

    <h2><a id="elements">Element and attribute overview</a></h2>

    <p>A query interface was added to the virConnect API's to retrieve the
    XML listing of the set of Storage Pool Capabilities
    (<span class="since">Since 5.2.0</span>):</p>

<pre>
<a href="/html/libvirt-libvirt-domain.html#virConnectGetStoragePoolCapabilities">virConnectGetStoragePoolCapabilities</a>
</pre>

    <p>The root element that emulator capability XML document starts with is
    named <code>storagepoolCapabilities</code>. There will be any number of
    <code>pool</code> child elements with two attributes <code>type</code>
    and <code>supported</code>. Each <code>pool</code> element may have
    a <code>poolOptions</code> or <code>volOptions</code> subelements to
    describe the available features. Sample XML output is:</p>

<pre>
&lt;storagepoolCapabilities&gt;
  &lt;pool type='dir' supported='yes'&gt;
    &lt;volOptions&gt;
      &lt;defaultFormat type='raw'&lt;/&gt;
      &lt;enum name='targetFormatType'&gt;
        &lt;value&gt;none&lt;/value&gt;
        &lt;value&gt;raw&lt;/value&gt;
        ...
      &lt;/enum&gt;
    &lt;/volOptions&gt;
  &lt;/pool&gt;
  &lt;pool type='fs' supported='yes'&gt;
    &lt;poolOptions&gt;
      &lt;defaultFormat type='auto'&lt;/&gt;
      &lt;enum name='sourceFormatType'&gt;
        &lt;value&gt;auto&lt;/value&gt;
        &lt;value&gt;ext2&lt;/value&gt;
        ...
      &lt;/enum&gt;
    &lt;/poolOptions&gt;
    &lt;volOptions&gt;
      &lt;defaultFormat type='raw'&lt;/&gt;
      &lt;enum name='targetFormatType'&gt;
        &lt;value&gt;none&lt;/value&gt;
        &lt;value&gt;raw&lt;/value&gt;
        ...
      &lt;/enum&gt;
    &lt;/volOptions&gt;
  &lt;/pool&gt;
  ...
&lt;/storagepoolCapabilities&gt;
</pre>

    <p>The following section decribes subelements of the
    <code>poolOptions</code> and <code>volOptions</code> subelements </p>:

    <dl>
      <dt><code>defaultFormat</code></dt>
      <dd>For the <code>poolOptions</code>, the <code>type</code> attribute
      describes the default format name used for the pool source. For the
      <code>volOptions</code>, the <code>type</code> attribute describes
      the default volume name used for each volume.
      </dd>
      <dl>
        <dt><code>enum</code></dt>
        <dd>Each enum uses a name from the list below with any number of
        <code>value</code> value subelements describing the valid values.
          <dl>
            <dt><code>sourceFormatType</code></dt>
            <dd>Lists all the possible <code>poolOptions</code> source
            pool format types.
            </dd>
            <dt><code>targetFormatType</code></dt>
            <dd>Lists all the possible <code>volOptions</code> target volume
            format types.
            </dd>
          </dl>
        </dd>
      </dl>
    </dl>
  </body>
</html>
