[libvirt] [PATCH 0/2] More graceful handing of monitor failures
by Daniel P. Berrange
Currently when libvirt has a serious error doing I/O and/or parsing
of the QEMU monitor, it will kill off the guest. Application developers
have expressed a desire for more graceful handling of this scenario.
In particular to allow the guest OS to continue to run, without any
further monitor interactons, and then kill/restart it at a time which
is convenient to the guest admin/apps.
This is a proof of concept of that.
14 years
[libvirt] [PATCH] build: fix VPATH build with distributed generated files
by Eric Blake
* daemon/Makefile.am (DAEMON_GENERATED, remote_dispatch_*.h)
(qemu_dispatch_*.h): Update to live in srcdir, since they are
distributed.
Detected by Daniel P. Berrange's autobuilder.
---
Pushing under the build-breaker rule.
daemon/Makefile.am | 102 +++++++++++++++++++++++++++++++---------------------
1 files changed, 61 insertions(+), 41 deletions(-)
diff --git a/daemon/Makefile.am b/daemon/Makefile.am
index 114adf3..f734c89 100644
--- a/daemon/Makefile.am
+++ b/daemon/Makefile.am
@@ -3,16 +3,16 @@
CLEANFILES =
DAEMON_GENERATED = \
- remote_dispatch_prototypes.h \
- remote_dispatch_table.h \
- remote_dispatch_args.h \
- remote_dispatch_ret.h \
- remote_dispatch_bodies.h \
- qemu_dispatch_prototypes.h \
- qemu_dispatch_table.h \
- qemu_dispatch_args.h \
- qemu_dispatch_ret.h \
- qemu_dispatch_bodies.h
+ $(srcdir)/remote_dispatch_prototypes.h \
+ $(srcdir)/remote_dispatch_table.h \
+ $(srcdir)/remote_dispatch_args.h \
+ $(srcdir)/remote_dispatch_ret.h \
+ $(srcdir)/remote_dispatch_bodies.h \
+ $(srcdir)/qemu_dispatch_prototypes.h \
+ $(srcdir)/qemu_dispatch_table.h \
+ $(srcdir)/qemu_dispatch_args.h \
+ $(srcdir)/qemu_dispatch_ret.h \
+ $(srcdir)/qemu_dispatch_bodies.h
DAEMON_SOURCES = \
libvirtd.c libvirtd.h \
@@ -186,7 +186,7 @@ CLEANFILES += probes.h probes.o
endif
install-data-local: install-init install-data-sasl install-data-polkit \
- install-logrotate
+ install-logrotate
mkdir -p $(DESTDIR)$(localstatedir)/log/libvirt
mkdir -p $(DESTDIR)$(localstatedir)/run/libvirt
mkdir -p $(DESTDIR)$(localstatedir)/lib/libvirt
@@ -213,38 +213,58 @@ remote.h: $(DAEMON_GENERATED)
REMOTE_PROTOCOL = $(top_srcdir)/src/remote/remote_protocol.x
QEMU_PROTOCOL = $(top_srcdir)/src/remote/qemu_protocol.x
-remote_dispatch_prototypes.h: $(srcdir)/remote_generator.pl $(REMOTE_PROTOCOL)
- $(AM_V_GEN)perl -w $(srcdir)/remote_generator.pl -c -p remote $(REMOTE_PROTOCOL) > $@
-
-remote_dispatch_table.h: $(srcdir)/remote_generator.pl $(REMOTE_PROTOCOL)
- $(AM_V_GEN)perl -w $(srcdir)/remote_generator.pl -c -t remote $(REMOTE_PROTOCOL) > $@
-
-remote_dispatch_args.h: $(srcdir)/remote_generator.pl $(REMOTE_PROTOCOL)
- $(AM_V_GEN)perl -w $(srcdir)/remote_generator.pl -c -a remote $(REMOTE_PROTOCOL) > $@
-
-remote_dispatch_ret.h: $(srcdir)/remote_generator.pl $(REMOTE_PROTOCOL)
- $(AM_V_GEN)perl -w $(srcdir)/remote_generator.pl -c -r remote $(REMOTE_PROTOCOL) > $@
-
-remote_dispatch_bodies.h: $(srcdir)/remote_generator.pl $(REMOTE_PROTOCOL)
- $(AM_V_GEN)perl -w $(srcdir)/remote_generator.pl -c -b remote $(REMOTE_PROTOCOL) > $@
-
-qemu_dispatch_prototypes.h: $(srcdir)/remote_generator.pl $(QEMU_PROTOCOL)
- $(AM_V_GEN)perl -w $(srcdir)/remote_generator.pl -p qemu $(QEMU_PROTOCOL) > $@
-
-qemu_dispatch_table.h: $(srcdir)/remote_generator.pl $(QEMU_PROTOCOL)
- $(AM_V_GEN)perl -w $(srcdir)/remote_generator.pl -t qemu $(QEMU_PROTOCOL) > $@
-
-qemu_dispatch_args.h: $(srcdir)/remote_generator.pl $(QEMU_PROTOCOL)
- $(AM_V_GEN)perl -w $(srcdir)/remote_generator.pl -a qemu $(QEMU_PROTOCOL) > $@
-
-qemu_dispatch_ret.h: $(srcdir)/remote_generator.pl $(QEMU_PROTOCOL)
- $(AM_V_GEN)perl -w $(srcdir)/remote_generator.pl -r qemu $(QEMU_PROTOCOL) > $@
-
-qemu_dispatch_bodies.h: $(srcdir)/remote_generator.pl $(QEMU_PROTOCOL)
- $(AM_V_GEN)perl -w $(srcdir)/remote_generator.pl -b qemu $(QEMU_PROTOCOL) > $@
+$(srcdir)/remote_dispatch_prototypes.h: $(srcdir)/remote_generator.pl \
+ $(REMOTE_PROTOCOL)
+ $(AM_V_GEN)perl -w $(srcdir)/remote_generator.pl -c -p remote \
+ $(REMOTE_PROTOCOL) > $@
+
+$(srcdir)/remote_dispatch_table.h: $(srcdir)/remote_generator.pl \
+ $(REMOTE_PROTOCOL)
+ $(AM_V_GEN)perl -w $(srcdir)/remote_generator.pl -c -t remote \
+ $(REMOTE_PROTOCOL) > $@
+
+$(srcdir)/remote_dispatch_args.h: $(srcdir)/remote_generator.pl \
+ $(REMOTE_PROTOCOL)
+ $(AM_V_GEN)perl -w $(srcdir)/remote_generator.pl -c -a remote \
+ $(REMOTE_PROTOCOL) > $@
+
+$(srcdir)/remote_dispatch_ret.h: $(srcdir)/remote_generator.pl \
+ $(REMOTE_PROTOCOL)
+ $(AM_V_GEN)perl -w $(srcdir)/remote_generator.pl -c -r remote \
+ $(REMOTE_PROTOCOL) > $@
+
+$(srcdir)/remote_dispatch_bodies.h: $(srcdir)/remote_generator.pl \
+ $(REMOTE_PROTOCOL)
+ $(AM_V_GEN)perl -w $(srcdir)/remote_generator.pl -c -b remote \
+ $(REMOTE_PROTOCOL) > $@
+
+$(srcdir)/qemu_dispatch_prototypes.h: $(srcdir)/remote_generator.pl \
+ $(QEMU_PROTOCOL)
+ $(AM_V_GEN)perl -w $(srcdir)/remote_generator.pl -p qemu \
+ $(QEMU_PROTOCOL) > $@
+
+$(srcdir)/qemu_dispatch_table.h: $(srcdir)/remote_generator.pl \
+ $(QEMU_PROTOCOL)
+ $(AM_V_GEN)perl -w $(srcdir)/remote_generator.pl -t qemu \
+ $(QEMU_PROTOCOL) > $@
+
+$(srcdir)/qemu_dispatch_args.h: $(srcdir)/remote_generator.pl \
+ $(QEMU_PROTOCOL)
+ $(AM_V_GEN)perl -w $(srcdir)/remote_generator.pl -a qemu \
+ $(QEMU_PROTOCOL) > $@
+
+$(srcdir)/qemu_dispatch_ret.h: $(srcdir)/remote_generator.pl \
+ $(QEMU_PROTOCOL)
+ $(AM_V_GEN)perl -w $(srcdir)/remote_generator.pl -r qemu \
+ $(QEMU_PROTOCOL) > $@
+
+$(srcdir)/qemu_dispatch_bodies.h: $(srcdir)/remote_generator.pl \
+ $(QEMU_PROTOCOL)
+ $(AM_V_GEN)perl -w $(srcdir)/remote_generator.pl -b qemu \
+ $(QEMU_PROTOCOL) > $@
LOGROTATE_CONFS = libvirtd.qemu.logrotate libvirtd.lxc.logrotate \
- libvirtd.uml.logrotate libvirtd.logrotate
+ libvirtd.uml.logrotate libvirtd.logrotate
BUILT_SOURCES += $(LOGROTATE_CONFS)
--
1.7.4.4
14 years
[libvirt] [PATCH] docs: avoid double 'the'
by Eric Blake
* docs/testsuites.html.in: Keep 'make syntax-check' happy.
---
Pushing under the build-breaker rule.
docs/testsuites.html.in | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/docs/testsuites.html.in b/docs/testsuites.html.in
index 86fd5ef..4441d94 100644
--- a/docs/testsuites.html.in
+++ b/docs/testsuites.html.in
@@ -29,7 +29,7 @@
<a href="python.html">Python bindings</a>
of libvirt. It is available separately as a
<a href="ftp://libvirt.org/libvirt/libvirt-test-API/">download</a>,
- or directly get the
+ or directly get
the <a href="http://libvirt.org/git/?p=libvirt-test-API.git">version
from GIT</a>.
</ul>
--
1.7.4.4
14 years
[libvirt] Crash state and QEMU
by Anthony Liguori
Hi,
As far as I can tell, if QEMU exits abruptly or with a non-zero status
code, libvirt treats this as a domain destruction given no real
indication to the user that something bad happened.
But libvirt does have a crashed state for domains, it's just not used
for QEMU guests.
I was wondering how intention of a design decision this was. Right now
there's no good way for a management tool to detect a crashed
guest/QEMU. Is there something I'm overlooking?
Regards,
Anthony Liguori
14 years
[libvirt] [PATCH] Documentation on tests suites and new API test suite
by Daniel Veillard
This is really a dual mail. The main point is announcing the
availability of the livirt-test-API, a GPL'ed Python based test
suite for libvirt functional testing. It was developped independantly
of the TCK by our QA group here in Beijing China and is now made
open-source. The software requirements are relatively light and
it has been tested on RHEL various versions (5.x and 6.x) as well as
Fedora 14. It should be relatively easy to use on Centos, SL,
but use on other distributions may need a bit of porting.
It has been in use for quite some time,, it is still in development
and the public repository is in libvirt.org git at:
http://libvirt.org/git/?p=libvirt-test-API.git
and can be cloned with
git clone git://libvirt.org/libvirt-test-API.git
there is some pblican based documentation under the docs/ subtree and
we have a PDF ready ans well as snapshots in the download tree
http://libvirt.org/sources/libvirt-test-API/
ftp://libvirt.org/libvirt/libvirt-test-API/
There is a lot of improvements possible, it should be relatively
easy to glue to autotest (c.f. chapter 5 of the PDF), and there is
definitely cleanups to be done :-) , I think the best way to proceed
is to just send git patches here on the libvir-list and have them
reviewed and ACK'ed. People with commit access should be able to
push as usual, note that I added Guannan Ren <gren(a)redhat.com>
as a commiter for this purpose since he has much expertise with that
code (along with Osier).
Now for the patch itself, it add a top level section in the
navigation bar, provide a main description page for the 3 test suites
(internal, TCK and libvirt-test-API) and then add a separate full
page for the 2 independant test suite.
I hesitated between creating a new doc section and trying to reuse
one existing, but it didn't fit well in any of the existing section,
though that could have been added under "Download" or "Related links"
but it was feeling a bit weird in both case so I opted for a new top
level.
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
daniel(a)veillard.com | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library http://libvirt.org/
14 years
[libvirt] [PATCH 0/2] xen/libxl: support enabling or disabling the HPET
by Paolo Bonzini
This patch series add support for enabling or disabling the HPET
in Xen domains. It's split in two because I didn't have means to test
the libxl part.
Paolo Bonzini (2):
xen: parse and generate hpet item in sxpr
libxl: support enabling the HPET
src/libxl/libxl_conf.c | 8 ++++
src/xenxs/xen_sxpr.c | 26 +++++++++++
src/xenxs/xen_xm.c | 26 +++++++++++
tests/sexpr2xmldata/sexpr2xml-fv-force-hpet.sexpr | 9 ++++
tests/sexpr2xmldata/sexpr2xml-fv-force-hpet.xml | 44 +++++++++++++++++++
.../sexpr2xmldata/sexpr2xml-fv-force-nohpet.sexpr | 9 ++++
tests/sexpr2xmldata/sexpr2xml-fv-force-nohpet.xml | 44 +++++++++++++++++++
tests/sexpr2xmltest.c | 2 +
tests/xmconfigdata/test-fullvirt-force-hpet.cfg | 26 +++++++++++
tests/xmconfigdata/test-fullvirt-force-hpet.xml | 45 ++++++++++++++++++++
tests/xmconfigdata/test-fullvirt-force-nohpet.cfg | 26 +++++++++++
tests/xmconfigdata/test-fullvirt-force-nohpet.xml | 45 ++++++++++++++++++++
tests/xmconfigtest.c | 3 +
tests/xml2sexprdata/xml2sexpr-fv-force-hpet.sexpr | 9 ++++
tests/xml2sexprdata/xml2sexpr-fv-force-hpet.xml | 39 +++++++++++++++++
.../xml2sexprdata/xml2sexpr-fv-force-nohpet.sexpr | 9 ++++
tests/xml2sexprdata/xml2sexpr-fv-force-nohpet.xml | 39 +++++++++++++++++
tests/xml2sexprtest.c | 2 +
18 files changed, 411 insertions(+), 0 deletions(-)
create mode 100644 tests/sexpr2xmldata/sexpr2xml-fv-force-hpet.sexpr
create mode 100644 tests/sexpr2xmldata/sexpr2xml-fv-force-hpet.xml
create mode 100644 tests/sexpr2xmldata/sexpr2xml-fv-force-nohpet.sexpr
create mode 100644 tests/sexpr2xmldata/sexpr2xml-fv-force-nohpet.xml
create mode 100644 tests/xmconfigdata/test-fullvirt-force-hpet.cfg
create mode 100644 tests/xmconfigdata/test-fullvirt-force-hpet.xml
create mode 100644 tests/xmconfigdata/test-fullvirt-force-nohpet.cfg
create mode 100644 tests/xmconfigdata/test-fullvirt-force-nohpet.xml
create mode 100644 tests/xml2sexprdata/xml2sexpr-fv-force-hpet.sexpr
create mode 100644 tests/xml2sexprdata/xml2sexpr-fv-force-hpet.xml
create mode 100644 tests/xml2sexprdata/xml2sexpr-fv-force-nohpet.sexpr
create mode 100644 tests/xml2sexprdata/xml2sexpr-fv-force-nohpet.xml
--
1.7.4.4
14 years
[libvirt] how to assign an ip when assign a NIC or VF to the Virtual Machine?
by guan qin
Hi,
I use the *Intel Virtualization Technology for Directed I/O*(VT-d) or
*Single-Root
I/O Virtualization*(SR-IOV) to assign a network card or Virtual Function(VF)
to a Virtual Machine(VM) to access the network by the hostdev element in
libvirt Domain XML.
But the ethX in the VM hasn't an ip,I must to enter the VM to assign an ip
to the VM manually.
So how can I assign an ip to the VM when assign the NIC or VF to the VM
?thanks.
best regards,
qinguan
14 years
[libvirt] [PATCH 2/2] docs: updates to CA cert and client cert/key info
by Doug Goldstein
Update the documentation to mention that the CA certificate and the
client cert/key pair can come from the user's location or the global
location independent of each other.
Signed-off-by: Doug Goldstein <cardoe(a)gentoo.org>
---
docs/remote.html.in | 11 +++++++----
1 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/docs/remote.html.in b/docs/remote.html.in
index 33dbba2..42eb14c 100644
--- a/docs/remote.html.in
+++ b/docs/remote.html.in
@@ -395,10 +395,13 @@ next section.
</p>
<ul>
<li> For a non-root user, libvirt tries to find the certificates
- in $HOME/.pki/libvirt. If any of the required certificates can
- not be found, then the global default locations
- (/etc/pki/CA/cacert.pem, /etc/pki/libvirt/private/clientkey,
- /etc/pki/libvirt/clientcert.pem) will be used.
+ in $HOME/.pki/libvirt. If the required CA certificate can
+ not be found, then the global default location
+ (/etc/pki/CA/cacert.pem) will be used.
+ Likewise, if either the client certificate
+ or the client key can not be found, then the global default
+ locations (/etc/pki/libvirt/clientcert.pem,
+ /etc/pki/libvirt/private/clientkey.pem) will be used.
</li>
<li> For the root user, the global default locations will be used.</li>
</ul>
--
1.7.5.rc3
14 years
[libvirt] [PATCH 1/2] virsh: flexibility in CA cert and user cert/key
by Doug Goldstein
Allow the CA certificate to come from the user's home directory or from
the global location independently of the client certificate/key pair.
Mostly for the case when each user on a system has their own cert/key
pair but the system as a whole shares the same CA.
Signed-off-by: Doug Goldstein <cardoe(a)gentoo.org>
---
src/remote/remote_driver.c | 19 ++++++++++++-------
1 files changed, 12 insertions(+), 7 deletions(-)
diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c
index 4c3bdf3..9965d38 100644
--- a/src/remote/remote_driver.c
+++ b/src/remote/remote_driver.c
@@ -1222,21 +1222,26 @@ initialize_gnutls(char *pkipath, int flags)
"clientcert.pem")) < 0)
goto out_of_memory;
- /* Use default location as long as one of CA certificate,
+ /* Use the default location of the CA certificate if it
+ * cannot be found in $HOME/.pki/libvirt
+ */
+ if (!virFileExists(libvirt_cacert)) {
+ VIR_FREE(libvirt_cacert);
+
+ libvirt_cacert = strdup(LIBVIRT_CACERT);
+ if (!libvirt_cacert) goto out_of_memory;
+ }
+
+ /* Use default location as long as one of
* client key, and client certificate cannot be found in
* $HOME/.pki/libvirt, we don't want to make user confused
* with one file is here, the other is there.
*/
- if (!virFileExists(libvirt_cacert) ||
- !virFileExists(libvirt_clientkey) ||
+ if (!virFileExists(libvirt_clientkey) ||
!virFileExists(libvirt_clientcert)) {
- VIR_FREE(libvirt_cacert);
VIR_FREE(libvirt_clientkey);
VIR_FREE(libvirt_clientcert);
- libvirt_cacert = strdup(LIBVIRT_CACERT);
- if (!libvirt_cacert) goto out_of_memory;
-
libvirt_clientkey = strdup(LIBVIRT_CLIENTKEY);
if (!libvirt_clientkey) goto out_of_memory;
--
1.7.5.rc3
14 years