summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorGuido Günther <agx@sigxcpu.org>2015-08-10 16:47:00 +0200
committerGuido Günther <agx@sigxcpu.org>2015-08-10 16:47:00 +0200
commit18ffe0c1a1c126557a5788edcbc8b89dd9990604 (patch)
tree6c2a12a8b4864f7d6b2dd59dd8fa5b4f467fadfc /docs
parent56eac6ed13d62b257d56575432dff7ad00e0c235 (diff)
New upstream version 1.2.18
Diffstat (limited to 'docs')
-rw-r--r--docs/Makefile.in1
-rwxr-xr-xdocs/apibuild.py1
-rw-r--r--docs/devhelp/libvirt-virterror.html1
-rw-r--r--docs/devhelp/libvirt.devhelp1
-rw-r--r--docs/drvbhyve.html28
-rw-r--r--docs/drvbhyve.html.in28
-rw-r--r--docs/formatdomain.html24
-rw-r--r--docs/formatdomain.html.in24
-rw-r--r--docs/formatnode.html2
-rw-r--r--docs/formatnode.html.in2
-rw-r--r--docs/formatstorage.html2
-rw-r--r--docs/formatstorage.html.in2
-rw-r--r--docs/html/libvirt-libvirt-domain-snapshot.html2
-rw-r--r--docs/html/libvirt-virterror.html2
-rw-r--r--docs/hvsupport.html2
-rw-r--r--docs/hvsupport.html.in2
-rw-r--r--docs/libvirt-api.xml4
-rw-r--r--docs/libvirt-refs.xml7
-rw-r--r--docs/news.html581
-rw-r--r--docs/news.html.in606
-rw-r--r--docs/schemas/Makefile.in1
-rw-r--r--docs/search.php5
-rw-r--r--docs/search.php.code.in5
-rw-r--r--docs/storage.html3
-rw-r--r--docs/storage.html.in3
25 files changed, 1306 insertions, 33 deletions
diff --git a/docs/Makefile.in b/docs/Makefile.in
index 282f089dd..983c42a88 100644
--- a/docs/Makefile.in
+++ b/docs/Makefile.in
@@ -226,6 +226,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
$(top_srcdir)/m4/virt-compile-warnings.m4 \
$(top_srcdir)/m4/virt-curl.m4 $(top_srcdir)/m4/virt-dbus.m4 \
$(top_srcdir)/m4/virt-driver-bhyve.m4 \
+ $(top_srcdir)/m4/virt-driver-vz.m4 \
$(top_srcdir)/m4/virt-fuse.m4 $(top_srcdir)/m4/virt-gluster.m4 \
$(top_srcdir)/m4/virt-hal.m4 $(top_srcdir)/m4/virt-lib.m4 \
$(top_srcdir)/m4/virt-linker-no-indirect.m4 \
diff --git a/docs/apibuild.py b/docs/apibuild.py
index 69f991ddd..f934fb20e 100755
--- a/docs/apibuild.py
+++ b/docs/apibuild.py
@@ -102,6 +102,7 @@ ignored_functions = {
"virDomainMigratePrepare3Params": "private function for migration",
"virDomainMigrateConfirm3Params": "private function for migration",
"virDomainMigratePrepareTunnel3Params": "private function for tunnelled migration",
+ "virErrorCopyNew": "private",
}
ignored_macros = {
diff --git a/docs/devhelp/libvirt-virterror.html b/docs/devhelp/libvirt-virterror.html
index 844ca4bbf..c31c2246c 100644
--- a/docs/devhelp/libvirt-virterror.html
+++ b/docs/devhelp/libvirt-virterror.html
@@ -253,6 +253,7 @@ void <a href="#virSetErrorFunc">virSetErrorFunc</a> (void * userData, <br/>
<a name="VIR_ERR_STORAGE_VOL_EXIST">VIR_ERR_STORAGE_VOL_EXIST</a> = 90 /* the storage vol already exists */
<a name="VIR_ERR_CPU_INCOMPATIBLE">VIR_ERR_CPU_INCOMPATIBLE</a> = 91 /* given CPU is incompatible with host CP */
<a name="VIR_ERR_XML_INVALID_SCHEMA">VIR_ERR_XML_INVALID_SCHEMA</a> = 92 /* XML document doesn't validate against schema */
+ <a name="VIR_ERR_MIGRATE_FINISH_OK">VIR_ERR_MIGRATE_FINISH_OK</a> = 93 /* Finish API succeeded but it is expected to return NULL */
};
</pre><p/>
</div>
diff --git a/docs/devhelp/libvirt.devhelp b/docs/devhelp/libvirt.devhelp
index 6fd6a2886..b84874ff2 100644
--- a/docs/devhelp/libvirt.devhelp
+++ b/docs/devhelp/libvirt.devhelp
@@ -709,6 +709,7 @@
<function name="VIR_ERR_INVALID_STORAGE_POOL" link="libvirt-virterror.html#VIR_ERR_INVALID_STORAGE_POOL"/>
<function name="VIR_ERR_INVALID_STORAGE_VOL" link="libvirt-virterror.html#VIR_ERR_INVALID_STORAGE_VOL"/>
<function name="VIR_ERR_INVALID_STREAM" link="libvirt-virterror.html#VIR_ERR_INVALID_STREAM"/>
+ <function name="VIR_ERR_MIGRATE_FINISH_OK" link="libvirt-virterror.html#VIR_ERR_MIGRATE_FINISH_OK"/>
<function name="VIR_ERR_MIGRATE_PERSIST_FAILED" link="libvirt-virterror.html#VIR_ERR_MIGRATE_PERSIST_FAILED"/>
<function name="VIR_ERR_MIGRATE_UNSAFE" link="libvirt-virterror.html#VIR_ERR_MIGRATE_UNSAFE"/>
<function name="VIR_ERR_MULTIPLE_INTERFACES" link="libvirt-virterror.html#VIR_ERR_MULTIPLE_INTERFACES"/>
diff --git a/docs/drvbhyve.html b/docs/drvbhyve.html
index ab2ed55e4..bf41e874b 100644
--- a/docs/drvbhyve.html
+++ b/docs/drvbhyve.html
@@ -196,6 +196,8 @@
<a href="#zfsvolume">Using ZFS volumes</a>
</li><li>
<a href="#grubbhyve">Using grub2-bhyve or Alternative Bootloaders</a>
+ </li><li>
+ <a href="#clockconfig">Clock configuration</a>
</li></ul>
</li></ul>
<p>
@@ -426,6 +428,32 @@ attempt to boot from the first partition in the disk image.</p>
</pre>
<p>Caveat: <code>bootloader_args</code> does not support any quoting.
Filenames, etc, must not have spaces or they will be tokenized incorrectly.</p>
+ <h3>
+ <a name="clockconfig" shape="rect" id="clockconfig">Clock configuration</a>
+ <a class="headerlink" href="#clockconfig" title="Permalink to this headline">¶</a>
+ </h3>
+ <p>Originally bhyve supported only localtime for RTC. Support for UTC time was introduced in
+<a href="http://svnweb.freebsd.org/changeset/base/284894" shape="rect">r284894</a> for <i>10-STABLE</i> and
+in <a href="http://svnweb.freebsd.org/changeset/base/279225" shape="rect">r279225</a> for <i>-CURRENT</i>.
+It's possible to use this in libvirt <span class="since">since 1.2.18</span>, just place the
+following to domain XML:</p>
+ <pre xml:space="preserve">
+&lt;domain type="bhyve"&gt;
+ ...
+ &lt;clock offset='utc'/&gt;
+ ...
+&lt;/domain&gt;
+</pre>
+ <p>Please note that if you run the older bhyve version that doesn't support UTC time, you'll
+fail to start a domain. As UTC is used as a default when you do not specify clock settings,
+you'll need to explicitly specify 'localtime' in this case:</p>
+ <pre xml:space="preserve">
+&lt;domain type="bhyve"&gt;
+ ...
+ &lt;clock offset='localtime'/&gt;
+ ...
+&lt;/domain&gt;
+</pre>
</div>
</div>
<div id="footer">
diff --git a/docs/drvbhyve.html.in b/docs/drvbhyve.html.in
index 5479511e4..485b05154 100644
--- a/docs/drvbhyve.html.in
+++ b/docs/drvbhyve.html.in
@@ -250,5 +250,33 @@ attempt to boot from the first partition in the disk image.</p>
<p>Caveat: <code>bootloader_args</code> does not support any quoting.
Filenames, etc, must not have spaces or they will be tokenized incorrectly.</p>
+<h3><a name="clockconfig">Clock configuration</a></h3>
+
+<p>Originally bhyve supported only localtime for RTC. Support for UTC time was introduced in
+<a href="http://svnweb.freebsd.org/changeset/base/284894">r284894</a> for <i>10-STABLE</i> and
+in <a href="http://svnweb.freebsd.org/changeset/base/279225">r279225</a> for <i>-CURRENT</i>.
+It's possible to use this in libvirt <span class="since">since 1.2.18</span>, just place the
+following to domain XML:</p>
+
+<pre>
+&lt;domain type="bhyve"&gt;
+ ...
+ &lt;clock offset='utc'/&gt;
+ ...
+&lt;/domain&gt;
+</pre>
+
+<p>Please note that if you run the older bhyve version that doesn't support UTC time, you'll
+fail to start a domain. As UTC is used as a default when you do not specify clock settings,
+you'll need to explicitly specify 'localtime' in this case:</p>
+
+<pre>
+&lt;domain type="bhyve"&gt;
+ ...
+ &lt;clock offset='localtime'/&gt;
+ ...
+&lt;/domain&gt;
+</pre>
+
</body>
</html>
diff --git a/docs/formatdomain.html b/docs/formatdomain.html
index 5ff3d6146..8342f8f65 100644
--- a/docs/formatdomain.html
+++ b/docs/formatdomain.html
@@ -1935,10 +1935,10 @@
secure than <code>rawio</code>.
</dd><dt><code>sgio</code> attribute
<span class="since">since 1.0.2</span></dt><dd>
- Indicates whether the kernel will filter unprivileged
- SG_IO commands for the disk, valid settings are "filtered" or
- "unfiltered". Defaults to "filtered". Similar to <code>rawio</code>,
- <code>sgio</code> is only valid for device 'lun'.
+ If supported by the hypervisor and OS, indicates whether
+ unprivileged SG_IO commands are filtered for the disk. Valid
+ settings are "filtered" or "unfiltered" where the default is
+ "filtered". Only available when the <code>device</code> is 'lun'.
</dd><dt><code>snapshot</code> attribute
<span class="since">since 0.9.5</span></dt><dd>
Indicates the default behavior of the disk during disk snapshots:
@@ -2692,6 +2692,11 @@
relationship of the companion to its master controller.
A companion controller is on the same bus as its master, so
the companion <code>index</code> value should be equal.
+ Not all controller models can be used as companion controllers
+ and libvirt might provide some sensible defaults (settings
+ of <code>master startport</code> and <code>function</code> of an
+ address) for some particular models.
+ Preferred companion controllers are <code>ich-uhci[123]</code>.
</p>
<pre xml:space="preserve">
...
@@ -2894,11 +2899,12 @@
(or <code>virsh nodedev-reattach</code>) after hot-unplug or
stopping the guest.
</dd><dt>scsi</dt><dd>For SCSI devices, user is responsible to make sure the device
- is not used by host. The optional <code>sgio</code>
- (<span class="since">since 1.0.6</span>) attribute indicates
- whether the kernel will filter unprivileged SG_IO commands for
- the disk, valid settings are "filtered" or "unfiltered".
- The default is "filtered". The optional <code>rawio</code>
+ is not used by host. If supported by the hypervisor and OS, the
+ optional <code>sgio</code> (<span class="since">since 1.0.6</span>)
+ attribute indicates whether unprivileged SG_IO commands are
+ filtered for the disk. Valid settings are "filtered" or
+ "unfiltered", where the default is "filtered".
+ The optional <code>rawio</code>
(<span class="since">since 1.2.9</span>) attribute indicates
whether the lun needs the rawio capability. Valid settings are
"yes" or "no". See the rawio description within the
diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
index ea2fff881..d0c174105 100644
--- a/docs/formatdomain.html.in
+++ b/docs/formatdomain.html.in
@@ -2002,10 +2002,10 @@
<dt><code>sgio</code> attribute
<span class="since">since 1.0.2</span></dt>
<dd>
- Indicates whether the kernel will filter unprivileged
- SG_IO commands for the disk, valid settings are "filtered" or
- "unfiltered". Defaults to "filtered". Similar to <code>rawio</code>,
- <code>sgio</code> is only valid for device 'lun'.
+ If supported by the hypervisor and OS, indicates whether
+ unprivileged SG_IO commands are filtered for the disk. Valid
+ settings are "filtered" or "unfiltered" where the default is
+ "filtered". Only available when the <code>device</code> is 'lun'.
</dd>
<dt><code>snapshot</code> attribute
<span class="since">since 0.9.5</span></dt>
@@ -3005,6 +3005,11 @@
relationship of the companion to its master controller.
A companion controller is on the same bus as its master, so
the companion <code>index</code> value should be equal.
+ Not all controller models can be used as companion controllers
+ and libvirt might provide some sensible defaults (settings
+ of <code>master startport</code> and <code>function</code> of an
+ address) for some particular models.
+ Preferred companion controllers are <code>ich-uhci[123]</code>.
</p>
<pre>
@@ -3232,11 +3237,12 @@
</dd>
<dt>scsi</dt>
<dd>For SCSI devices, user is responsible to make sure the device
- is not used by host. The optional <code>sgio</code>
- (<span class="since">since 1.0.6</span>) attribute indicates
- whether the kernel will filter unprivileged SG_IO commands for
- the disk, valid settings are "filtered" or "unfiltered".
- The default is "filtered". The optional <code>rawio</code>
+ is not used by host. If supported by the hypervisor and OS, the
+ optional <code>sgio</code> (<span class="since">since 1.0.6</span>)
+ attribute indicates whether unprivileged SG_IO commands are
+ filtered for the disk. Valid settings are "filtered" or
+ "unfiltered", where the default is "filtered".
+ The optional <code>rawio</code>
(<span class="since">since 1.2.9</span>) attribute indicates
whether the lun needs the rawio capability. Valid settings are
"yes" or "no". See the rawio description within the
diff --git a/docs/formatnode.html b/docs/formatnode.html
index 3494b6f40..2123b353d 100644
--- a/docs/formatnode.html
+++ b/docs/formatnode.html
@@ -276,7 +276,7 @@
not setting.
</dd><dt><code>feature</code></dt><dd>If present, the hw offloads supported by this network
interface. Possible features are:
- <dl><dt><code>rx</code></dt><dd>rx-checksumming</dd><dt><code>tx</code></dt><dd>tx-checksumming</dd><dt><code>sg</code></dt><dd>scatter-gather</dd><dt><code>tso</code></dt><dd>tcp-segmentation-offload</dd><dt><code>ufo</code></dt><dd>udp-fragmentation-offload</dd><dt><code>gso</code></dt><dd>generic-segmentation-offload</dd><dt><code>gro</code></dt><dd>generic-receive-offload</dd><dt><code>lro</code></dt><dd>large-receive-offload</dd><dt><code>rxvlan</code></dt><dd>rx-vlan-offload</dd><dt><code>txvlan</code></dt><dd>tx-vlan-offload</dd><dt><code>ntuple</code></dt><dd>ntuple-filters</dd><dt><code>rxhash</code></dt><dd>receive-hashing</dd></dl>
+ <dl><dt><code>rx</code></dt><dd>rx-checksumming</dd><dt><code>tx</code></dt><dd>tx-checksumming</dd><dt><code>sg</code></dt><dd>scatter-gather</dd><dt><code>tso</code></dt><dd>tcp-segmentation-offload</dd><dt><code>ufo</code></dt><dd>udp-fragmentation-offload</dd><dt><code>gso</code></dt><dd>generic-segmentation-offload</dd><dt><code>gro</code></dt><dd>generic-receive-offload</dd><dt><code>lro</code></dt><dd>large-receive-offload</dd><dt><code>rxvlan</code></dt><dd>rx-vlan-offload</dd><dt><code>txvlan</code></dt><dd>tx-vlan-offload</dd><dt><code>ntuple</code></dt><dd>ntuple-filters</dd><dt><code>rxhash</code></dt><dd>receive-hashing</dd><dt><code>rdma</code></dt><dd>remote-direct-memory-access</dd><dt><code>txudptnl</code></dt><dd>tx-udp-tunnel-segmentation</dd></dl>
</dd><dt><code>capability</code></dt><dd>A network protocol exposed by the device, where the
attribute <code>type</code> can be "80203" for IEEE
802.3, or "80211" for various flavors of IEEE 802.11.
diff --git a/docs/formatnode.html.in b/docs/formatnode.html.in
index 3ff1bef01..ed00af59d 100644
--- a/docs/formatnode.html.in
+++ b/docs/formatnode.html.in
@@ -199,6 +199,8 @@
<dt><code>txvlan</code></dt><dd>tx-vlan-offload</dd>
<dt><code>ntuple</code></dt><dd>ntuple-filters</dd>
<dt><code>rxhash</code></dt><dd>receive-hashing</dd>
+ <dt><code>rdma</code></dt><dd>remote-direct-memory-access</dd>
+ <dt><code>txudptnl</code></dt><dd>tx-udp-tunnel-segmentation</dd>
</dl>
</dd>
<dt><code>capability</code></dt>
diff --git a/docs/formatstorage.html b/docs/formatstorage.html
index 324098305..bfce1fd74 100644
--- a/docs/formatstorage.html
+++ b/docs/formatstorage.html
@@ -529,6 +529,8 @@
guaranteed stable across reboots, since they are allocated on
demand. It is preferable to use a stable location such as one
of the <code>/dev/disk/by-{path|id|uuid|label}</code> locations.
+ For a Multipath pool (type <code>mpath</code>), the provided
+ value is ignored and the default value of "/dev/mapper" is used.
<span class="since">Since 0.4.1</span>
</dd><dt><code>permissions</code></dt><dd>This is currently only useful for directory or filesystem based
pools, which are mapped as a directory into the local filesystem
diff --git a/docs/formatstorage.html.in b/docs/formatstorage.html.in
index b6f43613e..a60e05e65 100644
--- a/docs/formatstorage.html.in
+++ b/docs/formatstorage.html.in
@@ -401,6 +401,8 @@
guaranteed stable across reboots, since they are allocated on
demand. It is preferable to use a stable location such as one
of the <code>/dev/disk/by-{path|id|uuid|label}</code> locations.
+ For a Multipath pool (type <code>mpath</code>), the provided
+ value is ignored and the default value of "/dev/mapper" is used.
<span class="since">Since 0.4.1</span>
</dd>
<dt><code>permissions</code></dt>
diff --git a/docs/html/libvirt-libvirt-domain-snapshot.html b/docs/html/libvirt-libvirt-domain-snapshot.html
index c5e119640..375fdc3b6 100644
--- a/docs/html/libvirt-libvirt-domain-snapshot.html
+++ b/docs/html/libvirt-libvirt-domain-snapshot.html
@@ -45,7 +45,7 @@
<span class="type">unsigned int</span> flags)</pre><div class="description"><p>Determine if the domain has a current snapshot.</p></div><dl class="variablelist"><dt>domain</dt><dd>pointer to the domain object</dd><dt>flags</dt><dd>extra flags; not used yet, so callers should always pass 0</dd><dt>Returns</dt><dd>1 if such snapshot exists, 0 if it doesn't, -1 on error.</dd></dl><div class="acl"></div><h3><a name="virDomainListAllSnapshots" id="virDomainListAllSnapshots"><code>virDomainListAllSnapshots</code></a><a class="headerlink" href="#virDomainListAllSnapshots" title="Permalink to this headline">¶</a></h3><pre class="api"><span class="type">int</span> virDomainListAllSnapshots (<span class="type"><a href="libvirt-libvirt-domain.html#virDomainPtr">virDomainPtr</a></span> domain,
<span class="type"><a href="libvirt-libvirt-domain-snapshot.html#virDomainSnapshotPtr">virDomainSnapshotPtr</a> **</span> snaps,
<span class="type">unsigned int</span> flags)</pre><div class="description"><p>Collect the list of domain snapshots for the given domain, and allocate an array to store those objects. This API solves the race inherent in <a href="libvirt-libvirt-domain-snapshot.html#virDomainSnapshotListNames">virDomainSnapshotListNames</a>().</p><p>By default, this command covers all snapshots; it is also possible to limit things to just snapshots with no parents, when @flags includes <a href="libvirt-libvirt-domain-snapshot.html#VIR_DOMAIN_SNAPSHOT_LIST_ROOTS">VIR_DOMAIN_SNAPSHOT_LIST_ROOTS</a>. Additional filters are provided in groups, where each group contains bits that describe mutually exclusive attributes of a snapshot, and where all bits within a group describe all possible snapshots. Some hypervisors might reject explicit bits from a group where the hypervisor cannot make a distinction. For a group supported by a given hypervisor, the behavior when no bits of a group are set is identical to the behavior when all bits in that group are set. When setting bits from more than one group, it is possible to select an impossible combination, in that case a hypervisor may return either 0 or an error.</p><p>The first group of @flags is <a href="libvirt-libvirt-domain-snapshot.html#VIR_DOMAIN_SNAPSHOT_LIST_LEAVES">VIR_DOMAIN_SNAPSHOT_LIST_LEAVES</a> and <a href="libvirt-libvirt-domain-snapshot.html#VIR_DOMAIN_SNAPSHOT_LIST_NO_LEAVES">VIR_DOMAIN_SNAPSHOT_LIST_NO_LEAVES</a>, to filter based on snapshots that have no further children (a leaf snapshot).</p><p>The next group of @flags is <a href="libvirt-libvirt-domain-snapshot.html#VIR_DOMAIN_SNAPSHOT_LIST_METADATA">VIR_DOMAIN_SNAPSHOT_LIST_METADATA</a> and <a href="libvirt-libvirt-domain-snapshot.html#VIR_DOMAIN_SNAPSHOT_LIST_NO_METADATA">VIR_DOMAIN_SNAPSHOT_LIST_NO_METADATA</a>, for filtering snapshots based on whether they have metadata that would prevent the removal of the last reference to a domain.</p><p>The next group of @flags is <a href="libvirt-libvirt-domain-snapshot.html#VIR_DOMAIN_SNAPSHOT_LIST_INACTIVE">VIR_DOMAIN_SNAPSHOT_LIST_INACTIVE</a>, <a href="libvirt-libvirt-domain-snapshot.html#VIR_DOMAIN_SNAPSHOT_LIST_ACTIVE">VIR_DOMAIN_SNAPSHOT_LIST_ACTIVE</a>, and <a href="libvirt-libvirt-domain-snapshot.html#VIR_DOMAIN_SNAPSHOT_LIST_DISK_ONLY">VIR_DOMAIN_SNAPSHOT_LIST_DISK_ONLY</a>, for filtering snapshots based on what domain state is tracked by the snapshot.</p><p>The next group of @flags is <a href="libvirt-libvirt-domain-snapshot.html#VIR_DOMAIN_SNAPSHOT_LIST_INTERNAL">VIR_DOMAIN_SNAPSHOT_LIST_INTERNAL</a> and <a href="libvirt-libvirt-domain-snapshot.html#VIR_DOMAIN_SNAPSHOT_LIST_EXTERNAL">VIR_DOMAIN_SNAPSHOT_LIST_EXTERNAL</a>, for filtering snapshots based on whether the snapshot is stored inside the disk images or as additional files.</p></div><dl class="variablelist"><dt>domain</dt><dd>a domain object</dd><dt>snaps</dt><dd>pointer to variable to store the array containing snapshot objects, or NULL if the list is not required (just returns number of snapshots)</dd><dt>flags</dt><dd>bitwise-OR of supported <a href="libvirt-libvirt-domain-snapshot.html#virDomainSnapshotListFlags">virDomainSnapshotListFlags</a></dd><dt>Returns</dt><dd>the number of domain snapshots found or -1 and sets @snaps to NULL in case of error. On success, the array stored into @snaps is guaranteed to have an extra allocated element set to NULL but not included in the return count, to make iteration easier. The caller is responsible for calling <a href="libvirt-libvirt-domain-snapshot.html#virDomainSnapshotFree">virDomainSnapshotFree</a>() on each array element, then calling free() on @snaps.</dd></dl><div class="acl"></div><h3><a name="virDomainRevertToSnapshot" id="virDomainRevertToSnapshot"><code>virDomainRevertToSnapshot</code></a><a class="headerlink" href="#virDomainRevertToSnapshot" title="Permalink to this headline">¶</a></h3><pre class="api"><span class="type">int</span> virDomainRevertToSnapshot (<span class="type"><a href="libvirt-libvirt-domain-snapshot.html#virDomainSnapshotPtr">virDomainSnapshotPtr</a></span> snapshot,
- <span class="type">unsigned int</span> flags)</pre><div class="description"><p>Revert the domain to a given snapshot.</p><p>Normally, the domain will revert to the same state the domain was in while the snapshot was taken (whether inactive, running, or paused), except that disk snapshots default to reverting to inactive state. Including <a href="libvirt-libvirt-domain-snapshot.html#VIR_DOMAIN_SNAPSHOT_REVERT_RUNNING">VIR_DOMAIN_SNAPSHOT_REVERT_RUNNING</a> in @flags overrides the snapshot state to guarantee a running domain after the revert; or including <a href="libvirt-libvirt-domain-snapshot.html#VIR_DOMAIN_SNAPSHOT_REVERT_PAUSED">VIR_DOMAIN_SNAPSHOT_REVERT_PAUSED</a> in @flags guarantees a paused domain after the revert. These two flags are mutually exclusive. While a persistent domain does not need either flag, it is not possible to revert a transient domain into an inactive state, so transient domains require the use of one of these two flags.</p><p>Reverting to any snapshot discards all configuration changes made since the last snapshot. Additionally, reverting to a snapshot from a running domain is a form of data loss, since it discards whatever is in the guest's RAM at the time. Since the very nature of keeping snapshots implies the intent to roll back state, no additional confirmation is normally required for these lossy effects.</p><p>However, there are two particular situations where reverting will be refused by default, and where @flags must include <a href="libvirt-libvirt-domain-snapshot.html#VIR_DOMAIN_SNAPSHOT_REVERT_FORCE">VIR_DOMAIN_SNAPSHOT_REVERT_FORCE</a> to acknowledge the risks. 1) Any attempt to revert to a snapshot that lacks the metadata to perform ABI compatibility checks (generally the case for snapshots that lack a full &lt;domain&gt; when listed by <a href="libvirt-libvirt-domain-snapshot.html#virDomainSnapshotGetXMLDesc">virDomainSnapshotGetXMLDesc</a>(), such as those created prior to libvirt 0.9.5). 2) Any attempt to revert a running domain to an active state that requires starting a new hypervisor instance rather than reusing the existing hypervisor (since this would terminate all connections to the domain, such as such as VNC or Spice graphics) - this condition arises from active snapshots that are provably ABI incomaptible, as well as from inactive snapshots with a @flags request to start the domain after the revert.</p></div><dl class="variablelist"><dt>snapshot</dt><dd>a domain snapshot object</dd><dt>flags</dt><dd>bitwise-OR of <a href="libvirt-libvirt-domain-snapshot.html#virDomainSnapshotRevertFlags">virDomainSnapshotRevertFlags</a></dd><dt>Returns</dt><dd>0 if the creation is successful, -1 on error.</dd></dl><div class="acl"></div><h3><a name="virDomainSnapshotCreateXML" id="virDomainSnapshotCreateXML"><code>virDomainSnapshotCreateXML</code></a><a class="headerlink" href="#virDomainSnapshotCreateXML" title="Permalink to this headline">¶</a></h3><pre class="api"><span class="type"><a href="libvirt-libvirt-domain-snapshot.html#virDomainSnapshotPtr">virDomainSnapshotPtr</a></span> virDomainSnapshotCreateXML (<span class="type"><a href="libvirt-libvirt-domain.html#virDomainPtr">virDomainPtr</a></span> domain,
+ <span class="type">unsigned int</span> flags)</pre><div class="description"><p>Revert the domain to a given snapshot.</p><p>Normally, the domain will revert to the same state the domain was in while the snapshot was taken (whether inactive, running, or paused), except that disk snapshots default to reverting to inactive state. Including <a href="libvirt-libvirt-domain-snapshot.html#VIR_DOMAIN_SNAPSHOT_REVERT_RUNNING">VIR_DOMAIN_SNAPSHOT_REVERT_RUNNING</a> in @flags overrides the snapshot state to guarantee a running domain after the revert; or including <a href="libvirt-libvirt-domain-snapshot.html#VIR_DOMAIN_SNAPSHOT_REVERT_PAUSED">VIR_DOMAIN_SNAPSHOT_REVERT_PAUSED</a> in @flags guarantees a paused domain after the revert. These two flags are mutually exclusive. While a persistent domain does not need either flag, it is not possible to revert a transient domain into an inactive state, so transient domains require the use of one of these two flags.</p><p>Reverting to any snapshot discards all configuration changes made since the last snapshot. Additionally, reverting to a snapshot from a running domain is a form of data loss, since it discards whatever is in the guest's RAM at the time. Since the very nature of keeping snapshots implies the intent to roll back state, no additional confirmation is normally required for these lossy effects.</p><p>However, there are two particular situations where reverting will be refused by default, and where @flags must include <a href="libvirt-libvirt-domain-snapshot.html#VIR_DOMAIN_SNAPSHOT_REVERT_FORCE">VIR_DOMAIN_SNAPSHOT_REVERT_FORCE</a> to acknowledge the risks. 1) Any attempt to revert to a snapshot that lacks the metadata to perform ABI compatibility checks (generally the case for snapshots that lack a full &lt;domain&gt; when listed by <a href="libvirt-libvirt-domain-snapshot.html#virDomainSnapshotGetXMLDesc">virDomainSnapshotGetXMLDesc</a>(), such as those created prior to libvirt 0.9.5). 2) Any attempt to revert a running domain to an active state that requires starting a new hypervisor instance rather than reusing the existing hypervisor (since this would terminate all connections to the domain, such as such as VNC or Spice graphics) - this condition arises from active snapshots that are provably ABI incompatible, as well as from inactive snapshots with a @flags request to start the domain after the revert.</p></div><dl class="variablelist"><dt>snapshot</dt><dd>a domain snapshot object</dd><dt>flags</dt><dd>bitwise-OR of <a href="libvirt-libvirt-domain-snapshot.html#virDomainSnapshotRevertFlags">virDomainSnapshotRevertFlags</a></dd><dt>Returns</dt><dd>0 if the creation is successful, -1 on error.</dd></dl><div class="acl"></div><h3><a name="virDomainSnapshotCreateXML" id="virDomainSnapshotCreateXML"><code>virDomainSnapshotCreateXML</code></a><a class="headerlink" href="#virDomainSnapshotCreateXML" title="Permalink to this headline">¶</a></h3><pre class="api"><span class="type"><a href="libvirt-libvirt-domain-snapshot.html#virDomainSnapshotPtr">virDomainSnapshotPtr</a></span> virDomainSnapshotCreateXML (<span class="type"><a href="libvirt-libvirt-domain.html#virDomainPtr">virDomainPtr</a></span> domain,
<span class="type">const char *</span> xmlDesc,
<span class="type">unsigned int</span> flags)</pre><div class="description"><p>Creates a new snapshot of a domain based on the snapshot xml contained in xmlDesc.</p><p>If @flags is 0, the domain can be active, in which case the snapshot will be a system checkpoint (both disk state and runtime VM state such as RAM contents), where reverting to the snapshot is the same as resuming from hibernation (TCP connections may have timed out, but everything else picks up where it left off); or the domain can be inactive, in which case the snapshot includes just the disk state prior to booting. The newly created snapshot becomes current (see <a href="libvirt-libvirt-domain-snapshot.html#virDomainSnapshotCurrent">virDomainSnapshotCurrent</a>()), and is a child of any previous current snapshot.</p><p>If @flags includes <a href="libvirt-libvirt-domain-snapshot.html#VIR_DOMAIN_SNAPSHOT_CREATE_REDEFINE">VIR_DOMAIN_SNAPSHOT_CREATE_REDEFINE</a>, then this is a request to reinstate snapshot metadata that was previously discarded, rather than creating a new snapshot. This can be used to recreate a snapshot hierarchy on a destination, then remove it on the source, in order to allow migration (since migration normally fails if snapshot metadata still remains on the source machine). When redefining snapshot metadata, the current snapshot will not be altered unless the <a href="libvirt-libvirt-domain-snapshot.html#VIR_DOMAIN_SNAPSHOT_CREATE_CURRENT">VIR_DOMAIN_SNAPSHOT_CREATE_CURRENT</a> flag is also present. It is an error to request the <a href="libvirt-libvirt-domain-snapshot.html#VIR_DOMAIN_SNAPSHOT_CREATE_CURRENT">VIR_DOMAIN_SNAPSHOT_CREATE_CURRENT</a> flag without <a href="libvirt-libvirt-domain-snapshot.html#VIR_DOMAIN_SNAPSHOT_CREATE_REDEFINE">VIR_DOMAIN_SNAPSHOT_CREATE_REDEFINE</a>. On some hypervisors, redefining an existing snapshot can be used to alter host-specific portions of the domain XML to be used during revert (such as backing filenames associated with disk devices), but must not alter guest-visible layout. When redefining a snapshot name that does not exist, the hypervisor may validate that reverting to the snapshot appears to be possible (for example, disk images have snapshot contents by the requested name). Not all hypervisors support these flags.</p><p>If @flags includes <a href="libvirt-libvirt-domain-snapshot.html#VIR_DOMAIN_SNAPSHOT_CREATE_NO_METADATA">VIR_DOMAIN_SNAPSHOT_CREATE_NO_METADATA</a>, then the domain's disk images are modified according to @xmlDesc, but then the just-created snapshot has its metadata deleted. This flag is incompatible with <a href="libvirt-libvirt-domain-snapshot.html#VIR_DOMAIN_SNAPSHOT_CREATE_REDEFINE">VIR_DOMAIN_SNAPSHOT_CREATE_REDEFINE</a>.</p><p>If @flags includes <a href="libvirt-libvirt-domain-snapshot.html#VIR_DOMAIN_SNAPSHOT_CREATE_HALT">VIR_DOMAIN_SNAPSHOT_CREATE_HALT</a>, then the domain will be inactive after the snapshot completes, regardless of whether it was active before; otherwise, a running domain will still be running after the snapshot. This flag is invalid on transient domains, and is incompatible with <a href="libvirt-libvirt-domain-snapshot.html#VIR_DOMAIN_SNAPSHOT_CREATE_REDEFINE">VIR_DOMAIN_SNAPSHOT_CREATE_REDEFINE</a>.</p><p>If @flags includes <a href="libvirt-libvirt-domain-snapshot.html#VIR_DOMAIN_SNAPSHOT_CREATE_LIVE">VIR_DOMAIN_SNAPSHOT_CREATE_LIVE</a>, then the domain is not paused while creating the snapshot. This increases the size of the memory dump file, but reduces downtime of the guest while taking the snapshot. Some hypervisors only support this flag during external checkpoints.</p><p>If @flags includes <a href="libvirt-libvirt-domain-snapshot.html#VIR_DOMAIN_SNAPSHOT_CREATE_DISK_ONLY">VIR_DOMAIN_SNAPSHOT_CREATE_DISK_ONLY</a>, then the snapshot will be limited to the disks described in @xmlDesc, and no VM state will be saved. For an active guest, the disk image may be inconsistent (as if power had been pulled), and specifying this with the <a href="libvirt-libvirt-domain-snapshot.html#VIR_DOMAIN_SNAPSHOT_CREATE_HALT">VIR_DOMAIN_SNAPSHOT_CREATE_HALT</a> flag risks data loss.</p><p>If @flags includes <a href="libvirt-libvirt-domain-snapshot.html#VIR_DOMAIN_SNAPSHOT_CREATE_QUIESCE">VIR_DOMAIN_SNAPSHOT_CREATE_QUIESCE</a>, then the libvirt will attempt to use guest agent to freeze and thaw all file systems in use within domain OS. However, if the guest agent is not present, an error is thrown. Moreover, this flag requires <a href="libvirt-libvirt-domain-snapshot.html#VIR_DOMAIN_SNAPSHOT_CREATE_DISK_ONLY">VIR_DOMAIN_SNAPSHOT_CREATE_DISK_ONLY</a> to be passed as well.</p><p>By default, if the snapshot involves external files, and any of the destination files already exist as a non-empty regular file, the snapshot is rejected to avoid losing contents of those files. However, if @flags includes <a href="libvirt-libvirt-domain-snapshot.html#VIR_DOMAIN_SNAPSHOT_CREATE_REUSE_EXT">VIR_DOMAIN_SNAPSHOT_CREATE_REUSE_EXT</a>, then the destination files must be pre-created manually with the correct image format and metadata including backing store path (this allows a management app to pre-create files with relative backing file names, rather than the default of creating with absolute backing file names). Note that only the file specified in the snapshot XML is inserted as a snapshot thus setting incorrect metadata in the pre-created image may lead to the VM being unable to start or other block jobs may fail.</p><p>Be aware that although libvirt prefers to report errors up front with no other effect, some hypervisors have certain types of failures where the overall command can easily fail even though the guest configuration was partially altered (for example, if a disk snapshot request for two disks fails on the second disk, but the first disk alteration cannot be rolled back). If this API call fails, it is therefore normally necessary to follow up with <a href="libvirt-libvirt-domain.html#virDomainGetXMLDesc">virDomainGetXMLDesc</a>() and check each disk to determine if any partial changes occurred. However, if @flags contains <a href="libvirt-libvirt-domain-snapshot.html#VIR_DOMAIN_SNAPSHOT_CREATE_ATOMIC">VIR_DOMAIN_SNAPSHOT_CREATE_ATOMIC</a>, then libvirt guarantees that this command will not alter any disks unless the entire set of changes can be done atomically, making failure recovery simpler (note that it is still possible to fail after disks have changed, but only in the much rarer cases of running out of memory or disk space).</p><p>Some hypervisors may prevent this operation if there is a current block copy operation; in that case, use <a href="libvirt-libvirt-domain.html#virDomainBlockJobAbort">virDomainBlockJobAbort</a>() to stop the block copy first.</p><p><a href="libvirt-libvirt-domain-snapshot.html#virDomainSnapshotFree">virDomainSnapshotFree</a> should be used to free the resources after the snapshot object is no longer needed.</p></div><dl class="variablelist"><dt>domain</dt><dd>a domain object</dd><dt>xmlDesc</dt><dd>string containing an XML description of the domain</dd><dt>flags</dt><dd>bitwise-OR of <a href="libvirt-libvirt-domain-snapshot.html#virDomainSnapshotCreateFlags">virDomainSnapshotCreateFlags</a></dd><dt>Returns</dt><dd>an (opaque) <a href="libvirt-libvirt-domain-snapshot.html#virDomainSnapshotPtr">virDomainSnapshotPtr</a> on success, NULL on failure.</dd></dl><div class="acl"></div><h3><a name="virDomainSnapshotCurrent" id="virDomainSnapshotCurrent"><code>virDomainSnapshotCurrent</code></a><a class="headerlink" href="#virDomainSnapshotCurrent" title="Permalink to this headline">¶</a></h3><pre class="api"><span class="type"><a href="libvirt-libvirt-domain-snapshot.html#virDomainSnapshotPtr">virDomainSnapshotPtr</a></span> virDomainSnapshotCurrent (<span class="type"><a href="libvirt-libvirt-domain.html#virDomainPtr">virDomainPtr</a></span> domain,
<span class="type">unsigned int</span> flags)</pre><div class="description"><p>Get the current snapshot for a domain, if any.</p><p><a href="libvirt-libvirt-domain-snapshot.html#virDomainSnapshotFree">virDomainSnapshotFree</a> should be used to free the resources after the snapshot object is no longer needed.</p></div><dl class="variablelist"><dt>domain</dt><dd>a domain object</dd><dt>flags</dt><dd>extra flags; not used yet, so callers should always pass 0</dd><dt>Returns</dt><dd>a domain snapshot object or NULL in case of failure. If the current domain snapshot cannot be found, then the <a href="libvirt-virterror.html#VIR_ERR_NO_DOMAIN_SNAPSHOT">VIR_ERR_NO_DOMAIN_SNAPSHOT</a> error is raised.</dd></dl><div class="acl"></div><h3><a name="virDomainSnapshotDelete" id="virDomainSnapshotDelete"><code>virDomainSnapshotDelete</code></a><a class="headerlink" href="#virDomainSnapshotDelete" title="Permalink to this headline">¶</a></h3><pre class="api"><span class="type">int</span> virDomainSnapshotDelete (<span class="type"><a href="libvirt-libvirt-domain-snapshot.html#virDomainSnapshotPtr">virDomainSnapshotPtr</a></span> snapshot,
diff --git a/docs/html/libvirt-virterror.html b/docs/html/libvirt-virterror.html
index dd1360371..6ab28f252 100644
--- a/docs/html/libvirt-virterror.html
+++ b/docs/html/libvirt-virterror.html
@@ -32,7 +32,7 @@
</pre></div><h3><a name="virErrorLevel" id="virErrorLevel"><code>virErrorLevel</code></a><a class="headerlink" href="#virErrorLevel" title="Permalink to this headline">¶</a></h3><div class="api"><pre><span class="keyword">enum</span> virErrorLevel {
</pre><table><tr><td><a name="VIR_ERR_NONE" id="VIR_ERR_NONE">VIR_ERR_NONE</a></td><td> = </td><td>0</td></tr><tr><td><a name="VIR_ERR_WARNING" id="VIR_ERR_WARNING">VIR_ERR_WARNING</a></td><td> = </td><td>1</td><td><div class="comment">A simple warning</div></td></tr><tr><td><a name="VIR_ERR_ERROR" id="VIR_ERR_ERROR">VIR_ERR_ERROR</a></td><td> = </td><td>2</td><td><div class="comment">An error</div></td></tr></table><pre>}
</pre></div><h3><a name="virErrorNumber" id="virErrorNumber"><code>virErrorNumber</code></a><a class="headerlink" href="#virErrorNumber" title="Permalink to this headline">¶</a></h3><div class="api"><pre><span class="keyword">enum</span> virErrorNumber {
-</pre><table><tr><td><a name="VIR_ERR_OK" id="VIR_ERR_OK">VIR_ERR_OK</a></td><td> = </td><td>0</td></tr><tr><td><a name="VIR_ERR_INTERNAL_ERROR" id="VIR_ERR_INTERNAL_ERROR">VIR_ERR_INTERNAL_ERROR</a></td><td> = </td><td>1</td><td><div class="comment">internal error</div></td></tr><tr><td><a name="VIR_ERR_NO_MEMORY" id="VIR_ERR_NO_MEMORY">VIR_ERR_NO_MEMORY</a></td><td> = </td><td>2</td><td><div class="comment">memory allocation failure</div></td></tr><tr><td><a name="VIR_ERR_NO_SUPPORT" id="VIR_ERR_NO_SUPPORT">VIR_ERR_NO_SUPPORT</a></td><td> = </td><td>3</td><td><div class="comment">no support for this function</div></td></tr><tr><td><a name="VIR_ERR_UNKNOWN_HOST" id="VIR_ERR_UNKNOWN_HOST">VIR_ERR_UNKNOWN_HOST</a></td><td> = </td><td>4</td><td><div class="comment">could not resolve hostname</div></td></tr><tr><td><a name="VIR_ERR_NO_CONNECT" id="VIR_ERR_NO_CONNECT">VIR_ERR_NO_CONNECT</a></td><td> = </td><td>5</td><td><div class="comment">can't connect to hypervisor</div></td></tr><tr><td><a name="VIR_ERR_INVALID_CONN" id="VIR_ERR_INVALID_CONN">VIR_ERR_INVALID_CONN</a></td><td> = </td><td>6</td><td><div class="comment">invalid connection object</div></td></tr><tr><td><a name="VIR_ERR_INVALID_DOMAIN" id="VIR_ERR_INVALID_DOMAIN">VIR_ERR_INVALID_DOMAIN</a></td><td> = </td><td>7</td><td><div class="comment">invalid domain object</div></td></tr><tr><td><a name="VIR_ERR_INVALID_ARG" id="VIR_ERR_INVALID_ARG">VIR_ERR_INVALID_ARG</a></td><td> = </td><td>8</td><td><div class="comment">invalid function argument</div></td></tr><tr><td><a name="VIR_ERR_OPERATION_FAILED" id="VIR_ERR_OPERATION_FAILED">VIR_ERR_OPERATION_FAILED</a></td><td> = </td><td>9</td><td><div class="comment">a command to hypervisor failed</div></td></tr><tr><td><a name="VIR_ERR_GET_FAILED" id="VIR_ERR_GET_FAILED">VIR_ERR_GET_FAILED</a></td><td> = </td><td>10</td><td><div class="comment">a HTTP GET command to failed</div></td></tr><tr><td><a name="VIR_ERR_POST_FAILED" id="VIR_ERR_POST_FAILED">VIR_ERR_POST_FAILED</a></td><td> = </td><td>11</td><td><div class="comment">a HTTP POST command to failed</div></td></tr><tr><td><a name="VIR_ERR_HTTP_ERROR" id="VIR_ERR_HTTP_ERROR">VIR_ERR_HTTP_ERROR</a></td><td> = </td><td>12</td><td><div class="comment">unexpected HTTP error code</div></td></tr><tr><td><a name="VIR_ERR_SEXPR_SERIAL" id="VIR_ERR_SEXPR_SERIAL">VIR_ERR_SEXPR_SERIAL</a></td><td> = </td><td>13</td><td><div class="comment">failure to serialize an S-Expr</div></td></tr><tr><td><a name="VIR_ERR_NO_XEN" id="VIR_ERR_NO_XEN">VIR_ERR_NO_XEN</a></td><td> = </td><td>14</td><td><div class="comment">could not open Xen hypervisor control</div></td></tr><tr><td><a name="VIR_ERR_XEN_CALL" id="VIR_ERR_XEN_CALL">VIR_ERR_XEN_CALL</a></td><td> = </td><td>15</td><td><div class="comment">failure doing an hypervisor call</div></td></tr><tr><td><a name="VIR_ERR_OS_TYPE" id="VIR_ERR_OS_TYPE">VIR_ERR_OS_TYPE</a></td><td> = </td><td>16</td><td><div class="comment">unknown OS type</div></td></tr><tr><td><a name="VIR_ERR_NO_KERNEL" id="VIR_ERR_NO_KERNEL">VIR_ERR_NO_KERNEL</a></td><td> = </td><td>17</td><td><div class="comment">missing kernel information</div></td></tr><tr><td><a name="VIR_ERR_NO_ROOT" id="VIR_ERR_NO_ROOT">VIR_ERR_NO_ROOT</a></td><td> = </td><td>18</td><td><div class="comment">missing root device information</div></td></tr><tr><td><a name="VIR_ERR_NO_SOURCE" id="VIR_ERR_NO_SOURCE">VIR_ERR_NO_SOURCE</a></td><td> = </td><td>19</td><td><div class="comment">missing source device information</div></td></tr><tr><td><a name="VIR_ERR_NO_TARGET" id="VIR_ERR_NO_TARGET">VIR_ERR_NO_TARGET</a></td><td> = </td><td>20</td><td><div class="comment">missing target device information</div></td></tr><tr><td><a name="VIR_ERR_NO_NAME" id="VIR_ERR_NO_NAME">VIR_ERR_NO_NAME</a></td><td> = </td><td>21</td><td><div class="comment">missing domain name information</div></td></tr><tr><td><a name="VIR_ERR_NO_OS" id="VIR_ERR_NO_OS">VIR_ERR_NO_OS</a></td><td> = </td><td>22</td><td><div class="comment">missing domain OS information</div></td></tr><tr><td><a name="VIR_ERR_NO_DEVICE" id="VIR_ERR_NO_DEVICE">VIR_ERR_NO_DEVICE</a></td><td> = </td><td>23</td><td><div class="comment">missing domain devices information</div></td></tr><tr><td><a name="VIR_ERR_NO_XENSTORE" id="VIR_ERR_NO_XENSTORE">VIR_ERR_NO_XENSTORE</a></td><td> = </td><td>24</td><td><div class="comment">could not open Xen Store control</div></td></tr><tr><td><a name="VIR_ERR_DRIVER_FULL" id="VIR_ERR_DRIVER_FULL">VIR_ERR_DRIVER_FULL</a></td><td> = </td><td>25</td><td><div class="comment">too many drivers registered</div></td></tr><tr><td><a name="VIR_ERR_CALL_FAILED" id="VIR_ERR_CALL_FAILED">VIR_ERR_CALL_FAILED</a></td><td> = </td><td>26</td><td><div class="comment">not supported by the drivers (DEPRECATED)</div></td></tr><tr><td><a name="VIR_ERR_XML_ERROR" id="VIR_ERR_XML_ERROR">VIR_ERR_XML_ERROR</a></td><td> = </td><td>27</td><td><div class="comment">an XML description is not well formed or broken</div></td></tr><tr><td><a name="VIR_ERR_DOM_EXIST" id="VIR_ERR_DOM_EXIST">VIR_ERR_DOM_EXIST</a></td><td> = </td><td>28</td><td><div class="comment">the domain already exist</div></td></tr><tr><td><a name="VIR_ERR_OPERATION_DENIED" id="VIR_ERR_OPERATION_DENIED">VIR_ERR_OPERATION_DENIED</a></td><td> = </td><td>29</td><td><div class="comment">operation forbidden on read-only connections</div></td></tr><tr><td><a name="VIR_ERR_OPEN_FAILED" id="VIR_ERR_OPEN_FAILED">VIR_ERR_OPEN_FAILED</a></td><td> = </td><td>30</td><td><div class="comment">failed to open a conf file</div></td></tr><tr><td><a name="VIR_ERR_READ_FAILED" id="VIR_ERR_READ_FAILED">VIR_ERR_READ_FAILED</a></td><td> = </td><td>31</td><td><div class="comment">failed to read a conf file</div></td></tr><tr><td><a name="VIR_ERR_PARSE_FAILED" id="VIR_ERR_PARSE_FAILED">VIR_ERR_PARSE_FAILED</a></td><td> = </td><td>32</td><td><div class="comment">failed to parse a conf file</div></td></tr><tr><td><a name="VIR_ERR_CONF_SYNTAX" id="VIR_ERR_CONF_SYNTAX">VIR_ERR_CONF_SYNTAX</a></td><td> = </td><td>33</td><td><div class="comment">failed to parse the syntax of a conf file</div></td></tr><tr><td><a name="VIR_ERR_WRITE_FAILED" id="VIR_ERR_WRITE_FAILED">VIR_ERR_WRITE_FAILED</a></td><td> = </td><td>34</td><td><div class="comment">failed to write a conf file</div></td></tr><tr><td><a name="VIR_ERR_XML_DETAIL" id="VIR_ERR_XML_DETAIL">VIR_ERR_XML_DETAIL</a></td><td> = </td><td>35</td><td><div class="comment">detail of an XML error</div></td></tr><tr><td><a name="VIR_ERR_INVALID_NETWORK" id="VIR_ERR_INVALID_NETWORK">VIR_ERR_INVALID_NETWORK</a></td><td> = </td><td>36</td><td><div class="comment">invalid network object</div></td></tr><tr><td><a name="VIR_ERR_NETWORK_EXIST" id="VIR_ERR_NETWORK_EXIST">VIR_ERR_NETWORK_EXIST</a></td><td> = </td><td>37</td><td><div class="comment">the network already exist</div></td></tr><tr><td><a name="VIR_ERR_SYSTEM_ERROR" id="VIR_ERR_SYSTEM_ERROR">VIR_ERR_SYSTEM_ERROR</a></td><td> = </td><td>38</td><td><div class="comment">general system call failure</div></td></tr><tr><td><a name="VIR_ERR_RPC" id="VIR_ERR_RPC">VIR_ERR_RPC</a></td><td> = </td><td>39</td><td><div class="comment">some sort of RPC error</div></td></tr><tr><td><a name="VIR_ERR_GNUTLS_ERROR" id="VIR_ERR_GNUTLS_ERROR">VIR_ERR_GNUTLS_ERROR</a></td><td> = </td><td>40</td><td><div class="comment">error from a GNUTLS call</div></td></tr><tr><td><a name="VIR_WAR_NO_NETWORK" id="VIR_WAR_NO_NETWORK">VIR_WAR_NO_NETWORK</a></td><td> = </td><td>41</td><td><div class="comment">failed to start network</div></td></tr><tr><td><a name="VIR_ERR_NO_DOMAIN" id="VIR_ERR_NO_DOMAIN">VIR_ERR_NO_DOMAIN</a></td><td> = </td><td>42</td><td><div class="comment">domain not found or unexpectedly disappeared</div></td></tr><tr><td><a name="VIR_ERR_NO_NETWORK" id="VIR_ERR_NO_NETWORK">VIR_ERR_NO_NETWORK</a></td><td> = </td><td>43</td><td><div class="comment">network not found</div></td></tr><tr><td><a name="VIR_ERR_INVALID_MAC" id="VIR_ERR_INVALID_MAC">VIR_ERR_INVALID_MAC</a></td><td> = </td><td>44</td><td><div class="comment">invalid MAC address</div></td></tr><tr><td><a name="VIR_ERR_AUTH_FAILED" id="VIR_ERR_AUTH_FAILED">VIR_ERR_AUTH_FAILED</a></td><td> = </td><td>45</td><td><div class="comment">authentication failed</div></td></tr><tr><td><a name="VIR_ERR_INVALID_STORAGE_POOL" id="VIR_ERR_INVALID_STORAGE_POOL">VIR_ERR_INVALID_STORAGE_POOL</a></td><td> = </td><td>46</td><td><div class="comment">invalid storage pool object</div></td></tr><tr><td><a name="VIR_ERR_INVALID_STORAGE_VOL" id="VIR_ERR_INVALID_STORAGE_VOL">VIR_ERR_INVALID_STORAGE_VOL</a></td><td> = </td><td>47</td><td><div class="comment">invalid storage vol object</div></td></tr><tr><td><a name="VIR_WAR_NO_STORAGE" id="VIR_WAR_NO_STORAGE">VIR_WAR_NO_STORAGE</a></td><td> = </td><td>48</td><td><div class="comment">failed to start storage</div></td></tr><tr><td><a name="VIR_ERR_NO_STORAGE_POOL" id="VIR_ERR_NO_STORAGE_POOL">VIR_ERR_NO_STORAGE_POOL</a></td><td> = </td><td>49</td><td><div class="comment">storage pool not found</div></td></tr><tr><td><a name="VIR_ERR_NO_STORAGE_VOL" id="VIR_ERR_NO_STORAGE_VOL">VIR_ERR_NO_STORAGE_VOL</a></td><td> = </td><td>50</td><td><div class="comment">storage volume not found</div></td></tr><tr><td><a name="VIR_WAR_NO_NODE" id="VIR_WAR_NO_NODE">VIR_WAR_NO_NODE</a></td><td> = </td><td>51</td><td><div class="comment">failed to start node driver</div></td></tr><tr><td><a name="VIR_ERR_INVALID_NODE_DEVICE" id="VIR_ERR_INVALID_NODE_DEVICE">VIR_ERR_INVALID_NODE_DEVICE</a></td><td> = </td><td>52</td><td><div class="comment">invalid node device object</div></td></tr><tr><td><a name="VIR_ERR_NO_NODE_DEVICE" id="VIR_ERR_NO_NODE_DEVICE">VIR_ERR_NO_NODE_DEVICE</a></td><td> = </td><td>53</td><td><div class="comment">node device not found</div></td></tr><tr><td><a name="VIR_ERR_NO_SECURITY_MODEL" id="VIR_ERR_NO_SECURITY_MODEL">VIR_ERR_NO_SECURITY_MODEL</a></td><td> = </td><td>54</td><td><div class="comment">security model not found</div></td></tr><tr><td><a name="VIR_ERR_OPERATION_INVALID" id="VIR_ERR_OPERATION_INVALID">VIR_ERR_OPERATION_INVALID</a></td><td> = </td><td>55</td><td><div class="comment">operation is not applicable at this time</div></td></tr><tr><td><a name="VIR_WAR_NO_INTERFACE" id="VIR_WAR_NO_INTERFACE">VIR_WAR_NO_INTERFACE</a></td><td> = </td><td>56</td><td><div class="comment">failed to start interface driver</div></td></tr><tr><td><a name="VIR_ERR_NO_INTERFACE" id="VIR_ERR_NO_INTERFACE">VIR_ERR_NO_INTERFACE</a></td><td> = </td><td>57</td><td><div class="comment">interface driver not running</div></td></tr><tr><td><a name="VIR_ERR_INVALID_INTERFACE" id="VIR_ERR_INVALID_INTERFACE">VIR_ERR_INVALID_INTERFACE</a></td><td> = </td><td>58</td><td><div class="comment">invalid interface object</div></td></tr><tr><td><a name="VIR_ERR_MULTIPLE_INTERFACES" id="VIR_ERR_MULTIPLE_INTERFACES">VIR_ERR_MULTIPLE_INTERFACES</a></td><td> = </td><td>59</td><td><div class="comment">more than one matching interface found</div></td></tr><tr><td><a name="VIR_WAR_NO_NWFILTER" id="VIR_WAR_NO_NWFILTER">VIR_WAR_NO_NWFILTER</a></td><td> = </td><td>60</td><td><div class="comment">failed to start nwfilter driver</div></td></tr><tr><td><a name="VIR_ERR_INVALID_NWFILTER" id="VIR_ERR_INVALID_NWFILTER">VIR_ERR_INVALID_NWFILTER</a></td><td> = </td><td>61</td><td><div class="comment">invalid nwfilter object</div></td></tr><tr><td><a name="VIR_ERR_NO_NWFILTER" id="VIR_ERR_NO_NWFILTER">VIR_ERR_NO_NWFILTER</a></td><td> = </td><td>62</td><td><div class="comment">nw filter pool not found</div></td></tr><tr><td><a name="VIR_ERR_BUILD_FIREWALL" id="VIR_ERR_BUILD_FIREWALL">VIR_ERR_BUILD_FIREWALL</a></td><td> = </td><td>63</td><td><div class="comment">nw filter pool not found</div></td></tr><tr><td><a name="VIR_WAR_NO_SECRET" id="VIR_WAR_NO_SECRET">VIR_WAR_NO_SECRET</a></td><td> = </td><td>64</td><td><div class="comment">failed to start secret storage</div></td></tr><tr><td><a name="VIR_ERR_INVALID_SECRET" id="VIR_ERR_INVALID_SECRET">VIR_ERR_INVALID_SECRET</a></td><td> = </td><td>65</td><td><div class="comment">invalid secret</div></td></tr><tr><td><a name="VIR_ERR_NO_SECRET" id="VIR_ERR_NO_SECRET">VIR_ERR_NO_SECRET</a></td><td> = </td><td>66</td><td><div class="comment">secret not found</div></td></tr><tr><td><a name="VIR_ERR_CONFIG_UNSUPPORTED" id="VIR_ERR_CONFIG_UNSUPPORTED">VIR_ERR_CONFIG_UNSUPPORTED</a></td><td> = </td><td>67</td><td><div class="comment">unsupported configuration construct</div></td></tr><tr><td><a name="VIR_ERR_OPERATION_TIMEOUT" id="VIR_ERR_OPERATION_TIMEOUT">VIR_ERR_OPERATION_TIMEOUT</a></td><td> = </td><td>68</td><td><div class="comment">timeout occurred during operation</div></td></tr><tr><td><a name="VIR_ERR_MIGRATE_PERSIST_FAILED" id="VIR_ERR_MIGRATE_PERSIST_FAILED">VIR_ERR_MIGRATE_PERSIST_FAILED</a></td><td> = </td><td>69</td><td><div class="comment">a migration worked, but making the VM persist on the dest host failed</div></td></tr><tr><td><a name="VIR_ERR_HOOK_SCRIPT_FAILED" id="VIR_ERR_HOOK_SCRIPT_FAILED">VIR_ERR_HOOK_SCRIPT_FAILED</a></td><td> = </td><td>70</td><td><div class="comment">a synchronous hook script failed</div></td></tr><tr><td><a name="VIR_ERR_INVALID_DOMAIN_SNAPSHOT" id="VIR_ERR_INVALID_DOMAIN_SNAPSHOT">VIR_ERR_INVALID_DOMAIN_SNAPSHOT</a></td><td> = </td><td>71</td><td><div class="comment">invalid domain snapshot</div></td></tr><tr><td><a name="VIR_ERR_NO_DOMAIN_SNAPSHOT" id="VIR_ERR_NO_DOMAIN_SNAPSHOT">VIR_ERR_NO_DOMAIN_SNAPSHOT</a></td><td> = </td><td>72</td><td><div class="comment">domain snapshot not found</div></td></tr><tr><td><a name="VIR_ERR_INVALID_STREAM" id="VIR_ERR_INVALID_STREAM">VIR_ERR_INVALID_STREAM</a></td><td> = </td><td>73</td><td><div class="comment">stream pointer not valid</div></td></tr><tr><td><a name="VIR_ERR_ARGUMENT_UNSUPPORTED" id="VIR_ERR_ARGUMENT_UNSUPPORTED">VIR_ERR_ARGUMENT_UNSUPPORTED</a></td><td> = </td><td>74</td><td><div class="comment">valid API use but unsupported by the given driver</div></td></tr><tr><td><a name="VIR_ERR_STORAGE_PROBE_FAILED" id="VIR_ERR_STORAGE_PROBE_FAILED">VIR_ERR_STORAGE_PROBE_FAILED</a></td><td> = </td><td>75</td><td><div class="comment">storage pool probe failed</div></td></tr><tr><td><a name="VIR_ERR_STORAGE_POOL_BUILT" id="VIR_ERR_STORAGE_POOL_BUILT">VIR_ERR_STORAGE_POOL_BUILT</a></td><td> = </td><td>76</td><td><div class="comment">storage pool already built</div></td></tr><tr><td><a name="VIR_ERR_SNAPSHOT_REVERT_RISKY" id="VIR_ERR_SNAPSHOT_REVERT_RISKY">VIR_ERR_SNAPSHOT_REVERT_RISKY</a></td><td> = </td><td>77</td><td><div class="comment">force was not requested for a risky domain snapshot revert</div></td></tr><tr><td><a name="VIR_ERR_OPERATION_ABORTED" id="VIR_ERR_OPERATION_ABORTED">VIR_ERR_OPERATION_ABORTED</a></td><td> = </td><td>78</td><td><div class="comment">operation on a domain was canceled/aborted by user</div></td></tr><tr><td><a name="VIR_ERR_AUTH_CANCELLED" id="VIR_ERR_AUTH_CANCELLED">VIR_ERR_AUTH_CANCELLED</a></td><td> = </td><td>79</td><td><div class="comment">authentication cancelled</div></td></tr><tr><td><a name="VIR_ERR_NO_DOMAIN_METADATA" id="VIR_ERR_NO_DOMAIN_METADATA">VIR_ERR_NO_DOMAIN_METADATA</a></td><td> = </td><td>80</td><td><div class="comment">The metadata is not present</div></td></tr><tr><td><a name="VIR_ERR_MIGRATE_UNSAFE" id="VIR_ERR_MIGRATE_UNSAFE">VIR_ERR_MIGRATE_UNSAFE</a></td><td> = </td><td>81</td><td><div class="comment">Migration is not safe</div></td></tr><tr><td><a name="VIR_ERR_OVERFLOW" id="VIR_ERR_OVERFLOW">VIR_ERR_OVERFLOW</a></td><td> = </td><td>82</td><td><div class="comment">integer overflow</div></td></tr><tr><td><a name="VIR_ERR_BLOCK_COPY_ACTIVE" id="VIR_ERR_BLOCK_COPY_ACTIVE">VIR_ERR_BLOCK_COPY_ACTIVE</a></td><td> = </td><td>83</td><td><div class="comment">action prevented by block copy job</div></td></tr><tr><td><a name="VIR_ERR_OPERATION_UNSUPPORTED" id="VIR_ERR_OPERATION_UNSUPPORTED">VIR_ERR_OPERATION_UNSUPPORTED</a></td><td> = </td><td>84</td><td><div class="comment">The requested operation is not supported</div></td></tr><tr><td><a name="VIR_ERR_SSH" id="VIR_ERR_SSH">VIR_ERR_SSH</a></td><td> = </td><td>85</td><td><div class="comment">error in ssh transport driver</div></td></tr><tr><td><a name="VIR_ERR_AGENT_UNRESPONSIVE" id="VIR_ERR_AGENT_UNRESPONSIVE">VIR_ERR_AGENT_UNRESPONSIVE</a></td><td> = </td><td>86</td><td><div class="comment">guest agent is unresponsive, not running or not usable</div></td></tr><tr><td><a name="VIR_ERR_RESOURCE_BUSY" id="VIR_ERR_RESOURCE_BUSY">VIR_ERR_RESOURCE_BUSY</a></td><td> = </td><td>87</td><td><div class="comment">resource is already in use</div></td></tr><tr><td><a name="VIR_ERR_ACCESS_DENIED" id="VIR_ERR_ACCESS_DENIED">VIR_ERR_ACCESS_DENIED</a></td><td> = </td><td>88</td><td><div class="comment">operation on the object/resource was denied</div></td></tr><tr><td><a name="VIR_ERR_DBUS_SERVICE" id="VIR_ERR_DBUS_SERVICE">VIR_ERR_DBUS_SERVICE</a></td><td> = </td><td>89</td><td><div class="comment">error from a dbus service</div></td></tr><tr><td><a name="VIR_ERR_STORAGE_VOL_EXIST" id="VIR_ERR_STORAGE_VOL_EXIST">VIR_ERR_STORAGE_VOL_EXIST</a></td><td> = </td><td>90</td><td><div class="comment">the storage vol already exists</div></td></tr><tr><td><a name="VIR_ERR_CPU_INCOMPATIBLE" id="VIR_ERR_CPU_INCOMPATIBLE">VIR_ERR_CPU_INCOMPATIBLE</a></td><td> = </td><td>91</td><td><div class="comment">given CPU is incompatible with host CP</div></td></tr><tr><td><a name="VIR_ERR_XML_INVALID_SCHEMA" id="VIR_ERR_XML_INVALID_SCHEMA">VIR_ERR_XML_INVALID_SCHEMA</a></td><td> = </td><td>92</td><td><div class="comment">XML document doesn't validate against schema</div></td></tr></table><pre>}
+</pre><table><tr><td><a name="VIR_ERR_OK" id="VIR_ERR_OK">VIR_ERR_OK</a></td><td> = </td><td>0</td></tr><tr><td><a name="VIR_ERR_INTERNAL_ERROR" id="VIR_ERR_INTERNAL_ERROR">VIR_ERR_INTERNAL_ERROR</a></td><td> = </td><td>1</td><td><div class="comment">internal error</div></td></tr><tr><td><a name="VIR_ERR_NO_MEMORY" id="VIR_ERR_NO_MEMORY">VIR_ERR_NO_MEMORY</a></td><td> = </td><td>2</td><td><div class="comment">memory allocation failure</div></td></tr><tr><td><a name="VIR_ERR_NO_SUPPORT" id="VIR_ERR_NO_SUPPORT">VIR_ERR_NO_SUPPORT</a></td><td> = </td><td>3</td><td><div class="comment">no support for this function</div></td></tr><tr><td><a name="VIR_ERR_UNKNOWN_HOST" id="VIR_ERR_UNKNOWN_HOST">VIR_ERR_UNKNOWN_HOST</a></td><td> = </td><td>4</td><td><div class="comment">could not resolve hostname</div></td></tr><tr><td><a name="VIR_ERR_NO_CONNECT" id="VIR_ERR_NO_CONNECT">VIR_ERR_NO_CONNECT</a></td><td> = </td><td>5</td><td><div class="comment">can't connect to hypervisor</div></td></tr><tr><td><a name="VIR_ERR_INVALID_CONN" id="VIR_ERR_INVALID_CONN">VIR_ERR_INVALID_CONN</a></td><td> = </td><td>6</td><td><div class="comment">invalid connection object</div></td></tr><tr><td><a name="VIR_ERR_INVALID_DOMAIN" id="VIR_ERR_INVALID_DOMAIN">VIR_ERR_INVALID_DOMAIN</a></td><td> = </td><td>7</td><td><div class="comment">invalid domain object</div></td></tr><tr><td><a name="VIR_ERR_INVALID_ARG" id="VIR_ERR_INVALID_ARG">VIR_ERR_INVALID_ARG</a></td><td> = </td><td>8</td><td><div class="comment">invalid function argument</div></td></tr><tr><td><a name="VIR_ERR_OPERATION_FAILED" id="VIR_ERR_OPERATION_FAILED">VIR_ERR_OPERATION_FAILED</a></td><td> = </td><td>9</td><td><div class="comment">a command to hypervisor failed</div></td></tr><tr><td><a name="VIR_ERR_GET_FAILED" id="VIR_ERR_GET_FAILED">VIR_ERR_GET_FAILED</a></td><td> = </td><td>10</td><td><div class="comment">a HTTP GET command to failed</div></td></tr><tr><td><a name="VIR_ERR_POST_FAILED" id="VIR_ERR_POST_FAILED">VIR_ERR_POST_FAILED</a></td><td> = </td><td>11</td><td><div class="comment">a HTTP POST command to failed</div></td></tr><tr><td><a name="VIR_ERR_HTTP_ERROR" id="VIR_ERR_HTTP_ERROR">VIR_ERR_HTTP_ERROR</a></td><td> = </td><td>12</td><td><div class="comment">unexpected HTTP error code</div></td></tr><tr><td><a name="VIR_ERR_SEXPR_SERIAL" id="VIR_ERR_SEXPR_SERIAL">VIR_ERR_SEXPR_SERIAL</a></td><td> = </td><td>13</td><td><div class="comment">failure to serialize an S-Expr</div></td></tr><tr><td><a name="VIR_ERR_NO_XEN" id="VIR_ERR_NO_XEN">VIR_ERR_NO_XEN</a></td><td> = </td><td>14</td><td><div class="comment">could not open Xen hypervisor control</div></td></tr><tr><td><a name="VIR_ERR_XEN_CALL" id="VIR_ERR_XEN_CALL">VIR_ERR_XEN_CALL</a></td><td> = </td><td>15</td><td><div class="comment">failure doing an hypervisor call</div></td></tr><tr><td><a name="VIR_ERR_OS_TYPE" id="VIR_ERR_OS_TYPE">VIR_ERR_OS_TYPE</a></td><td> = </td><td>16</td><td><div class="comment">unknown OS type</div></td></tr><tr><td><a name="VIR_ERR_NO_KERNEL" id="VIR_ERR_NO_KERNEL">VIR_ERR_NO_KERNEL</a></td><td> = </td><td>17</td><td><div class="comment">missing kernel information</div></td></tr><tr><td><a name="VIR_ERR_NO_ROOT" id="VIR_ERR_NO_ROOT">VIR_ERR_NO_ROOT</a></td><td> = </td><td>18</td><td><div class="comment">missing root device information</div></td></tr><tr><td><a name="VIR_ERR_NO_SOURCE" id="VIR_ERR_NO_SOURCE">VIR_ERR_NO_SOURCE</a></td><td> = </td><td>19</td><td><div class="comment">missing source device information</div></td></tr><tr><td><a name="VIR_ERR_NO_TARGET" id="VIR_ERR_NO_TARGET">VIR_ERR_NO_TARGET</a></td><td> = </td><td>20</td><td><div class="comment">missing target device information</div></td></tr><tr><td><a name="VIR_ERR_NO_NAME" id="VIR_ERR_NO_NAME">VIR_ERR_NO_NAME</a></td><td> = </td><td>21</td><td><div class="comment">missing domain name information</div></td></tr><tr><td><a name="VIR_ERR_NO_OS" id="VIR_ERR_NO_OS">VIR_ERR_NO_OS</a></td><td> = </td><td>22</td><td><div class="comment">missing domain OS information</div></td></tr><tr><td><a name="VIR_ERR_NO_DEVICE" id="VIR_ERR_NO_DEVICE">VIR_ERR_NO_DEVICE</a></td><td> = </td><td>23</td><td><div class="comment">missing domain devices information</div></td></tr><tr><td><a name="VIR_ERR_NO_XENSTORE" id="VIR_ERR_NO_XENSTORE">VIR_ERR_NO_XENSTORE</a></td><td> = </td><td>24</td><td><div class="comment">could not open Xen Store control</div></td></tr><tr><td><a name="VIR_ERR_DRIVER_FULL" id="VIR_ERR_DRIVER_FULL">VIR_ERR_DRIVER_FULL</a></td><td> = </td><td>25</td><td><div class="comment">too many drivers registered</div></td></tr><tr><td><a name="VIR_ERR_CALL_FAILED" id="VIR_ERR_CALL_FAILED">VIR_ERR_CALL_FAILED</a></td><td> = </td><td>26</td><td><div class="comment">not supported by the drivers (DEPRECATED)</div></td></tr><tr><td><a name="VIR_ERR_XML_ERROR" id="VIR_ERR_XML_ERROR">VIR_ERR_XML_ERROR</a></td><td> = </td><td>27</td><td><div class="comment">an XML description is not well formed or broken</div></td></tr><tr><td><a name="VIR_ERR_DOM_EXIST" id="VIR_ERR_DOM_EXIST">VIR_ERR_DOM_EXIST</a></td><td> = </td><td>28</td><td><div class="comment">the domain already exist</div></td></tr><tr><td><a name="VIR_ERR_OPERATION_DENIED" id="VIR_ERR_OPERATION_DENIED">VIR_ERR_OPERATION_DENIED</a></td><td> = </td><td>29</td><td><div class="comment">operation forbidden on read-only connections</div></td></tr><tr><td><a name="VIR_ERR_OPEN_FAILED" id="VIR_ERR_OPEN_FAILED">VIR_ERR_OPEN_FAILED</a></td><td> = </td><td>30</td><td><div class="comment">failed to open a conf file</div></td></tr><tr><td><a name="VIR_ERR_READ_FAILED" id="VIR_ERR_READ_FAILED">VIR_ERR_READ_FAILED</a></td><td> = </td><td>31</td><td><div class="comment">failed to read a conf file</div></td></tr><tr><td><a name="VIR_ERR_PARSE_FAILED" id="VIR_ERR_PARSE_FAILED">VIR_ERR_PARSE_FAILED</a></td><td> = </td><td>32</td><td><div class="comment">failed to parse a conf file</div></td></tr><tr><td><a name="VIR_ERR_CONF_SYNTAX" id="VIR_ERR_CONF_SYNTAX">VIR_ERR_CONF_SYNTAX</a></td><td> = </td><td>33</td><td><div class="comment">failed to parse the syntax of a conf file</div></td></tr><tr><td><a name="VIR_ERR_WRITE_FAILED" id="VIR_ERR_WRITE_FAILED">VIR_ERR_WRITE_FAILED</a></td><td> = </td><td>34</td><td><div class="comment">failed to write a conf file</div></td></tr><tr><td><a name="VIR_ERR_XML_DETAIL" id="VIR_ERR_XML_DETAIL">VIR_ERR_XML_DETAIL</a></td><td> = </td><td>35</td><td><div class="comment">detail of an XML error</div></td></tr><tr><td><a name="VIR_ERR_INVALID_NETWORK" id="VIR_ERR_INVALID_NETWORK">VIR_ERR_INVALID_NETWORK</a></td><td> = </td><td>36</td><td><div class="comment">invalid network object</div></td></tr><tr><td><a name="VIR_ERR_NETWORK_EXIST" id="VIR_ERR_NETWORK_EXIST">VIR_ERR_NETWORK_EXIST</a></td><td> = </td><td>37</td><td><div class="comment">the network already exist</div></td></tr><tr><td><a name="VIR_ERR_SYSTEM_ERROR" id="VIR_ERR_SYSTEM_ERROR">VIR_ERR_SYSTEM_ERROR</a></td><td> = </td><td>38</td><td><div class="comment">general system call failure</div></td></tr><tr><td><a name="VIR_ERR_RPC" id="VIR_ERR_RPC">VIR_ERR_RPC</a></td><td> = </td><td>39</td><td><div class="comment">some sort of RPC error</div></td></tr><tr><td><a name="VIR_ERR_GNUTLS_ERROR" id="VIR_ERR_GNUTLS_ERROR">VIR_ERR_GNUTLS_ERROR</a></td><td> = </td><td>40</td><td><div class="comment">error from a GNUTLS call</div></td></tr><tr><td><a name="VIR_WAR_NO_NETWORK" id="VIR_WAR_NO_NETWORK">VIR_WAR_NO_NETWORK</a></td><td> = </td><td>41</td><td><div class="comment">failed to start network</div></td></tr><tr><td><a name="VIR_ERR_NO_DOMAIN" id="VIR_ERR_NO_DOMAIN">VIR_ERR_NO_DOMAIN</a></td><td> = </td><td>42</td><td><div class="comment">domain not found or unexpectedly disappeared</div></td></tr><tr><td><a name="VIR_ERR_NO_NETWORK" id="VIR_ERR_NO_NETWORK">VIR_ERR_NO_NETWORK</a></td><td> = </td><td>43</td><td><div class="comment">network not found</div></td></tr><tr><td><a name="VIR_ERR_INVALID_MAC" id="VIR_ERR_INVALID_MAC">VIR_ERR_INVALID_MAC</a></td><td> = </td><td>44</td><td><div class="comment">invalid MAC address</div></td></tr><tr><td><a name="VIR_ERR_AUTH_FAILED" id="VIR_ERR_AUTH_FAILED">VIR_ERR_AUTH_FAILED</a></td><td> = </td><td>45</td><td><div class="comment">authentication failed</div></td></tr><tr><td><a name="VIR_ERR_INVALID_STORAGE_POOL" id="VIR_ERR_INVALID_STORAGE_POOL">VIR_ERR_INVALID_STORAGE_POOL</a></td><td> = </td><td>46</td><td><div class="comment">invalid storage pool object</div></td></tr><tr><td><a name="VIR_ERR_INVALID_STORAGE_VOL" id="VIR_ERR_INVALID_STORAGE_VOL">VIR_ERR_INVALID_STORAGE_VOL</a></td><td> = </td><td>47</td><td><div class="comment">invalid storage vol object</div></td></tr><tr><td><a name="VIR_WAR_NO_STORAGE" id="VIR_WAR_NO_STORAGE">VIR_WAR_NO_STORAGE</a></td><td> = </td><td>48</td><td><div class="comment">failed to start storage</div></td></tr><tr><td><a name="VIR_ERR_NO_STORAGE_POOL" id="VIR_ERR_NO_STORAGE_POOL">VIR_ERR_NO_STORAGE_POOL</a></td><td> = </td><td>49</td><td><div class="comment">storage pool not found</div></td></tr><tr><td><a name="VIR_ERR_NO_STORAGE_VOL" id="VIR_ERR_NO_STORAGE_VOL">VIR_ERR_NO_STORAGE_VOL</a></td><td> = </td><td>50</td><td><div class="comment">storage volume not found</div></td></tr><tr><td><a name="VIR_WAR_NO_NODE" id="VIR_WAR_NO_NODE">VIR_WAR_NO_NODE</a></td><td> = </td><td>51</td><td><div class="comment">failed to start node driver</div></td></tr><tr><td><a name="VIR_ERR_INVALID_NODE_DEVICE" id="VIR_ERR_INVALID_NODE_DEVICE">VIR_ERR_INVALID_NODE_DEVICE</a></td><td> = </td><td>52</td><td><div class="comment">invalid node device object</div></td></tr><tr><td><a name="VIR_ERR_NO_NODE_DEVICE" id="VIR_ERR_NO_NODE_DEVICE">VIR_ERR_NO_NODE_DEVICE</a></td><td> = </td><td>53</td><td><div class="comment">node device not found</div></td></tr><tr><td><a name="VIR_ERR_NO_SECURITY_MODEL" id="VIR_ERR_NO_SECURITY_MODEL">VIR_ERR_NO_SECURITY_MODEL</a></td><td> = </td><td>54</td><td><div class="comment">security model not found</div></td></tr><tr><td><a name="VIR_ERR_OPERATION_INVALID" id="VIR_ERR_OPERATION_INVALID">VIR_ERR_OPERATION_INVALID</a></td><td> = </td><td>55</td><td><div class="comment">operation is not applicable at this time</div></td></tr><tr><td><a name="VIR_WAR_NO_INTERFACE" id="VIR_WAR_NO_INTERFACE">VIR_WAR_NO_INTERFACE</a></td><td> = </td><td>56</td><td><div class="comment">failed to start interface driver</div></td></tr><tr><td><a name="VIR_ERR_NO_INTERFACE" id="VIR_ERR_NO_INTERFACE">VIR_ERR_NO_INTERFACE</a></td><td> = </td><td>57</td><td><div class="comment">interface driver not running</div></td></tr><tr><td><a name="VIR_ERR_INVALID_INTERFACE" id="VIR_ERR_INVALID_INTERFACE">VIR_ERR_INVALID_INTERFACE</a></td><td> = </td><td>58</td><td><div class="comment">invalid interface object</div></td></tr><tr><td><a name="VIR_ERR_MULTIPLE_INTERFACES" id="VIR_ERR_MULTIPLE_INTERFACES">VIR_ERR_MULTIPLE_INTERFACES</a></td><td> = </td><td>59</td><td><div class="comment">more than one matching interface found</div></td></tr><tr><td><a name="VIR_WAR_NO_NWFILTER" id="VIR_WAR_NO_NWFILTER">VIR_WAR_NO_NWFILTER</a></td><td> = </td><td>60</td><td><div class="comment">failed to start nwfilter driver</div></td></tr><tr><td><a name="VIR_ERR_INVALID_NWFILTER" id="VIR_ERR_INVALID_NWFILTER">VIR_ERR_INVALID_NWFILTER</a></td><td> = </td><td>61</td><td><div class="comment">invalid nwfilter object</div></td></tr><tr><td><a name="VIR_ERR_NO_NWFILTER" id="VIR_ERR_NO_NWFILTER">VIR_ERR_NO_NWFILTER</a></td><td> = </td><td>62</td><td><div class="comment">nw filter pool not found</div></td></tr><tr><td><a name="VIR_ERR_BUILD_FIREWALL" id="VIR_ERR_BUILD_FIREWALL">VIR_ERR_BUILD_FIREWALL</a></td><td> = </td><td>63</td><td><div class="comment">nw filter pool not found</div></td></tr><tr><td><a name="VIR_WAR_NO_SECRET" id="VIR_WAR_NO_SECRET">VIR_WAR_NO_SECRET</a></td><td> = </td><td>64</td><td><div class="comment">failed to start secret storage</div></td></tr><tr><td><a name="VIR_ERR_INVALID_SECRET" id="VIR_ERR_INVALID_SECRET">VIR_ERR_INVALID_SECRET</a></td><td> = </td><td>65</td><td><div class="comment">invalid secret</div></td></tr><tr><td><a name="VIR_ERR_NO_SECRET" id="VIR_ERR_NO_SECRET">VIR_ERR_NO_SECRET</a></td><td> = </td><td>66</td><td><div class="comment">secret not found</div></td></tr><tr><td><a name="VIR_ERR_CONFIG_UNSUPPORTED" id="VIR_ERR_CONFIG_UNSUPPORTED">VIR_ERR_CONFIG_UNSUPPORTED</a></td><td> = </td><td>67</td><td><div class="comment">unsupported configuration construct</div></td></tr><tr><td><a name="VIR_ERR_OPERATION_TIMEOUT" id="VIR_ERR_OPERATION_TIMEOUT">VIR_ERR_OPERATION_TIMEOUT</a></td><td> = </td><td>68</td><td><div class="comment">timeout occurred during operation</div></td></tr><tr><td><a name="VIR_ERR_MIGRATE_PERSIST_FAILED" id="VIR_ERR_MIGRATE_PERSIST_FAILED">VIR_ERR_MIGRATE_PERSIST_FAILED</a></td><td> = </td><td>69</td><td><div class="comment">a migration worked, but making the VM persist on the dest host failed</div></td></tr><tr><td><a name="VIR_ERR_HOOK_SCRIPT_FAILED" id="VIR_ERR_HOOK_SCRIPT_FAILED">VIR_ERR_HOOK_SCRIPT_FAILED</a></td><td> = </td><td>70</td><td><div class="comment">a synchronous hook script failed</div></td></tr><tr><td><a name="VIR_ERR_INVALID_DOMAIN_SNAPSHOT" id="VIR_ERR_INVALID_DOMAIN_SNAPSHOT">VIR_ERR_INVALID_DOMAIN_SNAPSHOT</a></td><td> = </td><td>71</td><td><div class="comment">invalid domain snapshot</div></td></tr><tr><td><a name="VIR_ERR_NO_DOMAIN_SNAPSHOT" id="VIR_ERR_NO_DOMAIN_SNAPSHOT">VIR_ERR_NO_DOMAIN_SNAPSHOT</a></td><td> = </td><td>72</td><td><div class="comment">domain snapshot not found</div></td></tr><tr><td><a name="VIR_ERR_INVALID_STREAM" id="VIR_ERR_INVALID_STREAM">VIR_ERR_INVALID_STREAM</a></td><td> = </td><td>73</td><td><div class="comment">stream pointer not valid</div></td></tr><tr><td><a name="VIR_ERR_ARGUMENT_UNSUPPORTED" id="VIR_ERR_ARGUMENT_UNSUPPORTED">VIR_ERR_ARGUMENT_UNSUPPORTED</a></td><td> = </td><td>74</td><td><div class="comment">valid API use but unsupported by the given driver</div></td></tr><tr><td><a name="VIR_ERR_STORAGE_PROBE_FAILED" id="VIR_ERR_STORAGE_PROBE_FAILED">VIR_ERR_STORAGE_PROBE_FAILED</a></td><td> = </td><td>75</td><td><div class="comment">storage pool probe failed</div></td></tr><tr><td><a name="VIR_ERR_STORAGE_POOL_BUILT" id="VIR_ERR_STORAGE_POOL_BUILT">VIR_ERR_STORAGE_POOL_BUILT</a></td><td> = </td><td>76</td><td><div class="comment">storage pool already built</div></td></tr><tr><td><a name="VIR_ERR_SNAPSHOT_REVERT_RISKY" id="VIR_ERR_SNAPSHOT_REVERT_RISKY">VIR_ERR_SNAPSHOT_REVERT_RISKY</a></td><td> = </td><td>77</td><td><div class="comment">force was not requested for a risky domain snapshot revert</div></td></tr><tr><td><a name="VIR_ERR_OPERATION_ABORTED" id="VIR_ERR_OPERATION_ABORTED">VIR_ERR_OPERATION_ABORTED</a></td><td> = </td><td>78</td><td><div class="comment">operation on a domain was canceled/aborted by user</div></td></tr><tr><td><a name="VIR_ERR_AUTH_CANCELLED" id="VIR_ERR_AUTH_CANCELLED">VIR_ERR_AUTH_CANCELLED</a></td><td> = </td><td>79</td><td><div class="comment">authentication cancelled</div></td></tr><tr><td><a name="VIR_ERR_NO_DOMAIN_METADATA" id="VIR_ERR_NO_DOMAIN_METADATA">VIR_ERR_NO_DOMAIN_METADATA</a></td><td> = </td><td>80</td><td><div class="comment">The metadata is not present</div></td></tr><tr><td><a name="VIR_ERR_MIGRATE_UNSAFE" id="VIR_ERR_MIGRATE_UNSAFE">VIR_ERR_MIGRATE_UNSAFE</a></td><td> = </td><td>81</td><td><div class="comment">Migration is not safe</div></td></tr><tr><td><a name="VIR_ERR_OVERFLOW" id="VIR_ERR_OVERFLOW">VIR_ERR_OVERFLOW</a></td><td> = </td><td>82</td><td><div class="comment">integer overflow</div></td></tr><tr><td><a name="VIR_ERR_BLOCK_COPY_ACTIVE" id="VIR_ERR_BLOCK_COPY_ACTIVE">VIR_ERR_BLOCK_COPY_ACTIVE</a></td><td> = </td><td>83</td><td><div class="comment">action prevented by block copy job</div></td></tr><tr><td><a name="VIR_ERR_OPERATION_UNSUPPORTED" id="VIR_ERR_OPERATION_UNSUPPORTED">VIR_ERR_OPERATION_UNSUPPORTED</a></td><td> = </td><td>84</td><td><div class="comment">The requested operation is not supported</div></td></tr><tr><td><a name="VIR_ERR_SSH" id="VIR_ERR_SSH">VIR_ERR_SSH</a></td><td> = </td><td>85</td><td><div class="comment">error in ssh transport driver</div></td></tr><tr><td><a name="VIR_ERR_AGENT_UNRESPONSIVE" id="VIR_ERR_AGENT_UNRESPONSIVE">VIR_ERR_AGENT_UNRESPONSIVE</a></td><td> = </td><td>86</td><td><div class="comment">guest agent is unresponsive, not running or not usable</div></td></tr><tr><td><a name="VIR_ERR_RESOURCE_BUSY" id="VIR_ERR_RESOURCE_BUSY">VIR_ERR_RESOURCE_BUSY</a></td><td> = </td><td>87</td><td><div class="comment">resource is already in use</div></td></tr><tr><td><a name="VIR_ERR_ACCESS_DENIED" id="VIR_ERR_ACCESS_DENIED">VIR_ERR_ACCESS_DENIED</a></td><td> = </td><td>88</td><td><div class="comment">operation on the object/resource was denied</div></td></tr><tr><td><a name="VIR_ERR_DBUS_SERVICE" id="VIR_ERR_DBUS_SERVICE">VIR_ERR_DBUS_SERVICE</a></td><td> = </td><td>89</td><td><div class="comment">error from a dbus service</div></td></tr><tr><td><a name="VIR_ERR_STORAGE_VOL_EXIST" id="VIR_ERR_STORAGE_VOL_EXIST">VIR_ERR_STORAGE_VOL_EXIST</a></td><td> = </td><td>90</td><td><div class="comment">the storage vol already exists</div></td></tr><tr><td><a name="VIR_ERR_CPU_INCOMPATIBLE" id="VIR_ERR_CPU_INCOMPATIBLE">VIR_ERR_CPU_INCOMPATIBLE</a></td><td> = </td><td>91</td><td><div class="comment">given CPU is incompatible with host CP</div></td></tr><tr><td><a name="VIR_ERR_XML_INVALID_SCHEMA" id="VIR_ERR_XML_INVALID_SCHEMA">VIR_ERR_XML_INVALID_SCHEMA</a></td><td> = </td><td>92</td><td><div class="comment">XML document doesn't validate against schema</div></td></tr><tr><td><a name="VIR_ERR_MIGRATE_FINISH_OK" id="VIR_ERR_MIGRATE_FINISH_OK">VIR_ERR_MIGRATE_FINISH_OK</a></td><td> = </td><td>93</td><td><div class="comment">Finish API succeeded but it is expected to return NULL</div></td></tr></table><pre>}
</pre></div><h3><a name="functions" id="functions">Functions</a><a class="headerlink" href="#functions" title="Permalink to this headline">¶</a></h3><h3><a name="virConnCopyLastError" id="virConnCopyLastError"><code>virConnCopyLastError</code></a><a class="headerlink" href="#virConnCopyLastError" title="Permalink to this headline">¶</a></h3><pre class="api"><span class="type">int</span> virConnCopyLastError (<span class="type"><a href="libvirt-libvirt-host.html#virConnectPtr">virConnectPtr</a></span> conn,
<span class="type"><a href="libvirt-virterror.html#virErrorPtr">virErrorPtr</a></span> to)</pre><div class="description"><p>Copy the content of the last error caught on that connection</p><p>This method is not protected against access from multiple threads. In a multi-threaded application, always use the global <a href="libvirt-virterror.html#virGetLastError">virGetLastError</a>() API which is backed by thread local storage.</p><p>If the connection object was discovered to be invalid by an API call, then the error will be reported against the global error object.</p><p>Since 0.6.0, all errors reported in the per-connection object are also duplicated in the global error object. As such an application can always use <a href="libvirt-virterror.html#virGetLastError">virGetLastError</a>(). This method remains for backwards compatibility.</p><p>One will need to free the result with <a href="libvirt-virterror.html#virResetError">virResetError</a>()</p></div><dl class="variablelist"><dt>conn</dt><dd>pointer to the hypervisor connection</dd><dt>to</dt><dd>target to receive the copy</dd><dt>Returns</dt><dd>0 if no error was found and the error code otherwise and -1 in case of parameter error.</dd></dl><div class="acl"></div><h3><a name="virConnGetLastError" id="virConnGetLastError"><code>virConnGetLastError</code></a><a class="headerlink" href="#virConnGetLastError" title="Permalink to this headline">¶</a></h3><pre class="api"><span class="type"><a href="libvirt-virterror.html#virErrorPtr">virErrorPtr</a></span> virConnGetLastError (<span class="type"><a href="libvirt-libvirt-host.html#virConnectPtr">virConnectPtr</a></span> conn)</pre><div class="description"><p>Provide a pointer to the last error caught on that connection</p><p>This method is not protected against access from multiple threads. In a multi-threaded application, always use the global <a href="libvirt-virterror.html#virGetLastError">virGetLastError</a>() API which is backed by thread local storage.</p><p>If the connection object was discovered to be invalid by an API call, then the error will be reported against the global error object.</p><p>Since 0.6.0, all errors reported in the per-connection object are also duplicated in the global error object. As such an application can always use <a href="libvirt-virterror.html#virGetLastError">virGetLastError</a>(). This method remains for backwards compatibility.</p></div><dl class="variablelist"><dt>conn</dt><dd>pointer to the hypervisor connection</dd><dt>Returns</dt><dd>a pointer to the last error or NULL if none occurred.</dd></dl><div class="acl"></div><h3><a name="virConnResetLastError" id="virConnResetLastError"><code>virConnResetLastError</code></a><a class="headerlink" href="#virConnResetLastError" title="Permalink to this headline">¶</a></h3><pre class="api"><span class="type">void</span> virConnResetLastError (<span class="type"><a href="libvirt-libvirt-host.html#virConnectPtr">virConnectPtr</a></span> conn)</pre><div class="description"><p>The error object is kept in thread local storage, so separate threads can safely access this concurrently.</p><p>Reset the last error caught on that connection</p></div><dl class="variablelist"><dt>conn</dt><dd>pointer to the hypervisor connection</dd></dl><div class="acl"></div><h3><a name="virConnSetErrorFunc" id="virConnSetErrorFunc"><code>virConnSetErrorFunc</code></a><a class="headerlink" href="#virConnSetErrorFunc" title="Permalink to this headline">¶</a></h3><pre class="api"><span class="type">void</span> virConnSetErrorFunc (<span class="type"><a href="libvirt-libvirt-host.html#virConnectPtr">virConnectPtr</a></span> conn,
<span class="type">void *</span> userData,
diff --git a/docs/hvsupport.html b/docs/hvsupport.html
index a3842bcc0..e9c39a63c 100644
--- a/docs/hvsupport.html
+++ b/docs/hvsupport.html
@@ -389,7 +389,7 @@ virConnectSupportsFeature</td><td rowspan="1" colspan="1">0.3.2</td><td rowspan=
<a href="html/libvirt-libvirt-domain.html#virDomainGetTime" shape="rect">virDomainGetTime</a>
</td><td rowspan="1" colspan="1">1.2.5</td><td rowspan="1" colspan="1"></td><td rowspan="1" colspan="1"></td><td rowspan="1" colspan="1"></td><td rowspan="1" colspan="1"></td><td rowspan="1" colspan="1"></td><td rowspan="1" colspan="1"></td><td rowspan="1" colspan="1"></td><td rowspan="1" colspan="1">1.2.5</td><td rowspan="1" colspan="1">1.2.5</td><td rowspan="1" colspan="1"></td><td rowspan="1" colspan="1"></td><td rowspan="1" colspan="1"></td><td rowspan="1" colspan="1"></td><td rowspan="1" colspan="1"></td><td rowspan="1" colspan="1"></td><td rowspan="1" colspan="1"></td></tr><tr><td rowspan="1" colspan="1">
<a href="html/libvirt-libvirt-domain.html#virDomainGetVcpuPinInfo" shape="rect">virDomainGetVcpuPinInfo</a>
-</td><td rowspan="1" colspan="1">0.9.3</td><td rowspan="1" colspan="1"></td><td rowspan="1" colspan="1"></td><td rowspan="1" colspan="1"></td><td rowspan="1" colspan="1">1.2.1</td><td rowspan="1" colspan="1"></td><td rowspan="1" colspan="1"></td><td rowspan="1" colspan="1"></td><td rowspan="1" colspan="1">0.9.3</td><td rowspan="1" colspan="1">0.9.3</td><td rowspan="1" colspan="1"></td><td rowspan="1" colspan="1"></td><td rowspan="1" colspan="1"></td><td rowspan="1" colspan="1"></td><td rowspan="1" colspan="1"></td><td rowspan="1" colspan="1"></td><td rowspan="1" colspan="1"></td></tr><tr><td rowspan="1" colspan="1">
+</td><td rowspan="1" colspan="1">0.9.3</td><td rowspan="1" colspan="1"></td><td rowspan="1" colspan="1"></td><td rowspan="1" colspan="1"></td><td rowspan="1" colspan="1">1.2.1</td><td rowspan="1" colspan="1"></td><td rowspan="1" colspan="1"></td><td rowspan="1" colspan="1"></td><td rowspan="1" colspan="1">0.9.3</td><td rowspan="1" colspan="1">0.9.3</td><td rowspan="1" colspan="1">1.2.18</td><td rowspan="1" colspan="1"></td><td rowspan="1" colspan="1"></td><td rowspan="1" colspan="1"></td><td rowspan="1" colspan="1"></td><td rowspan="1" colspan="1"></td><td rowspan="1" colspan="1"></td></tr><tr><td rowspan="1" colspan="1">
<a href="html/libvirt-libvirt-domain.html#virDomainGetVcpus" shape="rect">virDomainGetVcpus</a>
</td><td rowspan="1" colspan="1">0.1.4</td><td rowspan="1" colspan="1"></td><td rowspan="1" colspan="1"></td><td rowspan="1" colspan="1"></td><td rowspan="1" colspan="1">0.9.0</td><td rowspan="1" colspan="1"></td><td rowspan="1" colspan="1"></td><td rowspan="1" colspan="1"></td><td rowspan="1" colspan="1">0.4.4</td><td rowspan="1" colspan="1">0.3.0</td><td rowspan="1" colspan="1">0.7.3</td><td rowspan="1" colspan="1"></td><td rowspan="1" colspan="1"></td><td rowspan="1" colspan="1"></td><td rowspan="1" colspan="1">1.2.6</td><td rowspan="1" colspan="1">0.1.4</td><td rowspan="1" colspan="1">0.8.0</td></tr><tr><td rowspan="1" colspan="1">
<a href="html/libvirt-libvirt-domain.html#virDomainGetVcpusFlags" shape="rect">virDomainGetVcpusFlags</a>
diff --git a/docs/hvsupport.html.in b/docs/hvsupport.html.in
index 1e3832824..4beebb19d 100644
--- a/docs/hvsupport.html.in
+++ b/docs/hvsupport.html.in
@@ -2263,7 +2263,7 @@ virConnectSupportsFeature</td>
<td></td>
<td>0.9.3</td>
<td>0.9.3</td>
-<td></td>
+<td>1.2.18</td>
<td></td>
<td></td>
<td></td>
diff --git a/docs/libvirt-api.xml b/docs/libvirt-api.xml
index 84b4cb27a..fd369ddd6 100644
--- a/docs/libvirt-api.xml
+++ b/docs/libvirt-api.xml
@@ -1569,6 +1569,7 @@
<exports symbol='VIR_ERR_INVALID_STORAGE_POOL' type='enum'/>
<exports symbol='VIR_ERR_INVALID_STORAGE_VOL' type='enum'/>
<exports symbol='VIR_ERR_INVALID_STREAM' type='enum'/>
+ <exports symbol='VIR_ERR_MIGRATE_FINISH_OK' type='enum'/>
<exports symbol='VIR_ERR_MIGRATE_PERSIST_FAILED' type='enum'/>
<exports symbol='VIR_ERR_MIGRATE_UNSAFE' type='enum'/>
<exports symbol='VIR_ERR_MULTIPLE_INTERFACES' type='enum'/>
@@ -2844,6 +2845,7 @@ CP'/>
<enum name='VIR_ERR_INVALID_STORAGE_POOL' file='virterror' value='46' type='virErrorNumber' info='invalid storage pool object'/>
<enum name='VIR_ERR_INVALID_STORAGE_VOL' file='virterror' value='47' type='virErrorNumber' info='invalid storage vol object'/>
<enum name='VIR_ERR_INVALID_STREAM' file='virterror' value='73' type='virErrorNumber' info='stream pointer not valid'/>
+ <enum name='VIR_ERR_MIGRATE_FINISH_OK' file='virterror' value='93' type='virErrorNumber' info='Finish API succeeded but it is expected to return NULL'/>
<enum name='VIR_ERR_MIGRATE_PERSIST_FAILED' file='virterror' value='69' type='virErrorNumber' info='a migration worked, but making the
VM persist on the dest host failed'/>
<enum name='VIR_ERR_MIGRATE_UNSAFE' file='virterror' value='81' type='virErrorNumber' info='Migration is not safe'/>
@@ -7553,7 +7555,7 @@ revert a running domain to an active state that requires starting a
new hypervisor instance rather than reusing the existing hypervisor
(since this would terminate all connections to the domain, such as
such as VNC or Spice graphics) - this condition arises from active
-snapshots that are provably ABI incomaptible, as well as from
+snapshots that are provably ABI incompatible, as well as from
inactive snapshots with a @flags request to start the domain after
the revert.]]></info>
<return type='int' info='0 if the creation is successful, -1 on error.'/>
diff --git a/docs/libvirt-refs.xml b/docs/libvirt-refs.xml
index 2c80cd6f7..237cf805d 100644
--- a/docs/libvirt-refs.xml
+++ b/docs/libvirt-refs.xml
@@ -652,6 +652,7 @@
<reference name='VIR_ERR_INVALID_STORAGE_POOL' href='html/libvirt-virterror.html#VIR_ERR_INVALID_STORAGE_POOL'/>
<reference name='VIR_ERR_INVALID_STORAGE_VOL' href='html/libvirt-virterror.html#VIR_ERR_INVALID_STORAGE_VOL'/>
<reference name='VIR_ERR_INVALID_STREAM' href='html/libvirt-virterror.html#VIR_ERR_INVALID_STREAM'/>
+ <reference name='VIR_ERR_MIGRATE_FINISH_OK' href='html/libvirt-virterror.html#VIR_ERR_MIGRATE_FINISH_OK'/>
<reference name='VIR_ERR_MIGRATE_PERSIST_FAILED' href='html/libvirt-virterror.html#VIR_ERR_MIGRATE_PERSIST_FAILED'/>
<reference name='VIR_ERR_MIGRATE_UNSAFE' href='html/libvirt-virterror.html#VIR_ERR_MIGRATE_UNSAFE'/>
<reference name='VIR_ERR_MULTIPLE_INTERFACES' href='html/libvirt-virterror.html#VIR_ERR_MULTIPLE_INTERFACES'/>
@@ -2310,6 +2311,7 @@
<ref name='VIR_ERR_INVALID_STORAGE_POOL'/>
<ref name='VIR_ERR_INVALID_STORAGE_VOL'/>
<ref name='VIR_ERR_INVALID_STREAM'/>
+ <ref name='VIR_ERR_MIGRATE_FINISH_OK'/>
<ref name='VIR_ERR_MIGRATE_PERSIST_FAILED'/>
<ref name='VIR_ERR_MIGRATE_UNSAFE'/>
<ref name='VIR_ERR_MULTIPLE_INTERFACES'/>
@@ -6050,6 +6052,7 @@
<ref name='VIR_ERR_INVALID_STORAGE_POOL'/>
<ref name='VIR_ERR_INVALID_STORAGE_VOL'/>
<ref name='VIR_ERR_INVALID_STREAM'/>
+ <ref name='VIR_ERR_MIGRATE_FINISH_OK'/>
<ref name='VIR_ERR_MIGRATE_PERSIST_FAILED'/>
<ref name='VIR_ERR_MIGRATE_UNSAFE'/>
<ref name='VIR_ERR_MULTIPLE_INTERFACES'/>
@@ -14142,9 +14145,6 @@
<word name='includs'>
<ref name='virDomainMigrateToURI2'/>
</word>
- <word name='incomaptible'>
- <ref name='virDomainRevertToSnapshot'/>
- </word>
<word name='incoming'>
<ref name='VIR_MIGRATE_PARAM_LISTEN_ADDRESS'/>
<ref name='virDomainGetJobStats'/>
@@ -14154,6 +14154,7 @@
</word>
<word name='incompatible'>
<ref name='virConnectCompareCPU'/>
+ <ref name='virDomainRevertToSnapshot'/>
<ref name='virDomainSetVcpusFlags'/>
<ref name='virDomainSnapshotCreateXML'/>
</word>
diff --git a/docs/news.html b/docs/news.html
index 4c9fa5890..c514660da 100644
--- a/docs/news.html
+++ b/docs/news.html
@@ -88,6 +88,587 @@
<h1>Releases</h1>
<p>Here is the list of official releases, it is also possible to just use the <a href="downloads.html" shape="rect">GIT version or snapshot</a>, contact the mailing list
and check the <a href="http://libvirt.org/git/?p=libvirt.git;a=log" shape="rect">GIT log</a> to gauge progress.</p>
+ <h3>v1.2.18: Aug 03 2015</h3>
+ <ul><li>Features:<br />
+ libxl: support dom0 (Jim Fehlig),<br />
+ </li><li>Documentation:<br />
+ fix typo in qemu_monitor (Cao jin),<br />
+ docs: bhyve: document clock configuration (Roman Bogorodskiy),<br />
+ viraccessperm.h: Fix some typos (Michal Privoznik),<br />
+ docs: Document how libvirt handles companion controllers (Martin Kletzander),<br />
+ daemonRunStateInit: Fix a typo on a comment (Michal Privoznik)<br />
+ </li><li>Portability:<br />
+ netdev: fix build on FreeBSD (Roman Bogorodskiy),<br />
+ spec: Fix polkit dep on F23 (Cole Robinson),<br />
+ nodeinfo: fix build on FreeBSD (Roman Bogorodskiy),<br />
+ Escape left brace as new perl suggests (Martin Kletzander)<br />
+ </li><li>Bug Fixes:<br />
+ qemu: Do not reset labels when migration fails (Jiri Denemark),<br />
+ qemu: Reject migration with memory-hotplug if destination doesn't support it (Peter Krempa),<br />
+ Load nbd module before running qemu-nbd (Cédric Bosdonnat),<br />
+ lxc: Don't accidentaly reset autostart flag in virLXCProcessCleanup (Peter Krempa),<br />
+ remote: fix typo in remoteDomainOpenGraphicsFD (Daniel P. Berrange),<br />
+ qemu: Check for iotune_max support properly (Martin Kletzander),<br />
+ Renamed deconfigured-cpus to allow make dist (Daniel Veillard),<br />
+ storage: allow zero capacity with non-backing file to be created (Chris J Arges),<br />
+ nodeinfo: Check for SYSFS_INFINIBAND_DIR before open (John Ferlan),<br />
+ qemu: fix the error cover issue in SetMemoryParameters (Luyao Huang),<br />
+ nodeinfo: Fix nodeGetCPUBitmap()'s fallback code path (Andrea Bolognani),<br />
+ tests: Restore links in deconfigured-cpus nodeinfo test (Andrea Bolognani),<br />
+ cgroup: Drop resource partition from virSystemdMakeScopeName (Peter Krempa),<br />
+ qemu: Reject updating unsupported disk information (Martin Kletzander),<br />
+ storage: Fix pool building when directory already exists (Christophe Fergeau),<br />
+ rpc: ensure daemon is spawn even if dead socket exists (Daniel P. Berrange),<br />
+ rbd: Return error from rbd_create for message processing (John Ferlan),<br />
+ qemuMigrationRun: Don't leak @fd (Michal Privoznik),<br />
+ Fix qemu-nbd cleanup crashes (Cédric Bosdonnat),<br />
+ network: Add another collision check into networkCheckRouteCollision (Martin Kletzander),<br />
+ nodeinfo: fix to parse present cpus rather than possible cpus (Kothapally Madhu Pavan),<br />
+ libxl: set dom0 state to running (Jim Fehlig),<br />
+ rpc: Rework timerActive logic in daemon (Martin Kletzander),<br />
+ qemu: Check duplicate WWNs also for hotplugged disks (Peter Krempa),<br />
+ Fix cloning of raw, sparse volumes (Prerna Saxena),<br />
+ qemu: don't use initialized ret in qemuRemoveSharedDevice (Guido Günther),<br />
+ qemu: report error for non-existing disk in blockjobinfo (Luyao Huang),<br />
+ conf: Don't allow duplicated target names regardless of bus (John Ferlan),<br />
+ storage: Revert volume obj list updating after volume creation (4749d82a) (Erik Skultety),<br />
+ qemu: Fix integer/boolean logic in qemuSetUnprivSGIO (John Ferlan),<br />
+ qemu: report error when shmem has an invalid address (Luyao Huang),<br />
+ qemu: Auto assign pci addresses for shared memory devices (Luyao Huang),<br />
+ vz: use PRL_USE_VNET_NAME_FOR_BRIDGE_NAME (Maxim Nestratov),<br />
+ Explicitly format the isa-fdc controller for newer q35 machines (Ján Tomko),<br />
+ virt-aa-helper: add unix channels for nserials as well (Serge Hallyn),<br />
+ storage: Fix regression in storagePoolUpdateAllState (Erik Skultety),<br />
+ better patch for the XSS search issue (Daniel Veillard),<br />
+ Avoid XSS vulnerability on the search engine (Daniel Veillard),<br />
+ vz: fix SDK event dispatching (Nikolay Shirokovskiy),<br />
+ util: Avoid Coverity FORWARD_NULL (John Ferlan),<br />
+ virsh: report error if vcpu number exceed the guest maxvcpu number (Luyao Huang),<br />
+ virt-aa-helper: Fix permissions for vhost-user socket files (Michal Dubiel)<br />
+ </li><li>Improvements:<br />
+ qemu: Properly check for incoming migration job (Jiri Denemark),<br />
+ Fix syntax-check: missing "%s" (Cédric Bosdonnat),<br />
+ qemu: Adjust VM id allocation (Erik Skultety),<br />
+ admin: Tiny cleanups (Martin Kletzander),<br />
+ tests: Finish rename of the long nodeinfo test case (Martin Kletzander),<br />
+ conf: add virDomainControllerDefNew() (Laine Stump),<br />
+ qemu: reorganize loop in qemuDomainAssignPCIAddresses (Laine Stump),<br />
+ conf: pay attention to bus minSlot/maxSlot when autoassigning PCI addresses (Laine Stump),<br />
+ tests: add vol-qcow2-zerocapacity test to storagevolxml2argvtest (Chris J Arges),<br />
+ Revert "qemu: Use heads parameter for QXL driver" (Martin Kletzander),<br />
+ test: introduce a function in test driver to check get vcpupin info (Luyao Huang),<br />
+ conf: reorganize virNetworkDHCPDefParseXML (Laine Stump),<br />
+ nodeinfo: Check for errors when reading core_id (Andrea Bolognani),<br />
+ bhyve: add UTC clock support (Roman Bogorodskiy),<br />
+ configure: clarify rationale for checking pkcheck (Daniel P. Berrange),<br />
+ nodeinfo: Calculate present and online CPUs only once (Andrea Bolognani),<br />
+ nodeinfo: Use a bitmap to keep track of node CPUs (Andrea Bolognani),<br />
+ nodeinfo: Use nodeGetOnlineCPUBitmap() when parsing node (Andrea Bolognani),<br />
+ nodeinfo: Phase out cpu_set_t usage (Andrea Bolognani),<br />
+ nodeinfo: Rename nodeGetCPUBitmap() to nodeGetOnlineCPUBitmap() (Andrea Bolognani),<br />
+ nodeinfo: Remove out parameter from nodeGetCPUBitmap() (Andrea Bolognani),<br />
+ nodeinfo: Add old kernel compatibility to nodeGetPresentCPUBitmap() (Andrea Bolognani),<br />
+ nodeinfo: Rename linuxParseCPUmax() to linuxParseCPUCount() (Andrea Bolognani),<br />
+ nodeinfo: Introduce linuxGetCPUOnlinePath() (Andrea Bolognani),<br />
+ nodeinfo: Introduce linuxGetCPUGlobalPath() (Andrea Bolognani),<br />
+ nodeinfo: Add nodeGetPresentCPUBitmap() to libvirt_private.syms (Andrea Bolognani),<br />
+ virsh: Refactor block job waiting in cmdBlockCopy (Peter Krempa),<br />
+ virsh: Refactor block job waiting in cmdBlockCommit (Peter Krempa),<br />
+ virsh: Refactor block job waiting in cmdBlockPull (Peter Krempa),<br />
+ qemu: Update state of block job to READY only if it actually is ready (Peter Krempa),<br />
+ virsh: Refactor argument handling in cmdBlockPull (Peter Krempa),<br />
+ virsh: Refactor argument handling in cmdBlockCopy (Peter Krempa),<br />
+ virsh: Refactor argument checking in cmdBlockCommit (Peter Krempa),<br />
+ virsh: Kill blockJobImpl by moving the final impl into cmdBlockCommit (Peter Krempa),<br />
+ virsh: Split out block pull implementation from blockJobImpl (Peter Krempa),<br />
+ virsh: block job: separate abort from blockJobImpl (Peter Krempa),<br />
+ virsh: blockjob: Split out vshBlockJobSetSpeed from blockJobImpl (Peter Krempa),<br />
+ virsh: cmdBlockJob: Switch to declarative flag interlocking (Peter Krempa),<br />
+ virsh: blockjob: Extract block job info code into a separate function (Peter Krempa),<br />
+ nodedev: add RDMA and tx-udp_tnl-segmentation NIC capabilities (Moshe Levi),<br />
+ qemu: Use heads parameter for QXL driver (Frediano Ziglio),<br />
+ rbd: Use RBD format 2 by default when creating images. (Wido den Hollander),<br />
+ virsh: Don't output node frequency if unknown (Martin Kletzander),<br />
+ qemu: Test for virtio-9p-ccw support (Boris Fiuczynski),<br />
+ qemu: Make virtio-9p-ccw the default for s390-ccw-virtio machines (Boris Fiuczynski),<br />
+ qemu: Support for virtio-9p-ccw (Boris Fiuczynski),<br />
+ virsh: Teach cmdFreepages to work with lxc driver (Michal Privoznik),<br />
+ cmdVcpuPin: Remove dead code (Michal Privoznik),<br />
+ lxc: wait for nbd device to be up to get its PIDs (Cédric Bosdonnat),<br />
+ nodeinfo: Formatting changes (Andrea Bolognani),<br />
+ nodeinfo: Make sysfs_prefix usage more consistent (Andrea Bolognani),<br />
+ qemu: process: Improve update of maximum balloon state at startup (Peter Krempa),<br />
+ qemuDomainSetNumaParamsLive: Check for NUMA mode more wisely (Michal Privoznik),<br />
+ conf: Add getter for network routes (Martin Kletzander),<br />
+ tests: Add nodeinfo test for non-present CPUs (Andrea Bolognani),<br />
+ nodeinfo: Add sysfs_prefix to nodeGetMemoryStats (John Ferlan),<br />
+ nodeinfo: Add sysfs_prefix to nodeCapsInitNUMA (John Ferlan),<br />
+ nodeinfo: Add sysfs_prefix to nodeGetInfo (John Ferlan),<br />
+ nodeinfo: Add sysfs_prefix to nodeGetCPUMap (John Ferlan),<br />
+ nodeinfo: Add sysfs_prefix to nodeGetCPUBitmap (John Ferlan),<br />
+ nodeinfo: Add sysfs_prefix to nodeGetPresentCPUBitmap (John Ferlan),<br />
+ nodeinfo: Add sysfs_prefix to nodeGetCPUCount (John Ferlan),<br />
+ nodeinfo: Introduce local linuxGetCPUPresentPath (John Ferlan),<br />
+ virt-driver-vz: Require parallels-7.0.22 at least (Michal Privoznik),<br />
+ configure: Move Virtuozzo checks to a specific module (Michal Privoznik),<br />
+ qemuProcessHandleMigrationStatus: Update migration status more frequently (Michal Privoznik),<br />
+ vz: fix cleanup of nets of bridged type (Dmitry Guryanov),<br />
+ qemu: Use error from Finish instead of "unexpectedly failed" (Jiri Denemark),<br />
+ qemu: Don't report false error from MigrateFinish (Jiri Denemark),<br />
+ qemu: Remember incoming migration errors (Jiri Denemark),<br />
+ Introduce virErrorCopyNew (Jiri Denemark),<br />
+ Introduce virHashAtomic (Jiri Denemark),<br />
+ cpu: Add support for MPX and AVX512 Intel features (Jiri Denemark),<br />
+ virt-aa-helper: add DomainGuest to mockup caps (Cédric Bosdonnat),<br />
+ virt-aa-helper: rename ctl-&gt;hvm to ctl-&gt;os (Cédric Bosdonnat),<br />
+ Get more libvirt errors from virt-aa-helper (Cédric Bosdonnat),<br />
+ virt-aa-helper: fix rules for paths with trailing slash (Cédric Bosdonnat),<br />
+ rpc: Add virNetDaemonHasClients (Martin Kletzander),<br />
+ Rewrite allocation tracking when cloning volumes (Ján Tomko),<br />
+ qemu: Drop LFs at the end of error from QEMU log (Jiri Denemark),<br />
+ qemu: Log all arguments of qemuProcessStart (Jiri Denemark),<br />
+ qemu: Wait for migration events on domain condition (Jiri Denemark),<br />
+ qemu: Update migration state according to MIGRATION event (Jiri Denemark),<br />
+ qemuDomainGetJobStatsInternal: Support migration events (Jiri Denemark),<br />
+ qemu: Enable migration events on QMP monitor (Jiri Denemark),<br />
+ qemu_monitor: Wire up MIGRATION event (Jiri Denemark),<br />
+ qemu_hotplug: try harder to eject media (Pavel Hrdina),<br />
+ monitor: detect that eject fails because the tray is locked (Pavel Hrdina),<br />
+ virDomainObjSignal: drop this function (Pavel Hrdina),<br />
+ virCondWaitUntil: add another return value (Pavel Hrdina),<br />
+ qemu: Refactor qemuSetUnprivSGIO return values (John Ferlan),<br />
+ qemu: Inline qemuGetHostdevPath (John Ferlan),<br />
+ qemu: Refactor qemuCheckSharedDisk to create qemuCheckUnprivSGIO (John Ferlan),<br />
+ libxl: rework setting the state of virDomainObj (Jim Fehlig),<br />
+ libxl: support dom0 (Jim Fehlig),<br />
+ qemu: Introduce qemuGetHostdevPath (John Ferlan),<br />
+ qemu: Introduce qemuIsSharedHostdev (John Ferlan),<br />
+ docs: Clarify unprivileged sgio feature (John Ferlan),<br />
+ conf: use virDomainChrSourceDef to save server path (Luyao Huang),<br />
+ qemu: Refactor creation of shared memory device commandline (Luyao Huang),<br />
+ qemu: Assign IDs for shared memory devices (Luyao Huang),<br />
+ Separate isa-fdc options generation (Ján Tomko),<br />
+ Add support for portable-rpcgen from portablexdr library (Pavel Fedin),<br />
+ Remove explicit enum from protocol structures (Pavel Fedin),<br />
+ util: bitmap: Don't alloc overly large binary bitmaps (Peter Krempa),<br />
+ vz: Use virBitmapToDataBuf instead of virBitmapToData in vzDomainGetVcpus (Peter Krempa),<br />
+ vz: Remove dead code from vzDomainGetVcpus (Peter Krempa),<br />
+ qemu: move the guest status check before agent config and status check (Luyao Huang),<br />
+ qemu: remove deadcode in qemuDomain{HelperGetVcpus|GetIOThreadsLive} (Luyao Huang),<br />
+ vz: assign static IPs and default gateways for network adapter (Mikhail Feoktistov),<br />
+ vz: fix building capabilities (Dmitry Guryanov),<br />
+ qemu_driver: live/config checks cleanup (Pavel Hrdina),<br />
+ Post-release version bump to 1.2.18 (Michal Privoznik),<br />
+ cpu_map.xml: Expand Opteron_G4 CPU model (Jiri Denemark),<br />
+ cpu_map.xml: Expand Opteron_G2 CPU model (Jiri Denemark),<br />
+ cpu_map.xml: Expand Opteron_G1 CPU model (Jiri Denemark),<br />
+ cpu_map.xml: Expand Broadwell-noTSX CPU model (Jiri Denemark),<br />
+ cpu_map.xml: Expand Haswell-noTSX CPU model (Jiri Denemark),<br />
+ cpu_map.xml: Expand SandyBridge CPU model (Jiri Denemark),<br />
+ cpu_map.xml: Expand Westmere CPU model (Jiri Denemark),<br />
+ cpu_map.xml: Expand Nehalem CPU model (Jiri Denemark),<br />
+ cpu_map.xml: Expand Penryn CPU model (Jiri Denemark),<br />
+ cpu_map.xml: Expand Conroe CPU model (Jiri Denemark),<br />
+ cpu_map.xml: Expand kvm64 CPU model (Jiri Denemark),<br />
+ cpu_map.xml: Expand cpu64-rhel5 CPU model (Jiri Denemark),<br />
+ cpu_map.xml: Expand kvm32 CPU model (Jiri Denemark),<br />
+ cpu_map.xml: Expand qemu32 CPU model (Jiri Denemark),<br />
+ cpu_map.xml: Expand n270 CPU model (Jiri Denemark),<br />
+ cpu_map.xml: Expand coreduo CPU model (Jiri Denemark),<br />
+ cpu_map.xml: Expand pentiumpro CPU model (Jiri Denemark),<br />
+ cpu_map.xml: Expand pentium2 CPU model (Jiri Denemark),<br />
+ cpu_map.xml: Expand pentium CPU model (Jiri Denemark),<br />
+ cpu_map.xml: Expand 486 CPU model (Jiri Denemark),<br />
+ cpu_map.xml: Sort features in x86 CPU models (Jiri Denemark)<br />
+ </li><li>Cleanups:<br />
+ </li></ul>
+ <h3>1.2.17: Jul 02 2015</h3>
+ <ul><li>Features:<br />
+ numerous improvements and refactoring of the parallels driver(Maxim Nestratov)
+ hardening of vcpu code (Peter Krempa)
+ hardening of migration code (Jiri Denemark)
+ </li><li>Documentation:<br />
+ Fix typo incomaptible -&gt; incompatible (Andrea Bolognani),<br />
+ docs: Clarification for when allowed to use 'lun' for "volume" (John Ferlan),<br />
+ docs: document when pcie-root/dmi-to-pci-bridge support was added (Laine Stump),<br />
+ docs: Fix trivial copy-paste error (Martin Kletzander),<br />
+ docs: Properly mark acl.html dependencies (Michal Privoznik),<br />
+ docs: Correct typos in scsi hostdev and address elements (Eric Farman),<br />
+ docs: Fix XML schema handling of LUN address in hostdev tag (Eric Farman),<br />
+ virNetSocketRemoveIOCallback: Be explicit about unref (Michal Privoznik),<br />
+ man: clarify usage of virsh blockcopy with --xml (Ján Tomko),<br />
+ docs: Clarify that attribute name is not used for vhostuser (Maxime Leroy),<br />
+ maint: document use of zanata for translations (Eric Blake),<br />
+ qemu: Capitalize "storage" in qemuDomainAttachUSBMassStorageDevice() (Andrea Bolognani),<br />
+ docs: php: remove reference to Red Hat (Ján Tomko),<br />
+ monitor: Move documentation for qemuMonitorGetBalloonInfo (Peter Krempa)<br />
+ </li><li>Portability:<br />
+ admin: Fix mingw build by reordering includes (Martin Kletzander),<br />
+ util: process: fix build on FreeBSD (Roman Bogorodskiy),<br />
+ util: Properly return error from virGetUserID and virGetGroupID stubs (Peter Krempa),<br />
+ build: silence ar warnings on rawhide (Eric Blake),<br />
+ util: process: @pid in virProcessSetAffinity's BSD impl is not unused (Peter Krempa),<br />
+ libxl: load on FreeBSD (Roman Bogorodskiy)<br />
+ </li><li>Bug Fixes:<br />
+ phyp: Resolve Coverity FORWARD_NULL (John Ferlan),<br />
+ util: Resolve Coverity FORWARD_NULL (John Ferlan),<br />
+ util: Resolve Coverity FORWARD_NULL (John Ferlan),<br />
+ util: Resolve Coverity FORWARD_NULL (John Ferlan),<br />
+ lxc: Don't pass a local variable address randomly (Michal Privoznik),<br />
+ qemu: Resolve Coverity DEADCODE (John Ferlan),<br />
+ qemu: Audit memory size with memory hotplug operations (Peter Krempa),<br />
+ qemu: Avoid using ".(null)" in UNIX socket path (Jiri Denemark),<br />
+ qemu: agent: Don't automatically disable CPU0 via guest agent (Peter Krempa),<br />
+ qemu: End job even if exiting monitor after OpenGraphics(FD) fails (Luyao Huang),<br />
+ qemu: properly free addresses on non-serial chardev unplug (Ján Tomko),<br />
+ qemu: fix address allocation on chardev attach (Luyao Huang),<br />
+ libxl: Set def-&gt;vcpus after successfully modifying live vcpu count (Jim Fehlig),<br />
+ libxl: don't remove persistent domain on start failure (Jim Fehlig),<br />
+ libxl: don't overwrite domain state from statedir config (Jim Fehlig),<br />
+ qemu: Add missing on_crash lifecycle type (John Ferlan),<br />
+ Use the correct symbol for 'onCrash' (John Ferlan),<br />
+ mpath: Don't allow more than one mpath pool at a time (John Ferlan),<br />
+ mpath: Update path in CheckPool function (John Ferlan),<br />
+ conf: Validate disk lun using correct types (John Ferlan),<br />
+ Storage: Introduce shadow vol for refresh while the main vol builds. (Prerna Saxena),<br />
+ conf: storage: Fix duplicate check for gluster pools (Peter Krempa),<br />
+ qemu: event: Properly handle spice events (Peter Krempa),<br />
+ Revert "Introduce QEMU_CAPS_ARM_VIRT_PCI" (Peter Krempa),<br />
+ qemu: Close the agent connection only on agent channel events (Peter Krempa),<br />
+ storage: Set correct vol-&gt;type at VolCreate (John Ferlan),<br />
+ qemu: Fix assignment of the default spicevmc channel name (Jiri Denemark),<br />
+ qemu: Resolve Coverity RESOURCE_LEAK (John Ferlan),<br />
+ test: qemu: Make sure that wr_highest_offset_valid gets set properly (Peter Krempa),<br />
+ vz: Fix build after recent commit (Peter Krempa),<br />
+ qemuBuildMemoryBackendStr: Honour passed @pagesize (Michal Privoznik),<br />
+ qemuBuildMemoryBackendStr: Fix hugepages lookup process (Michal Privoznik),<br />
+ conf: Format scheduler priority when it is zero (Luyao Huang),<br />
+ qemu: Avoid removing persistent config if migration fails (Luyao Huang),<br />
+ scsi: Force error for SCSI pools on virStorageBackendSCSIFindLUs failure (John Ferlan),<br />
+ conf: Enforce scheduler name when parsing XML (Peter Krempa),<br />
+ qemu: caps: Fix syntax-check failure in version based capabilities (Peter Krempa),<br />
+ libxl: avoid freeing an uninitialised bitmap (Ian Campbell),<br />
+ virNetServerServiceClose: Don't leak sockets (Michal Privoznik),<br />
+ virNetSocket: Fix @watch corner case (Michal Privoznik),<br />
+ daemonSetupNetworking: Don't leak services (Michal Privoznik),<br />
+ scsi: Adjust return status from getBlockDevice (John Ferlan),<br />
+ qemuMigrationDriveMirror: Force raw format for NBD (Michal Privoznik),<br />
+ qemu: Jump to correct label in qemuDomainPinIOThread (Peter Krempa),<br />
+ conf: Fix virDomainObjGetDefs when getting persistent config on a live vm (Peter Krempa),<br />
+ rpc: Actually increase reference count on @srv in virNetDaemonAddServer (Peter Krempa),<br />
+ parallels: Fix false error messages in libvirt log (Mikhail Feoktistov),<br />
+ parallels: Fix initialization of buflen variable in each loop iteration (Mikhail Feoktistov),<br />
+ nodedev: update netdev feature bits before each dumpxml (Laine Stump),<br />
+ tests: Follow virnetserver to virnetdaemon transition (Michal Privoznik),<br />
+ daemon: Distribute admin_server.h (Michal Privoznik),<br />
+ daemon/Makefile: Add forgotten dependency (Michal Privoznik),<br />
+ util: virfile: Fix 'unknown cause' error if NFS mount point creation fails (Erik Skultety),<br />
+ util: Fix Coverity RESOURCE_LEAK (John Ferlan),<br />
+ storage: Generate correct parameters for CIFS (John Ferlan),<br />
+ rpc: Fix possible crash when MDNSAddEntry fails (Martin Kletzander),<br />
+ qemu: emulatorpin: Don't reset pinning when pinning to all cpus (Peter Krempa),<br />
+ storage: Disallow wiping an extended disk partition (John Ferlan),<br />
+ storage: Need to set secrettype for direct iscsi disk volume (John Ferlan),<br />
+ scsi: Need to translate disk source pool in config attach path (John Ferlan),<br />
+ network: escape quotes for dsmasq conf contents (Shivaprasad G Bhat),<br />
+ virsh: change-media: Fix behavior with --update without a source (Peter Krempa),<br />
+ rpc: Fix reference counting around virNetSocketAddIOCallback (Daniel P. Berrange),<br />
+ rpc: Don't use unrelated value as privateData of client (Daniel P. Berrange),<br />
+ mdns: Set error when failing due to missing avahi (Martin Kletzander),<br />
+ qemu: Update balloon info only if job is allowed (Peter Krempa),<br />
+ conf: Fix mistakes in pointer usage in virDomainObjGetDefs (Peter Krempa),<br />
+ check if console/channel PTY is null before attempting to open (Shivaprasad G Bhat),<br />
+ virnetdev: fix moving of 802.11 phys (Lubomir Rintel),<br />
+ util: process: Refactor and fix virProcessSetAffinity (Peter Krempa),<br />
+ util: Clear output broadcast address before filling it in (Martin Kletzander),<br />
+ virsh: Fix Ctrl-C behavior when watching a job (Jiri Denemark),<br />
+ libxl: Unbreak vcpu pinning (Peter Krempa),<br />
+ qemu: Fix possible crash in qemuProcessSetVcpuAffinities (Peter Krempa),<br />
+ qemu: Do not release device address on successful RNG attach (Luyao Huang),<br />
+ qemu: Need to return status of RNG device removal (Luyao Huang),<br />
+ test: fix IP address range failure test (Laine Stump),<br />
+ storage: RBD: do not return error when deleting non-existent volume (Erik Skultety),<br />
+ storage: Don't update volume objs list before we successfully create one (Erik Skultety),<br />
+ nwfilter: Fix sscanf off-by-one error in virNWFilterSnoopLeaseFileLoad (Erik Skultety),<br />
+ virsh: Fix printing of XML for pool-create-as (John Ferlan)<br />
+ </li><li>Improvements:<br />
+ conf: qemu: Taint VMs using custom device tree blob (Peter Krempa),<br />
+ conf: audit: Audit physical memory size rather than balloon request (Peter Krempa),<br />
+ libxl: honor domainGetXMLDesc() --inactive flag (Jim Fehlig),<br />
+ qemu: event: Clean up VNC monitor handling (Peter Krempa),<br />
+ qemuxml2argv: Remove Haswell CPU from unrelated tests (Jiri Denemark),<br />
+ Revert "Change livbirt version to 1.3.0 for the next release" (Martin Kletzander),<br />
+ Temporarily disable admin API (Martin Kletzander),<br />
+ spec: Remove admin package specification (Martin Kletzander),<br />
+ qemu: ignore assumptions about hotplug requirement when address is from config (Laine Stump),<br />
+ qemu: always permit PCI devices to be manually assigned to a PCIe bus (Laine Stump),<br />
+ qemu: refactor qemuBuildControllerDevStr to eliminate future duplicate code (Laine Stump),<br />
+ qemu: monitor: Remove qemuMonitorGetBlockExtent (Peter Krempa),<br />
+ qemu: Refactor qemuDomainGetBlockInfo (Peter Krempa),<br />
+ qemu: monitor: Open-code retrieval of wr_highest_offset (Peter Krempa),<br />
+ internal: Introduce virCheckNonEmptyStringArgGoto and reuse it (Peter Krempa),<br />
+ vz: add memory statistics (Nikolay Shirokovskiy),<br />
+ vz: add vcpu statistics (Nikolay Shirokovskiy),<br />
+ vz: cleanup, make in par net device lookup functions (Nikolay Shirokovskiy),<br />
+ vz: add net dev statistiscs (Nikolay Shirokovskiy),<br />
+ docs: Don't keep temporary files around (Michal Privoznik),<br />
+ test: Refactor testNodeGetCPUMap (Peter Krempa),<br />
+ test: Refactor vcpu pinning and vcpu info retrieval (Peter Krempa),<br />
+ test: Refactor testDomainSetVcpusFlags (Peter Krempa),<br />
+ test: Refactor test driver domain object retrieval (Peter Krempa),<br />
+ test: Drop locked access to testDriver-&gt;domains (Peter Krempa),<br />
+ test: Finalize removal of locking from driver-&gt;eventState (Peter Krempa),<br />
+ test: Refactor test driver event sending (Peter Krempa),<br />
+ test: Use atomic access to @nextDomID in struct virTestDriver (Peter Krempa),<br />
+ test: Annotate few fields of testDriver structure (Peter Krempa),<br />
+ test: Extract common parts of test driver data allocation (Peter Krempa),<br />
+ test: Extract code to free testDriver into testDriverFree (Peter Krempa),<br />
+ test: turn 'defaultConn' into a pointer (Peter Krempa),<br />
+ test: Rename testConn to testDriver (Peter Krempa),<br />
+ vz: Adapt to driver rename (Michal Privoznik),<br />
+ json: enhance parser test (Eric Blake),<br />
+ json: even stricter trailing garbage detection (Eric Blake),<br />
+ json: reject trailing garbage (Eric Blake),<br />
+ json: reject javascript comments (Eric Blake),<br />
+ json: cope with older yajl semantics (Eric Blake),<br />
+ vz: implementation of attach/detach network devices (Mikhail Feoktistov),<br />
+ Test for the new watchdog model diag288 (Boris Fiuczynski),<br />
+ Support for the new watchdog model diag288 (Boris Fiuczynski),<br />
+ Test for the new watchdog action inject-nmi (Boris Fiuczynski),<br />
+ Support for a new watchdog action inject-nmi (Boris Fiuczynski),<br />
+ vircapstest: Properly report error for failed tests (Michal Privoznik),<br />
+ conf: Adjust invalid secrettype setting during parse (John Ferlan),<br />
+ conf: improve the way we format blkiotune and cputune (Luyao Huang),<br />
+ Improve some errors for openconsole/channel (Luyao Huang),<br />
+ storage: Force setting of disk format type (John Ferlan),<br />
+ docs: Adjust Disk storage rng (John Ferlan),<br />
+ Convert SCSI logical unit from unsigned int to unsigned long long (Eric Farman),<br />
+ Print SCSI address attributes bus, target, unit as unsigned integer (Eric Farman),<br />
+ Read SCSI address attributes bus, target, unit as positive integer (Eric Farman),<br />
+ qemu: simplify json parsing (Eric Blake),<br />
+ json: make it easier to type-check when getting from object (Eric Blake),<br />
+ json: fully parse input string (Eric Blake),<br />
+ test: Switch to reference counting with testDomObjFromDomain (Peter Krempa),<br />
+ test: Reuse virDomainObjGetOneDef in testDomainGetVcpusFlags (Peter Krempa),<br />
+ virsh: blockcopy: Report error if the copy job fails (Peter Krempa),<br />
+ Introduce QEMU_CAPS_ARM_VIRT_PCI (Pavel Fedin),<br />
+ update sheepdog client] update sheepdog client path (Vasiliy Tolstov),<br />
+ qemu: cancel drive mirrors when p2p connection breaks (Jiri Denemark),<br />
+ qemu: Refactor qemuMigrationWaitForCompletion (Jiri Denemark),<br />
+ qemu: Don't pass redundant job name around (Jiri Denemark),<br />
+ qemu: Refactor qemuMigrationUpdateJobStatus (Jiri Denemark),<br />
+ qemu: Refactor qemuDomainGetJob{Info,Stats} (Jiri Denemark),<br />
+ qemu: Do not poll for spice migration status (Jiri Denemark),<br />
+ qemu_monitor: Wire up SPICE_MIGRATE_COMPLETED event (Jiri Denemark),<br />
+ qemu: Use domain condition for asyncAbort (Jiri Denemark),<br />
+ qemu: Cancel disk mirrors after libvirtd restart (Jiri Denemark),<br />
+ qemu: Refactor qemuMonitorBlockJobInfo (Jiri Denemark),<br />
+ qemu: Make qemuMigrationCancelDriveMirror usable without async job (Jiri Denemark),<br />
+ Pass domain object to private data formatter/parser (Jiri Denemark),<br />
+ qemu: Don't mess with disk-&gt;mirrorState (Jiri Denemark),<br />
+ qemu: Abort migration early if disk mirror failed (Jiri Denemark),<br />
+ qemu: Cancel storage migration in parallel (Jiri Denemark),<br />
+ qemu: Use domain condition for synchronous block jobs (Jiri Denemark),<br />
+ qemu: Properly report failed migration (Jiri Denemark),<br />
+ qemu: Introduce qemuBlockJobUpdate (Jiri Denemark),<br />
+ conf: Introduce per-domain condition variable (Jiri Denemark),<br />
+ lib: setvcpus: Remove bogus flag check (Peter Krempa),<br />
+ virsh: selective block device migration (Pavel Boldin),<br />
+ qemu: migration: selective block device migration (Pavel Boldin),<br />
+ util: add virTypedParamsAddStringList (Pavel Boldin),<br />
+ util: virTypedParams{Filter,GetStringList} (Pavel Boldin),<br />
+ util: multi-value parameters in virTypedParamsAdd* (Pavel Boldin),<br />
+ util: multi-value virTypedParameter (Pavel Boldin),<br />
+ virDomainDiskGetSource: Mark passed disk as 'const' (Michal Privoznik),<br />
+ conf: Move vcpu info parsing code into a separate function (Peter Krempa),<br />
+ qemu: 'privileged' flag is not really configuration (Peter Krempa),<br />
+ qemu: Reuse virDomainObjGetDefs in qemuDomainGetMemoryParameters (Peter Krempa),<br />
+ qemu: Refactor qemuDomainGetMemoryParameters (Peter Krempa),<br />
+ qemu: Refactor qemuDomainSetNumaParameters (Peter Krempa),<br />
+ qemu: Simplify qemuDomainSetInterfaceParameters by using virDomainObjGetDefs (Peter Krempa),<br />
+ qemu: Simplify qemuDomainGetVcpusFlags by using virDomainObjGetOneDef (Peter Krempa),<br />
+ qemu: Simplify qemuDomainGetEmulatorPinInfo by using virDomainObjGetOneDef (Peter Krempa),<br />
+ qemu: Simplify qemuDomainGetVcpuPinInfo by using virDomainObjGetOneDef (Peter Krempa),<br />
+ qemu: Simplify qemuDomainGetNumaParameters by using virDomainObjGetOneDef (Peter Krempa),<br />
+ qemu: Simplify qemuDomainGetInterfaceParameters by using virDomainObjGetOneDef (Peter Krempa),<br />
+ conf: Introduce helper to help getting correct def for getter functions (Peter Krempa),<br />
+ qemu: implement address for isa-serial (James Cowgill),<br />
+ qemu: Add a check for slot and base dimm address conflicts (Luyao Huang),<br />
+ daemon: Add the admin service to the admin server only if it was allocated (Peter Krempa),<br />
+ remove redundant condition (Ján Tomko),<br />
+ virSysinfo: Introduce SMBIOS type 2 support (Michal Privoznik),<br />
+ qemu: Report all supported machine types in capabilities (Jiri Denemark),<br />
+ tests: Sort EXTRA_DIST in the Makefile (Michal Privoznik),<br />
+ daemon: Don't just include admin RPC (Michal Privoznik),<br />
+ parallels: substitute parallels with vz spec file and Makefile (Maxim Nestratov),<br />
+ parallels: rename all parallels files and driver directory to vz (Maxim Nestratov),<br />
+ parallels: substitute parallels with vz in strings (Maxim Nestratov),<br />
+ parallels: change parallels prefixes to vz (Maxim Nestratov),<br />
+ virfile: virDirCreate: Insert blank lines to assure slightly better readability (Erik Skultety),<br />
+ util: virDirCreate: Child now exits with positive errno-code (Erik Skultety),<br />
+ lxc: set nosuid+nodev+noexec flags on /proc/sys mount (Eric W. Biederman),<br />
+ lxc: Rename daemon to dmn (Martin Kletzander),<br />
+ Revert "rpc: Add virNetServerGetNClients" (Martin Kletzander),<br />
+ Revert "admin: Add virAdmHello function" (Martin Kletzander),<br />
+ Change livbirt version to 1.3.0 for the next release (Martin Kletzander),<br />
+ Example virt-admin (Martin Kletzander),<br />
+ admin: Add virAdmHello function (Martin Kletzander),<br />
+ rpc: Add virNetServerGetNClients (Martin Kletzander),<br />
+ Add support for admin API in libvirt daemon (Martin Kletzander),<br />
+ Add configuration options for permissions on daemon's admin socket (Martin Kletzander),<br />
+ Add XML files with admin API specification (Martin Kletzander),<br />
+ Add libvirt-admin library (Martin Kletzander),<br />
+ Add admin error domain (Martin Kletzander),<br />
+ Build client headers for admin protocol (Martin Kletzander),<br />
+ Add admin protocol (Martin Kletzander),<br />
+ Teach gendispatch how to handle admin dispatching files (Martin Kletzander),<br />
+ tests: Adapt virnetservertest to daemon refactor (Martin Kletzander),<br />
+ Move daemon-related parts of virNetServer to virNetDaemon (Martin Kletzander),<br />
+ lxc: properly clean up qemu-nbd (Cédric Bosdonnat),<br />
+ Add virProcessGetPids to get all tasks of a process (Cédric Bosdonnat),<br />
+ storage: Adjust command arglist for gluster (John Ferlan),<br />
+ storage: Fix the schema and add tests for cifs pool (John Ferlan),<br />
+ configure: Remove check for pkcheck_supports_uid (Guido Günther),<br />
+ tests: Use libvirt properly with initialization and error dispatching (Martin Kletzander),<br />
+ Generate JSON with mDNS entries only when built --with-avahi (Martin Kletzander),<br />
+ build: Remove unnecessarily repeated rules for syms -&gt; def (Martin Kletzander),<br />
+ qemu: monitor: Add memory balloon support for virtio-ccw (Boris Fiuczynski),<br />
+ getOldStyleBlockDevice: Adjust formatting (Michal Privoznik),<br />
+ getNewStyleBlockDevice: Adjust formatting (Michal Privoznik),<br />
+ qemu caps: spell queue (Ján Tomko),<br />
+ qemu: Do not support 'serial' scsi-block 'lun' devices (John Ferlan),<br />
+ virCapabilitiesDomainDataLookup: Produce saner error message (Michal Privoznik),<br />
+ libxl: Add timestamp to the libxl driver log. (Anthony PERARD),<br />
+ qemu: update netdevs of the same mac addrs correctly (zhang bo),<br />
+ virsysinfo: s/system/sysdef/ (Michal Privoznik),<br />
+ cmdNetworkList: Introduce --name, --uuid, --table (Michal Privoznik),<br />
+ cmdNetworkList: switch to FILTER (Michal Privoznik),<br />
+ qemuBuildDriveStr: s/virBufferEscapeString/virBufferAsprintf/ (Michal Privoznik),<br />
+ virQEMUCapsArch: openrisc vs or32 (Michal Privoznik),<br />
+ virSysinfoDef: Exempt SYSTEM variables (Michal Privoznik),<br />
+ virSysinfoDef: Exempt BIOS variables (Michal Privoznik),<br />
+ tests: Distribute virnetserverdata (Michal Privoznik),<br />
+ schema: use arch list from basictypes for os arch attribute (James Cowgill),<br />
+ util: add virJSONValueCopy (Martin Kletzander),<br />
+ qemu: add multiqueue vhost-user support (Maxime Leroy),<br />
+ qemu: Add capability for vhost-user multiqueue (Martin Kletzander),<br />
+ conf: Ignore multiqueue with one queue. (Martin Kletzander),<br />
+ util: Make virProcessGetAffinity more readable and fix coverity warning (Peter Krempa),<br />
+ apibuild: Generate macro/@string attribute (Jiri Denemark),<br />
+ rpc: add testing of RPC JSON (de)serialization (Daniel P. Berrange),<br />
+ rpc: add API for checking IPv4/6 availability (Daniel P. Berrange),<br />
+ rpc: allow selection of TCP address family (Daniel P. Berrange),<br />
+ virNumaSetPagePoolSize: Produce friendlier error message (Michal Privoznik),<br />
+ logical: Fix typo in error message (John Ferlan),<br />
+ conf: fix domaincommon.rng to accept network name with quotes (Shivaprasad G Bhat),<br />
+ parallels: treat block devices as disks for containers (Maxim Nestratov),<br />
+ parallels: report SATA bus type for container block devices disks (Maxim Nestratov),<br />
+ parallels: process '/' mount point correctly for containers (Maxim Nestratov),<br />
+ parallels: add isCt parameter to prlsdkGetDiskInfo and prlsdkAddDisk (Maxim Nestratov),<br />
+ parallels: add block device statistics to driver (Nikolay Shirokovskiy),<br />
+ qemu: caps: Advertise arm 32-on-64 KVM option (Cole Robinson),<br />
+ qemu: caps: qemu-system-aarch64 supports armv7l (Cole Robinson),<br />
+ qemu: command: Support arm 32-on-64 KVM with -cpu aarch64=off (Cole Robinson),<br />
+ parallels: return only success from PCS event handler (Nikolay Shirokovskiy),<br />
+ parallels: simplify event types discrimination (Nikolay Shirokovskiy),<br />
+ utiltest: Use int8_t instead of char. (Michal Privoznik),<br />
+ Turn qemuMonitorFindBalloonObjectPath into a void function (Ján Tomko),<br />
+ Do not access the domain definition in qemuMonitorFindBalloonObjectPath (Ján Tomko),<br />
+ Only call SetMemoryStatsPeriod for virtio memballoon (Ján Tomko),<br />
+ Check for balloon model in qemuDomainSetMemoryStatsPeriod (Ján Tomko),<br />
+ Only call qemuMonitorGetMemoryStats for virtio memballoon (Ján Tomko),<br />
+ Invert the condition in qemuDomainMemoryStats (Ján Tomko),<br />
+ Add endjob label to qemuDomainMemoryStats (Ján Tomko),<br />
+ Remove path argument from qemuMonitorJSONFindLinkPath (Ján Tomko),<br />
+ Introduce qemuMonitorJSONFindLinkPath (Ján Tomko),<br />
+ Move qemuMonitorFindObjectPath to qemu_monitor_json (Ján Tomko),<br />
+ rpc: Make virNetServerAddClient function dynamic (Daniel P. Berrange),<br />
+ storage: Add check for valid FS types in checkPool callback (John Ferlan),<br />
+ storage: FS backend adjust error message on error path (John Ferlan),<br />
+ storage: Refactor storage pool type checks (John Ferlan),<br />
+ qemu: Check for qemu capability when calling virDomainGetBlockIoTune() (Martin Kletzander),<br />
+ qemu: Refactor qemuDomainSetVcpusFlags by reusing virDomainObjGetDefs (Peter Krempa),<br />
+ qemu: Refactor qemuDomainGetEmulatorPinInfo by reusing virDomainObjGetDefs (Peter Krempa),<br />
+ qemu: Refactor qemuDomainPinEmulator by reusing virDomainObjGetDefs (Peter Krempa),<br />
+ qemu: Refactor qemuDomainGetVcpuPinInfo by reusing virDomainObjGetDefs (Peter Krempa),<br />
+ qemu: Refactor qemuDomainPinVcpuFlags by reusing virDomainObjGetDefs (Peter Krempa),<br />
+ qemu: Refactor qemuDomainSetBlkioParameters by reusing virDomainObjGetDefs (Peter Krempa),<br />
+ qemu: Refactor qemuDomainChgIOThread by reusing virDomainObjGetDefs (Peter Krempa),<br />
+ qemu: Refactor qemuDomainPinIOThread by reusing virDomainObjGetDefs (Peter Krempa),<br />
+ qemu: Refactor qemuDomainGetIOThreadInfo by reusing virDomainObjGetDefs (Peter Krempa),<br />
+ qemu: Refactor qemuDomainGetVcpusFlags by reusing virDomainObjGetDefs (Peter Krempa),<br />
+ qemu: Refactor qemuDomainSetMemoryStatsPeriod by reusing virDomainObjGetDefs (Peter Krempa),<br />
+ qemu: Refactor qemuDomainSetMemoryFlags by reusing virDomainObjGetDefs (Peter Krempa),<br />
+ conf: Add new helpers to resolve virDomainModificationImpact to domain defs (Peter Krempa),<br />
+ libxl: Don't remove vcpu pin definition in libxlDomainCleanup (Peter Krempa),<br />
+ Revert "cputune: Support cputune for xend driver" (Peter Krempa),<br />
+ qemu: libxl: vcpupin: Don't reset pinning when pinning to all pcpus (Peter Krempa),<br />
+ lib: virDomainPinIOThread: Remove spurious overflow check (Peter Krempa),<br />
+ conf: Store cpu count as unsigned int (Peter Krempa),<br />
+ qemu: Refactor qemuDomainGetInfo (Peter Krempa),<br />
+ qemu: Add helper to update domain balloon size and refactor usage places (Peter Krempa),<br />
+ qemu: process: Update current balloon state to maximum on vm startup (Peter Krempa),<br />
+ Always add 'console' matching the 'serial' device (Ján Tomko),<br />
+ qemu: process: Refactor setup of memory ballooning (Peter Krempa),<br />
+ qemu: monitor: Make qemuMonitorSetBalloon operate on unsinged long long (Peter Krempa),<br />
+ util: Add macro to overflow check integer assignments (Peter Krempa),<br />
+ libxl: Refactor libxlDomainGetVcpuPinInfo (Peter Krempa),<br />
+ libxl: Reuse virBitmapToData in libxlDomainSetVcpuAffinities (Peter Krempa),<br />
+ qemu: Refactor qemuDomainHelperGetVcpus by reusing virBitmapToDataBuf (Peter Krempa),<br />
+ qemu: Reuse virBitmapToDataBuf in qemuDomainGetEmulatorPinInfo (Peter Krempa),<br />
+ qemu: Use virBitmapToDataBuf in qemuDomainGetVcpuPinInfo (Peter Krempa),<br />
+ util: bitmap: Add virBitmapToDataBuf that does not allocate the buffer (Peter Krempa),<br />
+ conf: Move pinning information definition closer to the usage place (Peter Krempa),<br />
+ conf: Refactor emulatorpin handling (Peter Krempa),<br />
+ parallels: set virtType depending on driver name (Maxim Nestratov),<br />
+ parallels: recommend to connect to vz:///system when connection fails (Maxim Nestratov),<br />
+ parallels: increment the number of connection drivers (Maxim Nestratov),<br />
+ parallels: add a new vz connection driver and hypervisor structures (Maxim Nestratov),<br />
+ parallels: accept vz as a driver uri and name (Maxim Nestratov),<br />
+ parallels: add new guest capabilities assigned to vz driver (Maxim Nestratov),<br />
+ parallels: use newly introduced VIR_DOMAIN_VIRT_VZ (Maxim Nestratov),<br />
+ parallels: introduce vz driver constant and string (Maxim Nestratov),<br />
+ audit: Audit number of iothreads at domain startup (Luyao Huang),<br />
+ util: report all address range errors in virSocketAddrGetRange() (Laine Stump),<br />
+ network: cleanup range loop in networkDnsmasqConfContents (Laine Stump),<br />
+ network: validate DHCP ranges are completely within defined network (Laine Stump),<br />
+ Simplify virNodeCountThreadSiblings (Ján Tomko),<br />
+ Report errors in virNodeCountThreadSiblings (Ján Tomko),<br />
+ virsh: Move error messages inside vshCommandOpt*() functions (Andrea Bolognani),<br />
+ virsh: Pass vshControl to all vshCommandOpt*() calls (Andrea Bolognani),<br />
+ virsh: Make vshCommandOptScaledInt() use vshCommandOpt() (Andrea Bolognani),<br />
+ virsh: Improve vshCommandOptTimeoutToMs() (Andrea Bolognani),<br />
+ virsh: Use standard error messages in vshCommandOptTimeoutToMs() (Andrea Bolognani),<br />
+ tests: Add a bunch of new tests to virsh-optparse (Andrea Bolognani),<br />
+ maint: update to latest gnulib (Eric Blake),<br />
+ spec: fixes for recently introduced libxl conf files (Jim Fehlig),<br />
+ virsh: make negative values with vol-resize more convenient (Ján Tomko),<br />
+ qemu: Automatically add &lt;panic&gt; element for pSeries guests. (Andrea Bolognani),<br />
+ qemu: Allow panic device for pSeries guests (Andrea Bolognani),<br />
+ qemu: Improve error message for missing QEMU_CAPS_DEVICE_PANIC. (Andrea Bolognani),<br />
+ Post-release version bump to 1.2.17 (Daniel P. Berrange)<br />
+ </li><li>Cleanups:<br />
+ qemu: monitor: Fix indentation in qemuMonitorJSONGetOneBlockStatsInfo (Peter Krempa),<br />
+ vz_utils: Reformat (Michal Privoznik),<br />
+ vz_storage: Reformat (Michal Privoznik),<br />
+ vz_sdk: Reformat (Michal Privoznik),<br />
+ vz_network: Reformat (Michal Privoznik),<br />
+ vz_driver: Reformat (Michal Privoznik),<br />
+ test: Drop unused attribute @path from testDriver struct (Peter Krempa),<br />
+ test: Drop useless forward declaration (Peter Krempa),<br />
+ vz: fix syntax-check errors (Dmitry Guryanov),<br />
+ virQEMUCapsComputeCmdFlags: Indent correctly (Michal Privoznik),<br />
+ qemuMigrationBeginPhase: Fix function header indentation (Michal Privoznik),<br />
+ qemu: Fix double space in error message in qemuDomainGetVcpusFlags (Peter Krempa),<br />
+ libvirt.spec: Don't expect virt-admin in libvirt-admin yet (Michal Privoznik),<br />
+ netserver: Remove duplicate forward declaration (Martin Kletzander),<br />
+ Revert "Example virt-admin" (Martin Kletzander),<br />
+ apibuild: Fix indentation (Jiri Denemark),<br />
+ parallels: fix formatting errors in parallels driver (Dmitry Guryanov),<br />
+ storage: Remove extraneous @conn from function comments (John Ferlan),<br />
+ remote: fix odd comma operator (Eric Blake),<br />
+ maint: remove incorrect apostrophes from 'its' (Ján Tomko)<br />
+ </li></ul>
<h3>1.2.16: Jun 1 2015</h3>
<ul><li>Features:<br />
Introduce pci-serial (Michal Privoznik),<br />
diff --git a/docs/news.html.in b/docs/news.html.in
index aa3154112..34c1a4bea 100644
--- a/docs/news.html.in
+++ b/docs/news.html.in
@@ -9,6 +9,612 @@
<p>Here is the list of official releases, it is also possible to just use the <a href="downloads.html">GIT version or snapshot</a>, contact the mailing list
and check the <a href="http://libvirt.org/git/?p=libvirt.git;a=log">GIT log</a> to gauge progress.</p>
+ <h3>v1.2.18: Aug 03 2015</h3>
+ <ul>
+ <li>Features:<br/>
+ libxl: support dom0 (Jim Fehlig),<br/>
+ </li>
+
+ <li>Documentation:<br/>
+ fix typo in qemu_monitor (Cao jin),<br/>
+ docs: bhyve: document clock configuration (Roman Bogorodskiy),<br/>
+ viraccessperm.h: Fix some typos (Michal Privoznik),<br/>
+ docs: Document how libvirt handles companion controllers (Martin Kletzander),<br/>
+ daemonRunStateInit: Fix a typo on a comment (Michal Privoznik)<br/>
+ </li>
+
+ <li>Portability:<br/>
+ netdev: fix build on FreeBSD (Roman Bogorodskiy),<br/>
+ spec: Fix polkit dep on F23 (Cole Robinson),<br/>
+ nodeinfo: fix build on FreeBSD (Roman Bogorodskiy),<br/>
+ Escape left brace as new perl suggests (Martin Kletzander)<br/>
+ </li>
+
+ <li>Bug Fixes:<br/>
+ qemu: Do not reset labels when migration fails (Jiri Denemark),<br/>
+ qemu: Reject migration with memory-hotplug if destination doesn't support it (Peter Krempa),<br/>
+ Load nbd module before running qemu-nbd (Cédric Bosdonnat),<br/>
+ lxc: Don't accidentaly reset autostart flag in virLXCProcessCleanup (Peter Krempa),<br/>
+ remote: fix typo in remoteDomainOpenGraphicsFD (Daniel P. Berrange),<br/>
+ qemu: Check for iotune_max support properly (Martin Kletzander),<br/>
+ Renamed deconfigured-cpus to allow make dist (Daniel Veillard),<br/>
+ storage: allow zero capacity with non-backing file to be created (Chris J Arges),<br/>
+ nodeinfo: Check for SYSFS_INFINIBAND_DIR before open (John Ferlan),<br/>
+ qemu: fix the error cover issue in SetMemoryParameters (Luyao Huang),<br/>
+ nodeinfo: Fix nodeGetCPUBitmap()'s fallback code path (Andrea Bolognani),<br/>
+ tests: Restore links in deconfigured-cpus nodeinfo test (Andrea Bolognani),<br/>
+ cgroup: Drop resource partition from virSystemdMakeScopeName (Peter Krempa),<br/>
+ qemu: Reject updating unsupported disk information (Martin Kletzander),<br/>
+ storage: Fix pool building when directory already exists (Christophe Fergeau),<br/>
+ rpc: ensure daemon is spawn even if dead socket exists (Daniel P. Berrange),<br/>
+ rbd: Return error from rbd_create for message processing (John Ferlan),<br/>
+ qemuMigrationRun: Don't leak @fd (Michal Privoznik),<br/>
+ Fix qemu-nbd cleanup crashes (Cédric Bosdonnat),<br/>
+ network: Add another collision check into networkCheckRouteCollision (Martin Kletzander),<br/>
+ nodeinfo: fix to parse present cpus rather than possible cpus (Kothapally Madhu Pavan),<br/>
+ libxl: set dom0 state to running (Jim Fehlig),<br/>
+ rpc: Rework timerActive logic in daemon (Martin Kletzander),<br/>
+ qemu: Check duplicate WWNs also for hotplugged disks (Peter Krempa),<br/>
+ Fix cloning of raw, sparse volumes (Prerna Saxena),<br/>
+ qemu: don't use initialized ret in qemuRemoveSharedDevice (Guido Günther),<br/>
+ qemu: report error for non-existing disk in blockjobinfo (Luyao Huang),<br/>
+ conf: Don't allow duplicated target names regardless of bus (John Ferlan),<br/>
+ storage: Revert volume obj list updating after volume creation (4749d82a) (Erik Skultety),<br/>
+ qemu: Fix integer/boolean logic in qemuSetUnprivSGIO (John Ferlan),<br/>
+ qemu: report error when shmem has an invalid address (Luyao Huang),<br/>
+ qemu: Auto assign pci addresses for shared memory devices (Luyao Huang),<br/>
+ vz: use PRL_USE_VNET_NAME_FOR_BRIDGE_NAME (Maxim Nestratov),<br/>
+ Explicitly format the isa-fdc controller for newer q35 machines (Ján Tomko),<br/>
+ virt-aa-helper: add unix channels for nserials as well (Serge Hallyn),<br/>
+ storage: Fix regression in storagePoolUpdateAllState (Erik Skultety),<br/>
+ better patch for the XSS search issue (Daniel Veillard),<br/>
+ Avoid XSS vulnerability on the search engine (Daniel Veillard),<br/>
+ vz: fix SDK event dispatching (Nikolay Shirokovskiy),<br/>
+ util: Avoid Coverity FORWARD_NULL (John Ferlan),<br/>
+ virsh: report error if vcpu number exceed the guest maxvcpu number (Luyao Huang),<br/>
+ virt-aa-helper: Fix permissions for vhost-user socket files (Michal Dubiel)<br/>
+ </li>
+
+ <li>Improvements:<br/>
+ qemu: Properly check for incoming migration job (Jiri Denemark),<br/>
+ Fix syntax-check: missing "%s" (Cédric Bosdonnat),<br/>
+ qemu: Adjust VM id allocation (Erik Skultety),<br/>
+ admin: Tiny cleanups (Martin Kletzander),<br/>
+ tests: Finish rename of the long nodeinfo test case (Martin Kletzander),<br/>
+ conf: add virDomainControllerDefNew() (Laine Stump),<br/>
+ qemu: reorganize loop in qemuDomainAssignPCIAddresses (Laine Stump),<br/>
+ conf: pay attention to bus minSlot/maxSlot when autoassigning PCI addresses (Laine Stump),<br/>
+ tests: add vol-qcow2-zerocapacity test to storagevolxml2argvtest (Chris J Arges),<br/>
+ Revert "qemu: Use heads parameter for QXL driver" (Martin Kletzander),<br/>
+ test: introduce a function in test driver to check get vcpupin info (Luyao Huang),<br/>
+ conf: reorganize virNetworkDHCPDefParseXML (Laine Stump),<br/>
+ nodeinfo: Check for errors when reading core_id (Andrea Bolognani),<br/>
+ bhyve: add UTC clock support (Roman Bogorodskiy),<br/>
+ configure: clarify rationale for checking pkcheck (Daniel P. Berrange),<br/>
+ nodeinfo: Calculate present and online CPUs only once (Andrea Bolognani),<br/>
+ nodeinfo: Use a bitmap to keep track of node CPUs (Andrea Bolognani),<br/>
+ nodeinfo: Use nodeGetOnlineCPUBitmap() when parsing node (Andrea Bolognani),<br/>
+ nodeinfo: Phase out cpu_set_t usage (Andrea Bolognani),<br/>
+ nodeinfo: Rename nodeGetCPUBitmap() to nodeGetOnlineCPUBitmap() (Andrea Bolognani),<br/>
+ nodeinfo: Remove out parameter from nodeGetCPUBitmap() (Andrea Bolognani),<br/>
+ nodeinfo: Add old kernel compatibility to nodeGetPresentCPUBitmap() (Andrea Bolognani),<br/>
+ nodeinfo: Rename linuxParseCPUmax() to linuxParseCPUCount() (Andrea Bolognani),<br/>
+ nodeinfo: Introduce linuxGetCPUOnlinePath() (Andrea Bolognani),<br/>
+ nodeinfo: Introduce linuxGetCPUGlobalPath() (Andrea Bolognani),<br/>
+ nodeinfo: Add nodeGetPresentCPUBitmap() to libvirt_private.syms (Andrea Bolognani),<br/>
+ virsh: Refactor block job waiting in cmdBlockCopy (Peter Krempa),<br/>
+ virsh: Refactor block job waiting in cmdBlockCommit (Peter Krempa),<br/>
+ virsh: Refactor block job waiting in cmdBlockPull (Peter Krempa),<br/>
+ qemu: Update state of block job to READY only if it actually is ready (Peter Krempa),<br/>
+ virsh: Refactor argument handling in cmdBlockPull (Peter Krempa),<br/>
+ virsh: Refactor argument handling in cmdBlockCopy (Peter Krempa),<br/>
+ virsh: Refactor argument checking in cmdBlockCommit (Peter Krempa),<br/>
+ virsh: Kill blockJobImpl by moving the final impl into cmdBlockCommit (Peter Krempa),<br/>
+ virsh: Split out block pull implementation from blockJobImpl (Peter Krempa),<br/>
+ virsh: block job: separate abort from blockJobImpl (Peter Krempa),<br/>
+ virsh: blockjob: Split out vshBlockJobSetSpeed from blockJobImpl (Peter Krempa),<br/>
+ virsh: cmdBlockJob: Switch to declarative flag interlocking (Peter Krempa),<br/>
+ virsh: blockjob: Extract block job info code into a separate function (Peter Krempa),<br/>
+ nodedev: add RDMA and tx-udp_tnl-segmentation NIC capabilities (Moshe Levi),<br/>
+ qemu: Use heads parameter for QXL driver (Frediano Ziglio),<br/>
+ rbd: Use RBD format 2 by default when creating images. (Wido den Hollander),<br/>
+ virsh: Don't output node frequency if unknown (Martin Kletzander),<br/>
+ qemu: Test for virtio-9p-ccw support (Boris Fiuczynski),<br/>
+ qemu: Make virtio-9p-ccw the default for s390-ccw-virtio machines (Boris Fiuczynski),<br/>
+ qemu: Support for virtio-9p-ccw (Boris Fiuczynski),<br/>
+ virsh: Teach cmdFreepages to work with lxc driver (Michal Privoznik),<br/>
+ cmdVcpuPin: Remove dead code (Michal Privoznik),<br/>
+ lxc: wait for nbd device to be up to get its PIDs (Cédric Bosdonnat),<br/>
+ nodeinfo: Formatting changes (Andrea Bolognani),<br/>
+ nodeinfo: Make sysfs_prefix usage more consistent (Andrea Bolognani),<br/>
+ qemu: process: Improve update of maximum balloon state at startup (Peter Krempa),<br/>
+ qemuDomainSetNumaParamsLive: Check for NUMA mode more wisely (Michal Privoznik),<br/>
+ conf: Add getter for network routes (Martin Kletzander),<br/>
+ tests: Add nodeinfo test for non-present CPUs (Andrea Bolognani),<br/>
+ nodeinfo: Add sysfs_prefix to nodeGetMemoryStats (John Ferlan),<br/>
+ nodeinfo: Add sysfs_prefix to nodeCapsInitNUMA (John Ferlan),<br/>
+ nodeinfo: Add sysfs_prefix to nodeGetInfo (John Ferlan),<br/>
+ nodeinfo: Add sysfs_prefix to nodeGetCPUMap (John Ferlan),<br/>
+ nodeinfo: Add sysfs_prefix to nodeGetCPUBitmap (John Ferlan),<br/>
+ nodeinfo: Add sysfs_prefix to nodeGetPresentCPUBitmap (John Ferlan),<br/>
+ nodeinfo: Add sysfs_prefix to nodeGetCPUCount (John Ferlan),<br/>
+ nodeinfo: Introduce local linuxGetCPUPresentPath (John Ferlan),<br/>
+ virt-driver-vz: Require parallels-7.0.22 at least (Michal Privoznik),<br/>
+ configure: Move Virtuozzo checks to a specific module (Michal Privoznik),<br/>
+ qemuProcessHandleMigrationStatus: Update migration status more frequently (Michal Privoznik),<br/>
+ vz: fix cleanup of nets of bridged type (Dmitry Guryanov),<br/>
+ qemu: Use error from Finish instead of "unexpectedly failed" (Jiri Denemark),<br/>
+ qemu: Don't report false error from MigrateFinish (Jiri Denemark),<br/>
+ qemu: Remember incoming migration errors (Jiri Denemark),<br/>
+ Introduce virErrorCopyNew (Jiri Denemark),<br/>
+ Introduce virHashAtomic (Jiri Denemark),<br/>
+ cpu: Add support for MPX and AVX512 Intel features (Jiri Denemark),<br/>
+ virt-aa-helper: add DomainGuest to mockup caps (Cédric Bosdonnat),<br/>
+ virt-aa-helper: rename ctl-&gt;hvm to ctl-&gt;os (Cédric Bosdonnat),<br/>
+ Get more libvirt errors from virt-aa-helper (Cédric Bosdonnat),<br/>
+ virt-aa-helper: fix rules for paths with trailing slash (Cédric Bosdonnat),<br/>
+ rpc: Add virNetDaemonHasClients (Martin Kletzander),<br/>
+ Rewrite allocation tracking when cloning volumes (Ján Tomko),<br/>
+ qemu: Drop LFs at the end of error from QEMU log (Jiri Denemark),<br/>
+ qemu: Log all arguments of qemuProcessStart (Jiri Denemark),<br/>
+ qemu: Wait for migration events on domain condition (Jiri Denemark),<br/>
+ qemu: Update migration state according to MIGRATION event (Jiri Denemark),<br/>
+ qemuDomainGetJobStatsInternal: Support migration events (Jiri Denemark),<br/>
+ qemu: Enable migration events on QMP monitor (Jiri Denemark),<br/>
+ qemu_monitor: Wire up MIGRATION event (Jiri Denemark),<br/>
+ qemu_hotplug: try harder to eject media (Pavel Hrdina),<br/>
+ monitor: detect that eject fails because the tray is locked (Pavel Hrdina),<br/>
+ virDomainObjSignal: drop this function (Pavel Hrdina),<br/>
+ virCondWaitUntil: add another return value (Pavel Hrdina),<br/>
+ qemu: Refactor qemuSetUnprivSGIO return values (John Ferlan),<br/>
+ qemu: Inline qemuGetHostdevPath (John Ferlan),<br/>
+ qemu: Refactor qemuCheckSharedDisk to create qemuCheckUnprivSGIO (John Ferlan),<br/>
+ libxl: rework setting the state of virDomainObj (Jim Fehlig),<br/>
+ libxl: support dom0 (Jim Fehlig),<br/>
+ qemu: Introduce qemuGetHostdevPath (John Ferlan),<br/>
+ qemu: Introduce qemuIsSharedHostdev (John Ferlan),<br/>
+ docs: Clarify unprivileged sgio feature (John Ferlan),<br/>
+ conf: use virDomainChrSourceDef to save server path (Luyao Huang),<br/>
+ qemu: Refactor creation of shared memory device commandline (Luyao Huang),<br/>
+ qemu: Assign IDs for shared memory devices (Luyao Huang),<br/>
+ Separate isa-fdc options generation (Ján Tomko),<br/>
+ Add support for portable-rpcgen from portablexdr library (Pavel Fedin),<br/>
+ Remove explicit enum from protocol structures (Pavel Fedin),<br/>
+ util: bitmap: Don't alloc overly large binary bitmaps (Peter Krempa),<br/>
+ vz: Use virBitmapToDataBuf instead of virBitmapToData in vzDomainGetVcpus (Peter Krempa),<br/>
+ vz: Remove dead code from vzDomainGetVcpus (Peter Krempa),<br/>
+ qemu: move the guest status check before agent config and status check (Luyao Huang),<br/>
+ qemu: remove deadcode in qemuDomain{HelperGetVcpus|GetIOThreadsLive} (Luyao Huang),<br/>
+ vz: assign static IPs and default gateways for network adapter (Mikhail Feoktistov),<br/>
+ vz: fix building capabilities (Dmitry Guryanov),<br/>
+ qemu_driver: live/config checks cleanup (Pavel Hrdina),<br/>
+ Post-release version bump to 1.2.18 (Michal Privoznik),<br/>
+ cpu_map.xml: Expand Opteron_G4 CPU model (Jiri Denemark),<br/>
+ cpu_map.xml: Expand Opteron_G2 CPU model (Jiri Denemark),<br/>
+ cpu_map.xml: Expand Opteron_G1 CPU model (Jiri Denemark),<br/>
+ cpu_map.xml: Expand Broadwell-noTSX CPU model (Jiri Denemark),<br/>
+ cpu_map.xml: Expand Haswell-noTSX CPU model (Jiri Denemark),<br/>
+ cpu_map.xml: Expand SandyBridge CPU model (Jiri Denemark),<br/>
+ cpu_map.xml: Expand Westmere CPU model (Jiri Denemark),<br/>
+ cpu_map.xml: Expand Nehalem CPU model (Jiri Denemark),<br/>
+ cpu_map.xml: Expand Penryn CPU model (Jiri Denemark),<br/>
+ cpu_map.xml: Expand Conroe CPU model (Jiri Denemark),<br/>
+ cpu_map.xml: Expand kvm64 CPU model (Jiri Denemark),<br/>
+ cpu_map.xml: Expand cpu64-rhel5 CPU model (Jiri Denemark),<br/>
+ cpu_map.xml: Expand kvm32 CPU model (Jiri Denemark),<br/>
+ cpu_map.xml: Expand qemu32 CPU model (Jiri Denemark),<br/>
+ cpu_map.xml: Expand n270 CPU model (Jiri Denemark),<br/>
+ cpu_map.xml: Expand coreduo CPU model (Jiri Denemark),<br/>
+ cpu_map.xml: Expand pentiumpro CPU model (Jiri Denemark),<br/>
+ cpu_map.xml: Expand pentium2 CPU model (Jiri Denemark),<br/>
+ cpu_map.xml: Expand pentium CPU model (Jiri Denemark),<br/>
+ cpu_map.xml: Expand 486 CPU model (Jiri Denemark),<br/>
+ cpu_map.xml: Sort features in x86 CPU models (Jiri Denemark)<br/>
+ </li>
+
+ <li>Cleanups:<br/>
+ </li>
+ </ul>
+ <h3>1.2.17: Jul 02 2015</h3>
+ <ul>
+ <li>Features:<br/>
+ numerous improvements and refactoring of the parallels driver(Maxim Nestratov)
+ hardening of vcpu code (Peter Krempa)
+ hardening of migration code (Jiri Denemark)
+ </li>
+
+ <li>Documentation:<br/>
+ Fix typo incomaptible -&gt; incompatible (Andrea Bolognani),<br/>
+ docs: Clarification for when allowed to use 'lun' for "volume" (John Ferlan),<br/>
+ docs: document when pcie-root/dmi-to-pci-bridge support was added (Laine Stump),<br/>
+ docs: Fix trivial copy-paste error (Martin Kletzander),<br/>
+ docs: Properly mark acl.html dependencies (Michal Privoznik),<br/>
+ docs: Correct typos in scsi hostdev and address elements (Eric Farman),<br/>
+ docs: Fix XML schema handling of LUN address in hostdev tag (Eric Farman),<br/>
+ virNetSocketRemoveIOCallback: Be explicit about unref (Michal Privoznik),<br/>
+ man: clarify usage of virsh blockcopy with --xml (Ján Tomko),<br/>
+ docs: Clarify that attribute name is not used for vhostuser (Maxime Leroy),<br/>
+ maint: document use of zanata for translations (Eric Blake),<br/>
+ qemu: Capitalize "storage" in qemuDomainAttachUSBMassStorageDevice() (Andrea Bolognani),<br/>
+ docs: php: remove reference to Red Hat (Ján Tomko),<br/>
+ monitor: Move documentation for qemuMonitorGetBalloonInfo (Peter Krempa)<br/>
+ </li>
+
+ <li>Portability:<br/>
+ admin: Fix mingw build by reordering includes (Martin Kletzander),<br/>
+ util: process: fix build on FreeBSD (Roman Bogorodskiy),<br/>
+ util: Properly return error from virGetUserID and virGetGroupID stubs (Peter Krempa),<br/>
+ build: silence ar warnings on rawhide (Eric Blake),<br/>
+ util: process: @pid in virProcessSetAffinity's BSD impl is not unused (Peter Krempa),<br/>
+ libxl: load on FreeBSD (Roman Bogorodskiy)<br/>
+ </li>
+
+ <li>Bug Fixes:<br/>
+ phyp: Resolve Coverity FORWARD_NULL (John Ferlan),<br/>
+ util: Resolve Coverity FORWARD_NULL (John Ferlan),<br/>
+ util: Resolve Coverity FORWARD_NULL (John Ferlan),<br/>
+ util: Resolve Coverity FORWARD_NULL (John Ferlan),<br/>
+ lxc: Don't pass a local variable address randomly (Michal Privoznik),<br/>
+ qemu: Resolve Coverity DEADCODE (John Ferlan),<br/>
+ qemu: Audit memory size with memory hotplug operations (Peter Krempa),<br/>
+ qemu: Avoid using ".(null)" in UNIX socket path (Jiri Denemark),<br/>
+ qemu: agent: Don't automatically disable CPU0 via guest agent (Peter Krempa),<br/>
+ qemu: End job even if exiting monitor after OpenGraphics(FD) fails (Luyao Huang),<br/>
+ qemu: properly free addresses on non-serial chardev unplug (Ján Tomko),<br/>
+ qemu: fix address allocation on chardev attach (Luyao Huang),<br/>
+ libxl: Set def-&gt;vcpus after successfully modifying live vcpu count (Jim Fehlig),<br/>
+ libxl: don't remove persistent domain on start failure (Jim Fehlig),<br/>
+ libxl: don't overwrite domain state from statedir config (Jim Fehlig),<br/>
+ qemu: Add missing on_crash lifecycle type (John Ferlan),<br/>
+ Use the correct symbol for 'onCrash' (John Ferlan),<br/>
+ mpath: Don't allow more than one mpath pool at a time (John Ferlan),<br/>
+ mpath: Update path in CheckPool function (John Ferlan),<br/>
+ conf: Validate disk lun using correct types (John Ferlan),<br/>
+ Storage: Introduce shadow vol for refresh while the main vol builds. (Prerna Saxena),<br/>
+ conf: storage: Fix duplicate check for gluster pools (Peter Krempa),<br/>
+ qemu: event: Properly handle spice events (Peter Krempa),<br/>
+ Revert "Introduce QEMU_CAPS_ARM_VIRT_PCI" (Peter Krempa),<br/>
+ qemu: Close the agent connection only on agent channel events (Peter Krempa),<br/>
+ storage: Set correct vol-&gt;type at VolCreate (John Ferlan),<br/>
+ qemu: Fix assignment of the default spicevmc channel name (Jiri Denemark),<br/>
+ qemu: Resolve Coverity RESOURCE_LEAK (John Ferlan),<br/>
+ test: qemu: Make sure that wr_highest_offset_valid gets set properly (Peter Krempa),<br/>
+ vz: Fix build after recent commit (Peter Krempa),<br/>
+ qemuBuildMemoryBackendStr: Honour passed @pagesize (Michal Privoznik),<br/>
+ qemuBuildMemoryBackendStr: Fix hugepages lookup process (Michal Privoznik),<br/>
+ conf: Format scheduler priority when it is zero (Luyao Huang),<br/>
+ qemu: Avoid removing persistent config if migration fails (Luyao Huang),<br/>
+ scsi: Force error for SCSI pools on virStorageBackendSCSIFindLUs failure (John Ferlan),<br/>
+ conf: Enforce scheduler name when parsing XML (Peter Krempa),<br/>
+ qemu: caps: Fix syntax-check failure in version based capabilities (Peter Krempa),<br/>
+ libxl: avoid freeing an uninitialised bitmap (Ian Campbell),<br/>
+ virNetServerServiceClose: Don't leak sockets (Michal Privoznik),<br/>
+ virNetSocket: Fix @watch corner case (Michal Privoznik),<br/>
+ daemonSetupNetworking: Don't leak services (Michal Privoznik),<br/>
+ scsi: Adjust return status from getBlockDevice (John Ferlan),<br/>
+ qemuMigrationDriveMirror: Force raw format for NBD (Michal Privoznik),<br/>
+ qemu: Jump to correct label in qemuDomainPinIOThread (Peter Krempa),<br/>
+ conf: Fix virDomainObjGetDefs when getting persistent config on a live vm (Peter Krempa),<br/>
+ rpc: Actually increase reference count on @srv in virNetDaemonAddServer (Peter Krempa),<br/>
+ parallels: Fix false error messages in libvirt log (Mikhail Feoktistov),<br/>
+ parallels: Fix initialization of buflen variable in each loop iteration (Mikhail Feoktistov),<br/>
+ nodedev: update netdev feature bits before each dumpxml (Laine Stump),<br/>
+ tests: Follow virnetserver to virnetdaemon transition (Michal Privoznik),<br/>
+ daemon: Distribute admin_server.h (Michal Privoznik),<br/>
+ daemon/Makefile: Add forgotten dependency (Michal Privoznik),<br/>
+ util: virfile: Fix 'unknown cause' error if NFS mount point creation fails (Erik Skultety),<br/>
+ util: Fix Coverity RESOURCE_LEAK (John Ferlan),<br/>
+ storage: Generate correct parameters for CIFS (John Ferlan),<br/>
+ rpc: Fix possible crash when MDNSAddEntry fails (Martin Kletzander),<br/>
+ qemu: emulatorpin: Don't reset pinning when pinning to all cpus (Peter Krempa),<br/>
+ storage: Disallow wiping an extended disk partition (John Ferlan),<br/>
+ storage: Need to set secrettype for direct iscsi disk volume (John Ferlan),<br/>
+ scsi: Need to translate disk source pool in config attach path (John Ferlan),<br/>
+ network: escape quotes for dsmasq conf contents (Shivaprasad G Bhat),<br/>
+ virsh: change-media: Fix behavior with --update without a source (Peter Krempa),<br/>
+ rpc: Fix reference counting around virNetSocketAddIOCallback (Daniel P. Berrange),<br/>
+ rpc: Don't use unrelated value as privateData of client (Daniel P. Berrange),<br/>
+ mdns: Set error when failing due to missing avahi (Martin Kletzander),<br/>
+ qemu: Update balloon info only if job is allowed (Peter Krempa),<br/>
+ conf: Fix mistakes in pointer usage in virDomainObjGetDefs (Peter Krempa),<br/>
+ check if console/channel PTY is null before attempting to open (Shivaprasad G Bhat),<br/>
+ virnetdev: fix moving of 802.11 phys (Lubomir Rintel),<br/>
+ util: process: Refactor and fix virProcessSetAffinity (Peter Krempa),<br/>
+ util: Clear output broadcast address before filling it in (Martin Kletzander),<br/>
+ virsh: Fix Ctrl-C behavior when watching a job (Jiri Denemark),<br/>
+ libxl: Unbreak vcpu pinning (Peter Krempa),<br/>
+ qemu: Fix possible crash in qemuProcessSetVcpuAffinities (Peter Krempa),<br/>
+ qemu: Do not release device address on successful RNG attach (Luyao Huang),<br/>
+ qemu: Need to return status of RNG device removal (Luyao Huang),<br/>
+ test: fix IP address range failure test (Laine Stump),<br/>
+ storage: RBD: do not return error when deleting non-existent volume (Erik Skultety),<br/>
+ storage: Don't update volume objs list before we successfully create one (Erik Skultety),<br/>
+ nwfilter: Fix sscanf off-by-one error in virNWFilterSnoopLeaseFileLoad (Erik Skultety),<br/>
+ virsh: Fix printing of XML for pool-create-as (John Ferlan)<br/>
+ </li>
+
+ <li>Improvements:<br/>
+ conf: qemu: Taint VMs using custom device tree blob (Peter Krempa),<br/>
+ conf: audit: Audit physical memory size rather than balloon request (Peter Krempa),<br/>
+ libxl: honor domainGetXMLDesc() --inactive flag (Jim Fehlig),<br/>
+ qemu: event: Clean up VNC monitor handling (Peter Krempa),<br/>
+ qemuxml2argv: Remove Haswell CPU from unrelated tests (Jiri Denemark),<br/>
+ Revert "Change livbirt version to 1.3.0 for the next release" (Martin Kletzander),<br/>
+ Temporarily disable admin API (Martin Kletzander),<br/>
+ spec: Remove admin package specification (Martin Kletzander),<br/>
+ qemu: ignore assumptions about hotplug requirement when address is from config (Laine Stump),<br/>
+ qemu: always permit PCI devices to be manually assigned to a PCIe bus (Laine Stump),<br/>
+ qemu: refactor qemuBuildControllerDevStr to eliminate future duplicate code (Laine Stump),<br/>
+ qemu: monitor: Remove qemuMonitorGetBlockExtent (Peter Krempa),<br/>
+ qemu: Refactor qemuDomainGetBlockInfo (Peter Krempa),<br/>
+ qemu: monitor: Open-code retrieval of wr_highest_offset (Peter Krempa),<br/>
+ internal: Introduce virCheckNonEmptyStringArgGoto and reuse it (Peter Krempa),<br/>
+ vz: add memory statistics (Nikolay Shirokovskiy),<br/>
+ vz: add vcpu statistics (Nikolay Shirokovskiy),<br/>
+ vz: cleanup, make in par net device lookup functions (Nikolay Shirokovskiy),<br/>
+ vz: add net dev statistiscs (Nikolay Shirokovskiy),<br/>
+ docs: Don't keep temporary files around (Michal Privoznik),<br/>
+ test: Refactor testNodeGetCPUMap (Peter Krempa),<br/>
+ test: Refactor vcpu pinning and vcpu info retrieval (Peter Krempa),<br/>
+ test: Refactor testDomainSetVcpusFlags (Peter Krempa),<br/>
+ test: Refactor test driver domain object retrieval (Peter Krempa),<br/>
+ test: Drop locked access to testDriver-&gt;domains (Peter Krempa),<br/>
+ test: Finalize removal of locking from driver-&gt;eventState (Peter Krempa),<br/>
+ test: Refactor test driver event sending (Peter Krempa),<br/>
+ test: Use atomic access to @nextDomID in struct virTestDriver (Peter Krempa),<br/>
+ test: Annotate few fields of testDriver structure (Peter Krempa),<br/>
+ test: Extract common parts of test driver data allocation (Peter Krempa),<br/>
+ test: Extract code to free testDriver into testDriverFree (Peter Krempa),<br/>
+ test: turn 'defaultConn' into a pointer (Peter Krempa),<br/>
+ test: Rename testConn to testDriver (Peter Krempa),<br/>
+ vz: Adapt to driver rename (Michal Privoznik),<br/>
+ json: enhance parser test (Eric Blake),<br/>
+ json: even stricter trailing garbage detection (Eric Blake),<br/>
+ json: reject trailing garbage (Eric Blake),<br/>
+ json: reject javascript comments (Eric Blake),<br/>
+ json: cope with older yajl semantics (Eric Blake),<br/>
+ vz: implementation of attach/detach network devices (Mikhail Feoktistov),<br/>
+ Test for the new watchdog model diag288 (Boris Fiuczynski),<br/>
+ Support for the new watchdog model diag288 (Boris Fiuczynski),<br/>
+ Test for the new watchdog action inject-nmi (Boris Fiuczynski),<br/>
+ Support for a new watchdog action inject-nmi (Boris Fiuczynski),<br/>
+ vircapstest: Properly report error for failed tests (Michal Privoznik),<br/>
+ conf: Adjust invalid secrettype setting during parse (John Ferlan),<br/>
+ conf: improve the way we format blkiotune and cputune (Luyao Huang),<br/>
+ Improve some errors for openconsole/channel (Luyao Huang),<br/>
+ storage: Force setting of disk format type (John Ferlan),<br/>
+ docs: Adjust Disk storage rng (John Ferlan),<br/>
+ Convert SCSI logical unit from unsigned int to unsigned long long (Eric Farman),<br/>
+ Print SCSI address attributes bus, target, unit as unsigned integer (Eric Farman),<br/>
+ Read SCSI address attributes bus, target, unit as positive integer (Eric Farman),<br/>
+ qemu: simplify json parsing (Eric Blake),<br/>
+ json: make it easier to type-check when getting from object (Eric Blake),<br/>
+ json: fully parse input string (Eric Blake),<br/>
+ test: Switch to reference counting with testDomObjFromDomain (Peter Krempa),<br/>
+ test: Reuse virDomainObjGetOneDef in testDomainGetVcpusFlags (Peter Krempa),<br/>
+ virsh: blockcopy: Report error if the copy job fails (Peter Krempa),<br/>
+ Introduce QEMU_CAPS_ARM_VIRT_PCI (Pavel Fedin),<br/>
+ update sheepdog client] update sheepdog client path (Vasiliy Tolstov),<br/>
+ qemu: cancel drive mirrors when p2p connection breaks (Jiri Denemark),<br/>
+ qemu: Refactor qemuMigrationWaitForCompletion (Jiri Denemark),<br/>
+ qemu: Don't pass redundant job name around (Jiri Denemark),<br/>
+ qemu: Refactor qemuMigrationUpdateJobStatus (Jiri Denemark),<br/>
+ qemu: Refactor qemuDomainGetJob{Info,Stats} (Jiri Denemark),<br/>
+ qemu: Do not poll for spice migration status (Jiri Denemark),<br/>
+ qemu_monitor: Wire up SPICE_MIGRATE_COMPLETED event (Jiri Denemark),<br/>
+ qemu: Use domain condition for asyncAbort (Jiri Denemark),<br/>
+ qemu: Cancel disk mirrors after libvirtd restart (Jiri Denemark),<br/>
+ qemu: Refactor qemuMonitorBlockJobInfo (Jiri Denemark),<br/>
+ qemu: Make qemuMigrationCancelDriveMirror usable without async job (Jiri Denemark),<br/>
+ Pass domain object to private data formatter/parser (Jiri Denemark),<br/>
+ qemu: Don't mess with disk-&gt;mirrorState (Jiri Denemark),<br/>
+ qemu: Abort migration early if disk mirror failed (Jiri Denemark),<br/>
+ qemu: Cancel storage migration in parallel (Jiri Denemark),<br/>
+ qemu: Use domain condition for synchronous block jobs (Jiri Denemark),<br/>
+ qemu: Properly report failed migration (Jiri Denemark),<br/>
+ qemu: Introduce qemuBlockJobUpdate (Jiri Denemark),<br/>
+ conf: Introduce per-domain condition variable (Jiri Denemark),<br/>
+ lib: setvcpus: Remove bogus flag check (Peter Krempa),<br/>
+ virsh: selective block device migration (Pavel Boldin),<br/>
+ qemu: migration: selective block device migration (Pavel Boldin),<br/>
+ util: add virTypedParamsAddStringList (Pavel Boldin),<br/>
+ util: virTypedParams{Filter,GetStringList} (Pavel Boldin),<br/>
+ util: multi-value parameters in virTypedParamsAdd* (Pavel Boldin),<br/>
+ util: multi-value virTypedParameter (Pavel Boldin),<br/>
+ virDomainDiskGetSource: Mark passed disk as 'const' (Michal Privoznik),<br/>
+ conf: Move vcpu info parsing code into a separate function (Peter Krempa),<br/>
+ qemu: 'privileged' flag is not really configuration (Peter Krempa),<br/>
+ qemu: Reuse virDomainObjGetDefs in qemuDomainGetMemoryParameters (Peter Krempa),<br/>
+ qemu: Refactor qemuDomainGetMemoryParameters (Peter Krempa),<br/>
+ qemu: Refactor qemuDomainSetNumaParameters (Peter Krempa),<br/>
+ qemu: Simplify qemuDomainSetInterfaceParameters by using virDomainObjGetDefs (Peter Krempa),<br/>
+ qemu: Simplify qemuDomainGetVcpusFlags by using virDomainObjGetOneDef (Peter Krempa),<br/>
+ qemu: Simplify qemuDomainGetEmulatorPinInfo by using virDomainObjGetOneDef (Peter Krempa),<br/>
+ qemu: Simplify qemuDomainGetVcpuPinInfo by using virDomainObjGetOneDef (Peter Krempa),<br/>
+ qemu: Simplify qemuDomainGetNumaParameters by using virDomainObjGetOneDef (Peter Krempa),<br/>
+ qemu: Simplify qemuDomainGetInterfaceParameters by using virDomainObjGetOneDef (Peter Krempa),<br/>
+ conf: Introduce helper to help getting correct def for getter functions (Peter Krempa),<br/>
+ qemu: implement address for isa-serial (James Cowgill),<br/>
+ qemu: Add a check for slot and base dimm address conflicts (Luyao Huang),<br/>
+ daemon: Add the admin service to the admin server only if it was allocated (Peter Krempa),<br/>
+ remove redundant condition (Ján Tomko),<br/>
+ virSysinfo: Introduce SMBIOS type 2 support (Michal Privoznik),<br/>
+ qemu: Report all supported machine types in capabilities (Jiri Denemark),<br/>
+ tests: Sort EXTRA_DIST in the Makefile (Michal Privoznik),<br/>
+ daemon: Don't just include admin RPC (Michal Privoznik),<br/>
+ parallels: substitute parallels with vz spec file and Makefile (Maxim Nestratov),<br/>
+ parallels: rename all parallels files and driver directory to vz (Maxim Nestratov),<br/>
+ parallels: substitute parallels with vz in strings (Maxim Nestratov),<br/>
+ parallels: change parallels prefixes to vz (Maxim Nestratov),<br/>
+ virfile: virDirCreate: Insert blank lines to assure slightly better readability (Erik Skultety),<br/>
+ util: virDirCreate: Child now exits with positive errno-code (Erik Skultety),<br/>
+ lxc: set nosuid+nodev+noexec flags on /proc/sys mount (Eric W. Biederman),<br/>
+ lxc: Rename daemon to dmn (Martin Kletzander),<br/>
+ Revert "rpc: Add virNetServerGetNClients" (Martin Kletzander),<br/>
+ Revert "admin: Add virAdmHello function" (Martin Kletzander),<br/>
+ Change livbirt version to 1.3.0 for the next release (Martin Kletzander),<br/>
+ Example virt-admin (Martin Kletzander),<br/>
+ admin: Add virAdmHello function (Martin Kletzander),<br/>
+ rpc: Add virNetServerGetNClients (Martin Kletzander),<br/>
+ Add support for admin API in libvirt daemon (Martin Kletzander),<br/>
+ Add configuration options for permissions on daemon's admin socket (Martin Kletzander),<br/>
+ Add XML files with admin API specification (Martin Kletzander),<br/>
+ Add libvirt-admin library (Martin Kletzander),<br/>
+ Add admin error domain (Martin Kletzander),<br/>
+ Build client headers for admin protocol (Martin Kletzander),<br/>
+ Add admin protocol (Martin Kletzander),<br/>
+ Teach gendispatch how to handle admin dispatching files (Martin Kletzander),<br/>
+ tests: Adapt virnetservertest to daemon refactor (Martin Kletzander),<br/>
+ Move daemon-related parts of virNetServer to virNetDaemon (Martin Kletzander),<br/>
+ lxc: properly clean up qemu-nbd (Cédric Bosdonnat),<br/>
+ Add virProcessGetPids to get all tasks of a process (Cédric Bosdonnat),<br/>
+ storage: Adjust command arglist for gluster (John Ferlan),<br/>
+ storage: Fix the schema and add tests for cifs pool (John Ferlan),<br/>
+ configure: Remove check for pkcheck_supports_uid (Guido Günther),<br/>
+ tests: Use libvirt properly with initialization and error dispatching (Martin Kletzander),<br/>
+ Generate JSON with mDNS entries only when built --with-avahi (Martin Kletzander),<br/>
+ build: Remove unnecessarily repeated rules for syms -&gt; def (Martin Kletzander),<br/>
+ qemu: monitor: Add memory balloon support for virtio-ccw (Boris Fiuczynski),<br/>
+ getOldStyleBlockDevice: Adjust formatting (Michal Privoznik),<br/>
+ getNewStyleBlockDevice: Adjust formatting (Michal Privoznik),<br/>
+ qemu caps: spell queue (Ján Tomko),<br/>
+ qemu: Do not support 'serial' scsi-block 'lun' devices (John Ferlan),<br/>
+ virCapabilitiesDomainDataLookup: Produce saner error message (Michal Privoznik),<br/>
+ libxl: Add timestamp to the libxl driver log. (Anthony PERARD),<br/>
+ qemu: update netdevs of the same mac addrs correctly (zhang bo),<br/>
+ virsysinfo: s/system/sysdef/ (Michal Privoznik),<br/>
+ cmdNetworkList: Introduce --name, --uuid, --table (Michal Privoznik),<br/>
+ cmdNetworkList: switch to FILTER (Michal Privoznik),<br/>
+ qemuBuildDriveStr: s/virBufferEscapeString/virBufferAsprintf/ (Michal Privoznik),<br/>
+ virQEMUCapsArch: openrisc vs or32 (Michal Privoznik),<br/>
+ virSysinfoDef: Exempt SYSTEM variables (Michal Privoznik),<br/>
+ virSysinfoDef: Exempt BIOS variables (Michal Privoznik),<br/>
+ tests: Distribute virnetserverdata (Michal Privoznik),<br/>
+ schema: use arch list from basictypes for os arch attribute (James Cowgill),<br/>
+ util: add virJSONValueCopy (Martin Kletzander),<br/>
+ qemu: add multiqueue vhost-user support (Maxime Leroy),<br/>
+ qemu: Add capability for vhost-user multiqueue (Martin Kletzander),<br/>
+ conf: Ignore multiqueue with one queue. (Martin Kletzander),<br/>
+ util: Make virProcessGetAffinity more readable and fix coverity warning (Peter Krempa),<br/>
+ apibuild: Generate macro/@string attribute (Jiri Denemark),<br/>
+ rpc: add testing of RPC JSON (de)serialization (Daniel P. Berrange),<br/>
+ rpc: add API for checking IPv4/6 availability (Daniel P. Berrange),<br/>
+ rpc: allow selection of TCP address family (Daniel P. Berrange),<br/>
+ virNumaSetPagePoolSize: Produce friendlier error message (Michal Privoznik),<br/>
+ logical: Fix typo in error message (John Ferlan),<br/>
+ conf: fix domaincommon.rng to accept network name with quotes (Shivaprasad G Bhat),<br/>
+ parallels: treat block devices as disks for containers (Maxim Nestratov),<br/>
+ parallels: report SATA bus type for container block devices disks (Maxim Nestratov),<br/>
+ parallels: process '/' mount point correctly for containers (Maxim Nestratov),<br/>
+ parallels: add isCt parameter to prlsdkGetDiskInfo and prlsdkAddDisk (Maxim Nestratov),<br/>
+ parallels: add block device statistics to driver (Nikolay Shirokovskiy),<br/>
+ qemu: caps: Advertise arm 32-on-64 KVM option (Cole Robinson),<br/>
+ qemu: caps: qemu-system-aarch64 supports armv7l (Cole Robinson),<br/>
+ qemu: command: Support arm 32-on-64 KVM with -cpu aarch64=off (Cole Robinson),<br/>
+ parallels: return only success from PCS event handler (Nikolay Shirokovskiy),<br/>
+ parallels: simplify event types discrimination (Nikolay Shirokovskiy),<br/>
+ utiltest: Use int8_t instead of char. (Michal Privoznik),<br/>
+ Turn qemuMonitorFindBalloonObjectPath into a void function (Ján Tomko),<br/>
+ Do not access the domain definition in qemuMonitorFindBalloonObjectPath (Ján Tomko),<br/>
+ Only call SetMemoryStatsPeriod for virtio memballoon (Ján Tomko),<br/>
+ Check for balloon model in qemuDomainSetMemoryStatsPeriod (Ján Tomko),<br/>
+ Only call qemuMonitorGetMemoryStats for virtio memballoon (Ján Tomko),<br/>
+ Invert the condition in qemuDomainMemoryStats (Ján Tomko),<br/>
+ Add endjob label to qemuDomainMemoryStats (Ján Tomko),<br/>
+ Remove path argument from qemuMonitorJSONFindLinkPath (Ján Tomko),<br/>
+ Introduce qemuMonitorJSONFindLinkPath (Ján Tomko),<br/>
+ Move qemuMonitorFindObjectPath to qemu_monitor_json (Ján Tomko),<br/>
+ rpc: Make virNetServerAddClient function dynamic (Daniel P. Berrange),<br/>
+ storage: Add check for valid FS types in checkPool callback (John Ferlan),<br/>
+ storage: FS backend adjust error message on error path (John Ferlan),<br/>
+ storage: Refactor storage pool type checks (John Ferlan),<br/>
+ qemu: Check for qemu capability when calling virDomainGetBlockIoTune() (Martin Kletzander),<br/>
+ qemu: Refactor qemuDomainSetVcpusFlags by reusing virDomainObjGetDefs (Peter Krempa),<br/>
+ qemu: Refactor qemuDomainGetEmulatorPinInfo by reusing virDomainObjGetDefs (Peter Krempa),<br/>
+ qemu: Refactor qemuDomainPinEmulator by reusing virDomainObjGetDefs (Peter Krempa),<br/>
+ qemu: Refactor qemuDomainGetVcpuPinInfo by reusing virDomainObjGetDefs (Peter Krempa),<br/>
+ qemu: Refactor qemuDomainPinVcpuFlags by reusing virDomainObjGetDefs (Peter Krempa),<br/>
+ qemu: Refactor qemuDomainSetBlkioParameters by reusing virDomainObjGetDefs (Peter Krempa),<br/>
+ qemu: Refactor qemuDomainChgIOThread by reusing virDomainObjGetDefs (Peter Krempa),<br/>
+ qemu: Refactor qemuDomainPinIOThread by reusing virDomainObjGetDefs (Peter Krempa),<br/>
+ qemu: Refactor qemuDomainGetIOThreadInfo by reusing virDomainObjGetDefs (Peter Krempa),<br/>
+ qemu: Refactor qemuDomainGetVcpusFlags by reusing virDomainObjGetDefs (Peter Krempa),<br/>
+ qemu: Refactor qemuDomainSetMemoryStatsPeriod by reusing virDomainObjGetDefs (Peter Krempa),<br/>
+ qemu: Refactor qemuDomainSetMemoryFlags by reusing virDomainObjGetDefs (Peter Krempa),<br/>
+ conf: Add new helpers to resolve virDomainModificationImpact to domain defs (Peter Krempa),<br/>
+ libxl: Don't remove vcpu pin definition in libxlDomainCleanup (Peter Krempa),<br/>
+ Revert "cputune: Support cputune for xend driver" (Peter Krempa),<br/>
+ qemu: libxl: vcpupin: Don't reset pinning when pinning to all pcpus (Peter Krempa),<br/>
+ lib: virDomainPinIOThread: Remove spurious overflow check (Peter Krempa),<br/>
+ conf: Store cpu count as unsigned int (Peter Krempa),<br/>
+ qemu: Refactor qemuDomainGetInfo (Peter Krempa),<br/>
+ qemu: Add helper to update domain balloon size and refactor usage places (Peter Krempa),<br/>
+ qemu: process: Update current balloon state to maximum on vm startup (Peter Krempa),<br/>
+ Always add 'console' matching the 'serial' device (Ján Tomko),<br/>
+ qemu: process: Refactor setup of memory ballooning (Peter Krempa),<br/>
+ qemu: monitor: Make qemuMonitorSetBalloon operate on unsinged long long (Peter Krempa),<br/>
+ util: Add macro to overflow check integer assignments (Peter Krempa),<br/>
+ libxl: Refactor libxlDomainGetVcpuPinInfo (Peter Krempa),<br/>
+ libxl: Reuse virBitmapToData in libxlDomainSetVcpuAffinities (Peter Krempa),<br/>
+ qemu: Refactor qemuDomainHelperGetVcpus by reusing virBitmapToDataBuf (Peter Krempa),<br/>
+ qemu: Reuse virBitmapToDataBuf in qemuDomainGetEmulatorPinInfo (Peter Krempa),<br/>
+ qemu: Use virBitmapToDataBuf in qemuDomainGetVcpuPinInfo (Peter Krempa),<br/>
+ util: bitmap: Add virBitmapToDataBuf that does not allocate the buffer (Peter Krempa),<br/>
+ conf: Move pinning information definition closer to the usage place (Peter Krempa),<br/>
+ conf: Refactor emulatorpin handling (Peter Krempa),<br/>
+ parallels: set virtType depending on driver name (Maxim Nestratov),<br/>
+ parallels: recommend to connect to vz:///system when connection fails (Maxim Nestratov),<br/>
+ parallels: increment the number of connection drivers (Maxim Nestratov),<br/>
+ parallels: add a new vz connection driver and hypervisor structures (Maxim Nestratov),<br/>
+ parallels: accept vz as a driver uri and name (Maxim Nestratov),<br/>
+ parallels: add new guest capabilities assigned to vz driver (Maxim Nestratov),<br/>
+ parallels: use newly introduced VIR_DOMAIN_VIRT_VZ (Maxim Nestratov),<br/>
+ parallels: introduce vz driver constant and string (Maxim Nestratov),<br/>
+ audit: Audit number of iothreads at domain startup (Luyao Huang),<br/>
+ util: report all address range errors in virSocketAddrGetRange() (Laine Stump),<br/>
+ network: cleanup range loop in networkDnsmasqConfContents (Laine Stump),<br/>
+ network: validate DHCP ranges are completely within defined network (Laine Stump),<br/>
+ Simplify virNodeCountThreadSiblings (Ján Tomko),<br/>
+ Report errors in virNodeCountThreadSiblings (Ján Tomko),<br/>
+ virsh: Move error messages inside vshCommandOpt*() functions (Andrea Bolognani),<br/>
+ virsh: Pass vshControl to all vshCommandOpt*() calls (Andrea Bolognani),<br/>
+ virsh: Make vshCommandOptScaledInt() use vshCommandOpt() (Andrea Bolognani),<br/>
+ virsh: Improve vshCommandOptTimeoutToMs() (Andrea Bolognani),<br/>
+ virsh: Use standard error messages in vshCommandOptTimeoutToMs() (Andrea Bolognani),<br/>
+ tests: Add a bunch of new tests to virsh-optparse (Andrea Bolognani),<br/>
+ maint: update to latest gnulib (Eric Blake),<br/>
+ spec: fixes for recently introduced libxl conf files (Jim Fehlig),<br/>
+ virsh: make negative values with vol-resize more convenient (Ján Tomko),<br/>
+ qemu: Automatically add &lt;panic&gt; element for pSeries guests. (Andrea Bolognani),<br/>
+ qemu: Allow panic device for pSeries guests (Andrea Bolognani),<br/>
+ qemu: Improve error message for missing QEMU_CAPS_DEVICE_PANIC. (Andrea Bolognani),<br/>
+ Post-release version bump to 1.2.17 (Daniel P. Berrange)<br/>
+ </li>
+
+ <li>Cleanups:<br/>
+ qemu: monitor: Fix indentation in qemuMonitorJSONGetOneBlockStatsInfo (Peter Krempa),<br/>
+ vz_utils: Reformat (Michal Privoznik),<br/>
+ vz_storage: Reformat (Michal Privoznik),<br/>
+ vz_sdk: Reformat (Michal Privoznik),<br/>
+ vz_network: Reformat (Michal Privoznik),<br/>
+ vz_driver: Reformat (Michal Privoznik),<br/>
+ test: Drop unused attribute @path from testDriver struct (Peter Krempa),<br/>
+ test: Drop useless forward declaration (Peter Krempa),<br/>
+ vz: fix syntax-check errors (Dmitry Guryanov),<br/>
+ virQEMUCapsComputeCmdFlags: Indent correctly (Michal Privoznik),<br/>
+ qemuMigrationBeginPhase: Fix function header indentation (Michal Privoznik),<br/>
+ qemu: Fix double space in error message in qemuDomainGetVcpusFlags (Peter Krempa),<br/>
+ libvirt.spec: Don't expect virt-admin in libvirt-admin yet (Michal Privoznik),<br/>
+ netserver: Remove duplicate forward declaration (Martin Kletzander),<br/>
+ Revert "Example virt-admin" (Martin Kletzander),<br/>
+ apibuild: Fix indentation (Jiri Denemark),<br/>
+ parallels: fix formatting errors in parallels driver (Dmitry Guryanov),<br/>
+ storage: Remove extraneous @conn from function comments (John Ferlan),<br/>
+ remote: fix odd comma operator (Eric Blake),<br/>
+ maint: remove incorrect apostrophes from 'its' (Ján Tomko)<br/>
+ </li>
+ </ul>
+
<h3>1.2.16: Jun 1 2015</h3>
<ul>
<li>Features:<br/>
diff --git a/docs/schemas/Makefile.in b/docs/schemas/Makefile.in
index 72bdfc8d5..a1ca6c3df 100644
--- a/docs/schemas/Makefile.in
+++ b/docs/schemas/Makefile.in
@@ -226,6 +226,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
$(top_srcdir)/m4/virt-compile-warnings.m4 \
$(top_srcdir)/m4/virt-curl.m4 $(top_srcdir)/m4/virt-dbus.m4 \
$(top_srcdir)/m4/virt-driver-bhyve.m4 \
+ $(top_srcdir)/m4/virt-driver-vz.m4 \
$(top_srcdir)/m4/virt-fuse.m4 $(top_srcdir)/m4/virt-gluster.m4 \
$(top_srcdir)/m4/virt-hal.m4 $(top_srcdir)/m4/virt-lib.m4 \
$(top_srcdir)/m4/virt-linker-no-indirect.m4 \
diff --git a/docs/search.php b/docs/search.php
index c4e8e34e7..5837b03cf 100644
--- a/docs/search.php
+++ b/docs/search.php
@@ -107,11 +107,12 @@
$scope = ltrim ($scope);
if ($scope == "")
$scope = "any";
+ $querystr = htmlspecialchars($query, ENT_QUOTES, 'UTF-8');
?>
<form action="<?php echo $_SERVER['PHP_SELF'], "?query=", rawurlencode($query) ?>"
enctype="application/x-www-form-urlencoded" method="get">
- <input name="query" type="text" size="50" value="<?php echo $query?>"/>
+ <input name="query" type="text" size="50" value="<?php echo $querystr ?>"/>
<select name="scope">
<option value="any">Search All</option>
<option value="API" <?php if ($scope == 'API') print "selected='selected'"?>>Only the APIs</option>
@@ -298,7 +299,7 @@
}
mysql_close($link);
$nb = count($results);
- echo "<h3 align='center'>Found $nb results for query $query</h3>\n";
+ echo "<h3 align='center'>Found $nb results for query $querystr</h3>\n";
usort($results, "resSort");
if ($nb > 0) {
diff --git a/docs/search.php.code.in b/docs/search.php.code.in
index df25cd657..c7511c378 100644
--- a/docs/search.php.code.in
+++ b/docs/search.php.code.in
@@ -9,11 +9,12 @@
$scope = ltrim ($scope);
if ($scope == "")
$scope = "any";
+ $querystr = htmlspecialchars($query, ENT_QUOTES, 'UTF-8');
?>
<form action="<?php echo $_SERVER['PHP_SELF'], "?query=", rawurlencode($query) ?>"
enctype="application/x-www-form-urlencoded" method="get">
- <input name="query" type="text" size="50" value="<?php echo $query?>"/>
+ <input name="query" type="text" size="50" value="<?php echo $querystr ?>"/>
<select name="scope">
<option value="any">Search All</option>
<option value="API" <?php if ($scope == 'API') print "selected='selected'"?>>Only the APIs</option>
@@ -200,7 +201,7 @@
}
mysql_close($link);
$nb = count($results);
- echo "<h3 align='center'>Found $nb results for query $query</h3>\n";
+ echo "<h3 align='center'>Found $nb results for query $querystr</h3>\n";
usort($results, "resSort");
if ($nb > 0) {
diff --git a/docs/storage.html b/docs/storage.html
index 16eb806ec..b8db7ec38 100644
--- a/docs/storage.html
+++ b/docs/storage.html
@@ -613,7 +613,8 @@
</h2>
<p>
This provides a pool that contains all the multipath devices on the
- host. Volume creating is not supported via the libvirt APIs.
+ host. Therefore, only one Multipath pool may be configured per host.
+ Volume creating is not supported via the libvirt APIs.
The target element is actually ignored, but one is required to appease
the libvirt XML parser.<br />
<br />
diff --git a/docs/storage.html.in b/docs/storage.html.in
index 0b467d586..6c8222abe 100644
--- a/docs/storage.html.in
+++ b/docs/storage.html.in
@@ -505,7 +505,8 @@
<h2><a name="StorageBackendMultipath">Multipath pools</a></h2>
<p>
This provides a pool that contains all the multipath devices on the
- host. Volume creating is not supported via the libvirt APIs.
+ host. Therefore, only one Multipath pool may be configured per host.
+ Volume creating is not supported via the libvirt APIs.
The target element is actually ignored, but one is required to appease
the libvirt XML parser.<br/>
<br/>