[libvirt] [PATCH] Fix naming of constant for disk event
by Daniel P. Berrange
From: "Daniel P. Berrange" <berrange(a)redhat.com>
All constants related to events should have a prefix of
VIR_DOMAIN_EVENT_
* include/libvirt/libvirt.h.in, src/qemu/qemu_domain.c:
Rename VIR_DOMAIN_DISK_CHANGE_MISSING_ON_START to
VIR_DOMAIN_EVENT_DISK_CHANGE_MISSING_ON_START
---
include/libvirt/libvirt.h.in | 4 ++--
src/qemu/qemu_domain.c | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/include/libvirt/libvirt.h.in b/include/libvirt/libvirt.h.in
index 7181f62..aa320b6 100644
--- a/include/libvirt/libvirt.h.in
+++ b/include/libvirt/libvirt.h.in
@@ -3069,12 +3069,12 @@ typedef void (*virConnectDomainEventBlockJobCallback)(virConnectPtr conn,
void *opaque);
/**
- * virConnectDomainEventDisChangeReason:
+ * virConnectDomainEventDiskChangeReason:
*
* The reason describing why this callback is called
*/
typedef enum {
- VIR_DOMAIN_DISK_CHANGE_MISSING_ON_START = 0, /* oldSrcPath is set */
+ VIR_DOMAIN_EVENT_DISK_CHANGE_MISSING_ON_START = 0, /* oldSrcPath is set */
} virConnectDomainEventDiskChangeReason;
/**
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index 5295783..3e755d7 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -1652,7 +1652,7 @@ qemuDomainCheckDiskPresence(struct qemud_driver *driver,
disk->dst, vm->def->name, uuid, disk->src);
event = virDomainEventDiskChangeNewFromObj(vm, disk->src, NULL, disk->info.alias,
- VIR_DOMAIN_DISK_CHANGE_MISSING_ON_START);
+ VIR_DOMAIN_EVENT_DISK_CHANGE_MISSING_ON_START);
if (event)
qemuDomainEventQueue(driver, event);
--
1.7.6.4
13 years
[libvirt] libvirt-guests - migrate/relocate on stop feature request
by Maurits van de Lande
Hello
I'm using KVM in a clustered environment. When a host server shuts down or reboots the VM's should migrate to another cluster node. Currently I'm using a custom script for a two node cluster. It would be very nice if this feature could be incorporated into the libvirt-guests script. Or if a host could be specified as a relocation host.
Is there any chance for this feature to be added to the script?
Sincerely,
Maurits van de Lande
13 years
[libvirt] [PATCH] conf: Don't free uninitialized pointer
by Jiri Denemark
This causes libvirtd to crash when both <boot dev='...'/> and <boot
order='...'/> are used in one domain XML. Introduced by
5fa3d775a9f8cdb3423373eb084219aaf778df11
---
src/conf/domain_conf.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 238edfd..a85f837 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -6430,7 +6430,8 @@ virDomainDefParseBootXML(xmlXPathContextPtr ctxt,
{
xmlNodePtr *nodes = NULL;
int i, n;
- char *bootstr, *useserial;
+ char *bootstr;
+ char *useserial = NULL;
int ret = -1;
unsigned long deviceBoot, serialPorts;
--
1.7.7.2
13 years
[libvirt] can't start domain with a corrupted disk attatched
by lvroyce
Hi all,
I came across below issue when testing:
1.make a volume and attach it to a domain A
2.unplug the vg from the host in order to emulating a volume failure
3.start domain A(failed)
In step 3 can't start domainA . because can't find disk listed in
xml when create the Domain.
I'm not sure if it is reasonable. In common sense, we can still
start our system even if we have a corrupt data disk .And also ,if in
data center we carelessly attatch a corrupt volumn to all the guest, it
will result in all guests fail to boot .
I suggest to automatically detach a disk if it can't be found and
just give out a warning.Please let me know your opinion about if it is a
bug or a feature.Thanks.
13 years
[libvirt] [RFC PATCH 00/10] use cpuset to manage numa
by Hu Tao
The goal of this series is to use cpuset to manage numa. Currently numa tuning
is achieved by libnuma, the disadvantage is numa parameters can not be modified
when the domain is running. By using cpuset, we can do this and more:
- a new command, numatune, to get/set numa parameters
- cpuset can migrate pages to new nodes if a domain's numa nodes is changed
when running
This is a draft for early reviews. Comments are welcome.
TODO:
- add --migrate option to numatune
- docs for numatune
Hu Tao (10):
enable cgroup cpuset by default
Add functions to set/get cpuset parameters
use cpuset to manage numa
remove dependence on libnuma
new numa parameters
add new API virDomain{G,S}etNumaParameters
Implement main entries of virDomain{G,S}etNumaParameters
Add virDomain{G,S}etNumaParameters support to the remote driver
Implement virDomain{G,S}etNumaParameters for the qemu driver
add new command numatune to virsh
daemon/remote.c | 63 +++++++++
include/libvirt/libvirt.h.in | 23 +++
python/generator.py | 2 +
src/conf/domain_conf.c | 35 ++---
src/conf/domain_conf.h | 3 +-
src/driver.h | 15 ++
src/libvirt.c | 106 +++++++++++++++
src/libvirt_private.syms | 6 +
src/libvirt_public.syms | 6 +
src/qemu/qemu.conf | 5 +-
src/qemu/qemu_cgroup.c | 37 +++++
src/qemu/qemu_conf.c | 3 +-
src/qemu/qemu_driver.c | 307 ++++++++++++++++++++++++++++++++++++++++++
src/qemu/qemu_process.c | 111 ---------------
src/remote/remote_driver.c | 50 +++++++
src/remote/remote_protocol.x | 25 ++++-
src/remote_protocol-structs | 16 +++
src/util/cgroup.c | 80 +++++++++++
src/util/cgroup.h | 7 +
tools/virsh.c | 187 +++++++++++++++++++++++++
20 files changed, 950 insertions(+), 137 deletions(-)
--
1.7.3.1
13 years
[libvirt] [PATCH] build: fix deep VPATH builds
by Eric Blake
I ran into the following build failure:
$ mkdir -p build1 build2/a/very/deep/hierarcy
$ cd build2/a/very/deep/hierarcy
$ ../../../../../configure && make
$ cd ../../../../build1
$ ../configure && make
...
../../src/remote/remote_protocol.c:7:55: fatal error: ../../../../../src/remote/remote_protocol.h: No such file or directory
Turns out that we were sometimes generating the remote_protocol.c
file with information from the VPATH build, which is bad, since
any file shipped in the tarball should be idempotent no matter how
deep the VPATH build tree that created it.
* src/rpc/genprotocol.pl: Don't embed VPATH into generated file.
---
Pushing under the build-breaker rule.
And yes, I really did create a directory by that name, while testing
the earlier patches for the testsuite failure to create a UNIX
socket in a deep location. :)
src/rpc/genprotocol.pl | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/src/rpc/genprotocol.pl b/src/rpc/genprotocol.pl
index 7124e5c..166508b 100755
--- a/src/rpc/genprotocol.pl
+++ b/src/rpc/genprotocol.pl
@@ -59,7 +59,7 @@ while (<RPCGEN>) {
s/xdr_u_quad_t/xdr_uint64_t/g;
s/xdr_quad_t/xdr_int64_t/g;
s/(?<!IXDR_GET_INT32 )IXDR_GET_LONG/IXDR_GET_INT32/g;
- s,#include "remote/remote_protocol\.h",#include "remote_protocol.h",;
+ s,#include ".*remote/remote_protocol\.h",#include "remote_protocol.h",;
if (m/^}/) {
$in_function = 0;
--
1.7.4.4
13 years
[libvirt] [PATCH 1/2] Fix order of disks and controllers
by Jiri Denemark
Commit 2d6adabd53c8f1858191d521dc9b4948d1205955 replaced qsorting disk
and controller devices with inserting them at the right position. That
was to fix unnecessary reordering of devices. However, when parsing
domain XML devices are just taken in the order in which they appear in
the XML since. Use the correct insertion algorithm to honor device
target.
---
src/conf/domain_conf.c | 4 +-
.../qemuxml2argvdata/qemuxml2argv-boot-order.args | 35 ++++++++++++-------
tests/qemuxml2argvdata/qemuxml2argv-boot-order.xml | 14 ++++----
tests/xmconfigdata/test-escape-paths.cfg | 2 +-
tests/xmconfigdata/test-escape-paths.xml | 10 +++---
5 files changed, 37 insertions(+), 28 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index b406202..48ed7eb 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -5883,7 +5883,7 @@ static virDomainDefPtr virDomainDefParseXML(virCapsPtr caps,
if (!disk)
goto error;
- def->disks[def->ndisks++] = disk;
+ virDomainDiskInsertPreAlloced(def, disk);
}
VIR_FREE(nodes);
@@ -5899,7 +5899,7 @@ static virDomainDefPtr virDomainDefParseXML(virCapsPtr caps,
if (!controller)
goto error;
- def->controllers[def->ncontrollers++] = controller;
+ virDomainControllerInsertPreAlloced(def, controller);
}
VIR_FREE(nodes);
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-boot-order.args b/tests/qemuxml2argvdata/qemuxml2argv-boot-order.args
index 23249f3..14367b1 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-boot-order.args
+++ b/tests/qemuxml2argvdata/qemuxml2argv-boot-order.args
@@ -1,13 +1,22 @@
-LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M \
-pc -m 214 -smp 1 -nographic -nodefaults -monitor unix:/tmp/test-monitor,server,\
-nowait -no-acpi -drive file=/dev/HostVG/QEMUGuest1,if=none,id=drive-ide0-0-0 \
--device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 -drive \
-file=sheepdog:example.org:6000:image,if=none,id=drive-virtio-disk0 -device \
-virtio-blk-pci,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0,\
-bootindex=3 -drive file=/root/boot.iso,if=none,media=cdrom,id=drive-ide0-1-0 \
--device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0,\
-bootindex=1 -drive file=/dev/null,if=none,id=drive-fdc0-0-1 -global \
-isa-fdc.driveB=drive-fdc0-0-1 -global isa-fdc.bootindexB=4 -device \
-virtio-net-pci,vlan=0,id=net0,mac=00:11:22:33:44:55,bus=pci.0,addr=0x3,\
-bootindex=2 -net user,vlan=0,name=hostnet0 -usb -device virtio-balloon-pci,\
-id=balloon0,bus=pci.0,addr=0x5
+LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu \
+-S \
+-M pc \
+-m 214 \
+-smp 1 \
+-nographic \
+-nodefaults \
+-monitor unix:/tmp/test-monitor,server,nowait \
+-no-acpi \
+-drive file=/dev/HostVG/QEMUGuest1,if=none,id=drive-ide0-0-0 \
+-device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \
+-drive file=/root/boot.iso,if=none,media=cdrom,id=drive-ide0-1-0 \
+-device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0,bootindex=1 \
+-drive file=sheepdog:example.org:6000:image,if=none,id=drive-virtio-disk0 \
+-device virtio-blk-pci,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=3 \
+-drive file=/dev/null,if=none,id=drive-fdc0-0-1 \
+-global isa-fdc.driveB=drive-fdc0-0-1 \
+-global isa-fdc.bootindexB=4 \
+-device virtio-net-pci,vlan=0,id=net0,mac=00:11:22:33:44:55,bus=pci.0,addr=0x3,bootindex=2 \
+-net user,vlan=0,name=hostnet0 \
+-usb \
+-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-boot-order.xml b/tests/qemuxml2argvdata/qemuxml2argv-boot-order.xml
index ba8a9b2..0022c92 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-boot-order.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-boot-order.xml
@@ -18,6 +18,13 @@
<target dev='hda' bus='ide'/>
<address type='drive' controller='0' bus='0' unit='0'/>
</disk>
+ <disk type='file' device='cdrom'>
+ <source file='/root/boot.iso'/>
+ <target dev='hdc' bus='ide'/>
+ <boot order='1'/>
+ <readonly/>
+ <address type='drive' controller='0' bus='1' unit='0'/>
+ </disk>
<disk type='network' device='disk'>
<driver name='qemu' type='raw'/>
<source protocol='sheepdog' name='image'>
@@ -26,13 +33,6 @@
<target dev='vda' bus='virtio'/>
<boot order='3'/>
</disk>
- <disk type='file' device='cdrom'>
- <source file='/root/boot.iso'/>
- <target dev='hdc' bus='ide'/>
- <boot order='1'/>
- <readonly/>
- <address type='drive' controller='0' bus='1' unit='0'/>
- </disk>
<disk type='file' device='floppy'>
<driver name='qemu' type='raw'/>
<source file='/dev/null'/>
diff --git a/tests/xmconfigdata/test-escape-paths.cfg b/tests/xmconfigdata/test-escape-paths.cfg
index e3e6db9..13be2a0 100644
--- a/tests/xmconfigdata/test-escape-paths.cfg
+++ b/tests/xmconfigdata/test-escape-paths.cfg
@@ -19,7 +19,7 @@ vnc = 1
vncunused = 1
vnclisten = "127.0.0.1"
vncpasswd = "123poi"
-disk = [ "phy:/dev/HostVG/XenGuest2,hda,w", "file:/root/boot.iso&test,hdc:cdrom,r", """phy:/dev/HostVG/XenGuest'",hdb,w""" ]
+disk = [ "phy:/dev/HostVG/XenGuest2,hda,w", """phy:/dev/HostVG/XenGuest'",hdb,w""", "file:/root/boot.iso&test,hdc:cdrom,r" ]
vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,script=vif-bridge,model=e1000,type=ioemu" ]
parallel = "none"
serial = "none"
diff --git a/tests/xmconfigdata/test-escape-paths.xml b/tests/xmconfigdata/test-escape-paths.xml
index 13e6e29..9eaf90c 100644
--- a/tests/xmconfigdata/test-escape-paths.xml
+++ b/tests/xmconfigdata/test-escape-paths.xml
@@ -25,17 +25,17 @@
<source dev='/dev/HostVG/XenGuest2'/>
<target dev='hda' bus='ide'/>
</disk>
+ <disk type='block' device='disk'>
+ <driver name='phy'/>
+ <source dev='/dev/HostVG/XenGuest'"'/>
+ <target dev='hdb' bus='ide'/>
+ </disk>
<disk type='file' device='cdrom'>
<driver name='file'/>
<source file='/root/boot.iso&test'/>
<target dev='hdc' bus='ide'/>
<readonly/>
</disk>
- <disk type='block' device='disk'>
- <driver name='phy'/>
- <source dev='/dev/HostVG/XenGuest'"'/>
- <target dev='hdb' bus='ide'/>
- </disk>
<interface type='bridge'>
<mac address='00:16:3e:66:92:9c'/>
<source bridge='xenbr1'/>
--
1.7.5.3
13 years
[libvirt] [libvirt-glib] Ask gtkdoc-scan to generate the sections file
by Zeeshan Ali (Khattak)
From: "Zeeshan Ali (Khattak)" <zeeshanak(a)gnome.org>
This frees us from maintaining the sections file.
---
docs/libvirt-gconfig/Libvirt-gconfig-sections.txt | 166 --------------
docs/libvirt-gconfig/Makefile.am | 2 +-
docs/libvirt-glib/Libvirt-glib-sections.txt | 22 --
docs/libvirt-glib/Makefile.am | 2 +-
docs/libvirt-gobject/Libvirt-gobject-sections.txt | 244 ---------------------
docs/libvirt-gobject/Makefile.am | 2 +-
6 files changed, 3 insertions(+), 435 deletions(-)
delete mode 100644 docs/libvirt-gconfig/Libvirt-gconfig-sections.txt
delete mode 100644 docs/libvirt-glib/Libvirt-glib-sections.txt
delete mode 100644 docs/libvirt-gobject/Libvirt-gobject-sections.txt
diff --git a/docs/libvirt-gconfig/Libvirt-gconfig-sections.txt b/docs/libvirt-gconfig/Libvirt-gconfig-sections.txt
deleted file mode 100644
index e2dcc5f..0000000
--- a/docs/libvirt-gconfig/Libvirt-gconfig-sections.txt
+++ /dev/null
@@ -1,166 +0,0 @@
-<SECTION>
-<FILE>libvirt-gconfig-object</FILE>
-<TITLE>GVirConfigObject</TITLE>
-gvir_config_object_validate
-gvir_config_object_get_doc
-gvir_config_object_get_schema
-<SUBSECTION Standard>
-GVIR_TYPE_OBJECT
-GVIR_OBJECT
-GVIR_OBJECT_CLASS
-GVIR_IS_OBJECT
-GVIR_IS_OBJECT_CLASS
-GVIR_OBJECT_GET_CLASS
-<SUBSECTION Private>
-GVirConfigObjectPrivate
-</SECTION>
-
-<SECTION>
-<FILE>libvirt-gconfig-domain</FILE>
-<TITLE>GVirConfigDomain</TITLE>
-gvir_config_domain_new
-<SUBSECTION Standard>
-GVIR_TYPE_DOMAIN
-GVIR_DOMAIN
-GVIR_DOMAIN_CLASS
-GVIR_IS_DOMAIN
-GVIR_IS_DOMAIN_CLASS
-GVIR_DOMAIN_GET_CLASS
-<SUBSECTION Private>
-GVirConfigDomainPrivate
-</SECTION>
-
-<SECTION>
-<FILE>libvirt-gconfig-domain-snapshot</FILE>
-<TITLE>GVirConfigDomainSnapshot</TITLE>
-gvir_config_domain_snapshot_new
-<SUBSECTION Standard>
-GVIR_TYPE_DOMAIN_SNAPSHOT
-GVIR_DOMAIN_SNAPSHOT
-GVIR_DOMAIN_SNAPSHOT_CLASS
-GVIR_IS_DOMAIN_SNAPSHOT
-GVIR_IS_DOMAIN_SNAPSHOT_CLASS
-GVIR_DOMAIN_SNAPSHOT_GET_CLASS
-<SUBSECTION Private>
-GVirConfigDomainSnapshotPrivate
-</SECTION>
-
-<SECTION>
-<FILE>libvirt-gconfig-interface</FILE>
-<TITLE>GVirConfigInterface</TITLE>
-gvir_config_interface_new
-<SUBSECTION Standard>
-GVIR_TYPE_INTERFACE
-GVIR_INTERFACE
-GVIR_INTERFACE_CLASS
-GVIR_IS_INTERFACE
-GVIR_IS_INTERFACE_CLASS
-GVIR_INTERFACE_GET_CLASS
-<SUBSECTION Private>
-GVirConfigInterfacePrivate
-</SECTION>
-
-<SECTION>
-<FILE>libvirt-gconfig-network-filter</FILE>
-<TITLE>GVirConfigNetworkFilter</TITLE>
-gvir_config_network_filter_new
-<SUBSECTION Standard>
-GVIR_TYPE_NETWORK_FILTER
-GVIR_NETWORK_FILTER
-GVIR_NETWORK_FILTER_CLASS
-GVIR_IS_NETWORK_FILTER
-GVIR_IS_NETWORK_FILTER_CLASS
-GVIR_NETWORK_FILTER_GET_CLASS
-<SUBSECTION Private>
-GVirConfigNetworkFilterPrivate
-</SECTION>
-
-<SECTION>
-<FILE>libvirt-gconfig-network</FILE>
-<TITLE>GVirConfigNetwork</TITLE>
-gvir_config_network_new
-<SUBSECTION Standard>
-GVIR_TYPE_NETWORK
-GVIR_NETWORK
-GVIR_NETWORK_CLASS
-GVIR_IS_NETWORK
-GVIR_IS_NETWORK_CLASS
-GVIR_NETWORK_GET_CLASS
-<SUBSECTION Private>
-GVirConfigNetworkPrivate
-</SECTION>
-
-<SECTION>
-<FILE>libvirt-gconfig-node-device</FILE>
-<TITLE>GVirConfigNodeDevice</TITLE>
-gvir_config_node_device_new
-<SUBSECTION Standard>
-GVIR_TYPE_NODE_DEVICE
-GVIR_NODE_DEVICE
-GVIR_NODE_DEVICE_CLASS
-GVIR_IS_NODE_DEVICE
-GVIR_IS_NODE_DEVICE_CLASS
-GVIR_NODE_DEVICE_GET_CLASS
-<SUBSECTION Private>
-GVirConfigNodeDevicePrivate
-</SECTION>
-
-<SECTION>
-<FILE>libvirt-gconfig-secret</FILE>
-<TITLE>GVirConfigSecret</TITLE>
-gvir_config_secret_get_new
-<SUBSECTION Standard>
-GVIR_TYPE_SECRET
-GVIR_SECRET
-GVIR_SECRET_CLASS
-GVIR_IS_SECRET
-GVIR_IS_SECRET_CLASS
-GVIR_SECRET_GET_CLASS
-<SUBSECTION Private>
-GVirConfigSecretPrivate
-</SECTION>
-
-<SECTION>
-<FILE>libvirt-gconfig-storage-pool</FILE>
-<TITLE>GVirConfigStoragePool</TITLE>
-gvir_config_storage_pool_new
-<SUBSECTION Standard>
-GVIR_TYPE_STORAGE_POOL
-GVIR_STORAGE_POOL
-GVIR_STORAGE_POOL_CLASS
-GVIR_IS_STORAGE_POOL
-GVIR_IS_STORAGE_POOL_CLASS
-GVIR_STORAGE_POOL_GET_CLASS
-<SUBSECTION Private>
-GVirConfigStoragePoolPrivate
-</SECTION>
-
-<SECTION>
-<FILE>libvirt-gconfig-storage-vol</FILE>
-<TITLE>GVirConfigStorageVol</TITLE>
-gvir_config_storage_vol_new
-<SUBSECTION Standard>
-GVIR_TYPE_STORAGE_VOL
-GVIR_STORAGE_VOL
-GVIR_STORAGE_VOL_CLASS
-GVIR_IS_STORAGE_VOL
-GVIR_IS_STORAGE_VOL_CLASS
-GVIR_STORAGE_VOL_GET_CLASS
-<SUBSECTION Private>
-GVirConfigStorageVolPrivate
-</SECTION>
-
-<SECTION>
-<FILE>libvirt-gconfig-capabilities</FILE>
-<TITLE>GVirConfigCapabilities</TITLE>
-gvir_config_capabilities_new
-<SUBSECTION Standard>
-GVIR_TYPE_CAPABILITIES
-GVIR_CAPABILITIES
-GVIR_CAPABILITIES_CLASS
-GVIR_IS_CAPABILITIES
-GVIR_IS_CAPABILITIES_CLASS
-GVIR_CAPABILITIES_GET_CLASS
-<SUBSECTION Private>
-GVirConfigCapabilitiesPrivate
-</SECTION>
diff --git a/docs/libvirt-gconfig/Makefile.am b/docs/libvirt-gconfig/Makefile.am
index de5bc82..8936aba 100644
--- a/docs/libvirt-gconfig/Makefile.am
+++ b/docs/libvirt-gconfig/Makefile.am
@@ -9,7 +9,7 @@ DOC_SOURCE_DIR=../../libvirt-gconfig
SCANGOBJ_OPTIONS=
-SCAN_OPTIONS=
+SCAN_OPTIONS=--rebuild-sections --rebuild-types
MKDB_OPTIONS=--sgml-mode --output-format=xml
diff --git a/docs/libvirt-glib/Libvirt-glib-sections.txt b/docs/libvirt-glib/Libvirt-glib-sections.txt
deleted file mode 100644
index 506a2ba..0000000
--- a/docs/libvirt-glib/Libvirt-glib-sections.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-<SECTION>
-<FILE>libvirt-glib-main</FILE>
-<TITLE>Initialization</TITLE>
-gvir_init
-gvir_init_check
-</SECTION>
-
-<SECTION>
-<FILE>libvirt-glib-event</FILE>
-<TITLE>Event Handling</TITLE>
-gvir_event_register
-</SECTION>
-
-<SECTION>
-<FILE>libvirt-glib-error</FILE>
-<TITLE>Error Handling</TITLE>
-gvir_error_new
-gvir_error_new_literal
-gvir_error_new_valist
-</SECTION>
-
-
diff --git a/docs/libvirt-glib/Makefile.am b/docs/libvirt-glib/Makefile.am
index 01190d1..6efc644 100644
--- a/docs/libvirt-glib/Makefile.am
+++ b/docs/libvirt-glib/Makefile.am
@@ -9,7 +9,7 @@ DOC_SOURCE_DIR=../../libvirt-glib
SCANGOBJ_OPTIONS=
-SCAN_OPTIONS=
+SCAN_OPTIONS=--rebuild-sections --rebuild-types
MKDB_OPTIONS=--sgml-mode --output-format=xml
diff --git a/docs/libvirt-gobject/Libvirt-gobject-sections.txt b/docs/libvirt-gobject/Libvirt-gobject-sections.txt
deleted file mode 100644
index b6baf2e..0000000
--- a/docs/libvirt-gobject/Libvirt-gobject-sections.txt
+++ /dev/null
@@ -1,244 +0,0 @@
-<SECTION>
-<FILE>libvirt-gobject-connection</FILE>
-<TITLE>GVirConnection</TITLE>
-gvir_connection_new
-gvir_connection_open
-gvir_connection_open_async
-gvir_connection_open_finish
-gvir_connection_is_open
-gvir_connection_close
-gvir_connection_fetch_domains
-gvir_connection_fetch_domains_async
-gvir_connection_fetch_domains_finish
-gvir_connection_get_uri
-gvir_connection_get_domains
-gvir_connection_get_domain
-gvir_connection_find_domain_by_id
-gvir_connection_find_domain_by_name
-gvir_connection_create_domain
-gvir_connection_fetch_storage_pools
-gvir_connection_fetch_storage_pools_async
-gvir_connection_fetch_storage_pools_finish
-gvir_connection_get_storage_pools
-gvir_connection_get_storage_pool
-gvir_connection_find_storage_pool_by_name
-gvir_connection_create_storage_pool
-gvir_connection_get_stream
-<SUBSECTION Standard>
-GVIR_TYPE_CONNECTION
-GVIR_CONNECTION
-GVIR_CONNECTION_CLASS
-GVIR_IS_CONNECTION
-GVIR_IS_CONNECTION_CLASS
-GVIR_CONNECTION_GET_CLASS
-<SUBSECTION Private>
-GVirConnectionPrivate
-</SECTION>
-
-<SECTION>
-<FILE>libvirt-gobject-domain</FILE>
-<TITLE>GVirDomain</TITLE>
-GVirDomainState
-GVirDomainInfo
-gvir_domain_get_name
-gvir_domain_get_uuid
-gvir_domain_get_id
-gvir_domain_start
-gvir_domain_resume
-gvir_domain_stop
-gvir_domain_delete
-gvir_domain_shutdown
-gvir_domain_reboot
-gvir_domain_get_info
-gvir_domain_get_config
-gvir_domain_screenshot
-<SUBSECTION Standard>
-GVIR_TYPE_DOMAIN
-GVIR_DOMAIN
-GVIR_DOMAIN_CLASS
-GVIR_IS_DOMAIN
-GVIR_IS_DOMAIN_CLASS
-GVIR_DOMAIN_GET_CLASS
-<SUBSECTION Private>
-GVirDomainPrivate
-</SECTION>
-
-<SECTION>
-<FILE>libvirt-gobject-domain-snapshot</FILE>
-<TITLE>GVirDomainSnapshot</TITLE>
-gvir_domain_snapshot_get_name
-gvir_domain_snapshot_get_config
-<SUBSECTION Standard>
-GVIR_TYPE_DOMAIN_SNAPSHOT
-GVIR_DOMAIN_SNAPSHOT
-GVIR_DOMAIN_SNAPSHOT_CLASS
-GVIR_IS_DOMAIN_SNAPSHOT
-GVIR_IS_DOMAIN_SNAPSHOT_CLASS
-GVIR_DOMAIN_SNAPSHOT_GET_CLASS
-<SUBSECTION Private>
-GVirDomainSnapshotPrivate
-</SECTION>
-
-<SECTION>
-<FILE>libvirt-gobject-interface</FILE>
-<TITLE>GVirInterface</TITLE>
-gvir_interface_get_name
-gvir_interface_get_config
-<SUBSECTION Standard>
-GVIR_TYPE_INTERFACE
-GVIR_INTERFACE
-GVIR_INTERFACE_CLASS
-GVIR_IS_INTERFACE
-GVIR_IS_INTERFACE_CLASS
-GVIR_INTERFACE_GET_CLASS
-<SUBSECTION Private>
-GVirInterfacePrivate
-</SECTION>
-
-<SECTION>
-<FILE>libvirt-gobject-manager</FILE>
-<TITLE>GVirManager</TITLE>
-gvir_manager_new
-gvir_manager_add_connection
-gvir_manager_remove_connection
-gvir_manager_get_connections
-gvir_manager_find_connection_by_uri
-<SUBSECTION Standard>
-GVIR_TYPE_MANAGER
-GVIR_MANAGER
-GVIR_MANAGER_CLASS
-GVIR_IS_MANAGER
-GVIR_IS_MANAGER_CLASS
-GVIR_MANAGER_GET_CLASS
-<SUBSECTION Private>
-GVirManagerPrivate
-</SECTION>
-
-<SECTION>
-<FILE>libvirt-gobject-network-filter</FILE>
-<TITLE>GVirNetworkFilter</TITLE>
-gvir_network_filter_get_name
-gvir_network_filter_get_uuid
-gvir_network_filter_get_config
-<SUBSECTION Standard>
-GVIR_TYPE_NETWORK_FILTER
-GVIR_NETWORK_FILTER
-GVIR_NETWORK_FILTER_CLASS
-GVIR_IS_NETWORK_FILTER
-GVIR_IS_NETWORK_FILTER_CLASS
-GVIR_NETWORK_FILTER_GET_CLASS
-<SUBSECTION Private>
-GVirNetworkFilterPrivate
-</SECTION>
-
-<SECTION>
-<FILE>libvirt-gobject-network</FILE>
-<TITLE>GVirNetwork</TITLE>
-gvir_network_get_name
-gvir_network_get_uuid
-gvir_network_get_config
-<SUBSECTION Standard>
-GVIR_TYPE_NETWORK
-GVIR_NETWORK
-GVIR_NETWORK_CLASS
-GVIR_IS_NETWORK
-GVIR_IS_NETWORK_CLASS
-GVIR_NETWORK_GET_CLASS
-<SUBSECTION Private>
-GVirNetworkPrivate
-</SECTION>
-
-<SECTION>
-<FILE>libvirt-gobject-node-device</FILE>
-<TITLE>GVirNodeDevice</TITLE>
-gvir_node_device_get_name
-gvir_node_device_get_config
-<SUBSECTION Standard>
-GVIR_TYPE_NODE_DEVICE
-GVIR_NODE_DEVICE
-GVIR_NODE_DEVICE_CLASS
-GVIR_IS_NODE_DEVICE
-GVIR_IS_NODE_DEVICE_CLASS
-GVIR_NODE_DEVICE_GET_CLASS
-<SUBSECTION Private>
-GVirNodeDevicePrivate
-</SECTION>
-
-<SECTION>
-<FILE>libvirt-gobject-secret</FILE>
-<TITLE>GVirSecret</TITLE>
-gvir_secret_get_name
-gvir_secret_get_uuid
-gvir_secret_get_config
-<SUBSECTION Standard>
-GVIR_TYPE_SECRET
-GVIR_SECRET
-GVIR_SECRET_CLASS
-GVIR_IS_SECRET
-GVIR_IS_SECRET_CLASS
-GVIR_SECRET_GET_CLASS
-<SUBSECTION Private>
-GVirSecretPrivate
-</SECTION>
-
-<SECTION>
-<FILE>libvirt-gobject-storage-pool</FILE>
-<TITLE>GVirStoragePool</TITLE>
-gvir_storage_pool_get_name
-gvir_storage_pool_get_uuid
-gvir_storage_pool_get_config
-gvir_storage_pool_refresh
-gvir_storage_pool_refresh_async
-gvir_storage_pool_refresh_finish
-gvir_storage_pool_get_volumes
-gvir_storage_pool_get_volume
-gvir_storage_pool_create_volume
-gvir_storage_pool_build
-gvir_storage_pool_build_async
-gvir_storage_pool_build_finish
-gvir_storage_pool_start
-gvir_storage_pool_start_async
-gvir_storage_pool_start_finish
-<SUBSECTION Standard>
-GVIR_TYPE_STORAGE_POOL
-GVIR_STORAGE_POOL
-GVIR_STORAGE_POOL_CLASS
-GVIR_IS_STORAGE_POOL
-GVIR_IS_STORAGE_POOL_CLASS
-GVIR_STORAGE_POOL_GET_CLASS
-<SUBSECTION Private>
-GVirStoragePoolPrivate
-</SECTION>
-
-<SECTION>
-<FILE>libvirt-gobject-storage-vol</FILE>
-<TITLE>GVirStorageVol</TITLE>
-gvir_storage_vol_get_name
-gvir_storage_vol_get_path
-gvir_storage_vol_get_config
-<SUBSECTION Standard>
-GVIR_TYPE_STORAGE_VOL
-GVIR_STORAGE_VOL
-GVIR_STORAGE_VOL_CLASS
-GVIR_IS_STORAGE_VOL
-GVIR_IS_STORAGE_VOL_CLASS
-GVIR_STORAGE_VOL_GET_CLASS
-<SUBSECTION Private>
-GVirStorageVolPrivate
-</SECTION>
-
-<SECTION>
-<FILE>libvirt-gobject-stream</FILE>
-<TITLE>GVirStream</TITLE>
-gvir_stream_get_name
-gvir_stream_get_config
-<SUBSECTION Standard>
-GVIR_TYPE_STREAM
-GVIR_STREAM
-GVIR_STREAM_CLASS
-GVIR_IS_STREAM
-GVIR_IS_STREAM_CLASS
-GVIR_STREAM_GET_CLASS
-<SUBSECTION Private>
-GVirStreamPrivate
-</SECTION>
diff --git a/docs/libvirt-gobject/Makefile.am b/docs/libvirt-gobject/Makefile.am
index 26f3ce4..a5c7967 100644
--- a/docs/libvirt-gobject/Makefile.am
+++ b/docs/libvirt-gobject/Makefile.am
@@ -9,7 +9,7 @@ DOC_SOURCE_DIR=../../libvirt-gobject
SCANGOBJ_OPTIONS=
-SCAN_OPTIONS=
+SCAN_OPTIONS=--rebuild-sections --rebuild-types
MKDB_OPTIONS=--sgml-mode --output-format=xml
--
1.7.7
13 years
[libvirt] [PATCH] lxc: use common code for process cleanup
by Eric Blake
Based on a Coverity report - the return value of waitpid() should
always be checked, to avoid problems with leaking resources.
* src/lxc/lxc_controller.c (lxcControllerRun): Use simpler virPidAbort.
---
Daniel previously said to wait until after the lxc multi-console
patches were in before visiting this file; but now that those are
in, this fix is still applicable:
https://www.redhat.com/archives/libvir-list/2011-October/msg01083.html
src/lxc/lxc_controller.c | 11 +++--------
1 files changed, 3 insertions(+), 8 deletions(-)
diff --git a/src/lxc/lxc_controller.c b/src/lxc/lxc_controller.c
index 649ac87..137ef52 100644
--- a/src/lxc/lxc_controller.c
+++ b/src/lxc/lxc_controller.c
@@ -59,6 +59,7 @@
#include "util.h"
#include "virfile.h"
#include "virpidfile.h"
+#include "command.h"
#define VIR_FROM_THIS VIR_FROM_LXC
@@ -1266,14 +1267,8 @@ cleanup:
VIR_FORCE_CLOSE(loopDevs[i]);
VIR_FREE(loopDevs);
- if (container > 1) {
- int status;
- kill(container, SIGTERM);
- if (!(waitpid(container, &status, WNOHANG) == 0 &&
- WIFEXITED(status)))
- kill(container, SIGKILL);
- waitpid(container, NULL, 0);
- }
+ virPidAbort(container);
+
return rc;
}
--
1.7.4.4
13 years
[libvirt] client hang in virDomainCreateXML
by Jiff Shen
Hi,
We are using Ubuntu 10.04 eucalyptus 1.6.2 and libvirt 0.7.5. We found
eucalyptus-nc sometimes hangs in virDomainCreateXML, and never gets
response from libvirtd.
After 2 days of investigation, I found there is another libvirt client
connects to libvirtd 'qemu:///system', which is the same URI as
eucalyptus-nc. The bug never shows after I disabled the client.
My question is:
1, can I have multiple clients connect to qemu:///system?
2, is this an bug in libvirt and has it been fixed?
Thanks a lot
13 years