[libvirt] qemu64 - not valid cpu with 'Intel Westmere Family'
by Sandro Bonazzola
Hi,
I'm trying to run latest vdsm master on RHEL-6.4.
I've built the rpms against livirt-1.10
I'm creating a VM using cpu family = 'Intel Westmere Family'
<cpu match="exact">
<model>qemu64</model>
<feature name="svm" policy="disable"/>
</cpu>
Thread-40::DEBUG::2013-07-03
15:47:47,150::libvirtconnection::136::vds::(wrapper) Unknown
libvirterror: ecode: 1 edom: 31 level: 2 message: internal error Cannot
find suitable CPU model for given data
Thread-40::DEBUG::2013-07-03
15:47:47,150::vm::2003::vm.Vm::(_startUnderlyingVm)
vmId=`9deae1fb-e0c5-4362-8f3c-657f39893b8b`::_ongoingCreations released
Thread-40::ERROR::2013-07-03
15:47:47,150::vm::2029::vm.Vm::(_startUnderlyingVm)
vmId=`9deae1fb-e0c5-4362-8f3c-657f39893b8b`::The vm start process failed
Traceback (most recent call last):
File "/usr/share/vdsm/vm.py", line 1989, in _startUnderlyingVm
self._run()
File "/usr/share/vdsm/vm.py", line 2862, in _run
self._connection.createXML(domxml, flags),
File "/usr/lib64/python2.6/site-packages/vdsm/libvirtconnection.py",
line 112, in wrapper
ret = f(*args, **kwargs)
File "/usr/lib64/python2.6/site-packages/libvirt.py", line 2848, in
createXML
if ret is None:raise libvirtError('virDomainCreateXML() failed',
conn=self)
libvirtError: internal error Cannot find suitable CPU model for given data
Is it required a more updated qemu? Is it a vdsm or a livirt bug?
libvirt-1.1.0-1.el6.x86_64
libvirt-client-1.1.0-1.el6.x86_64
libvirt-daemon-1.1.0-1.el6.x86_64
libvirt-daemon-config-network-1.1.0-1.el6.x86_64
libvirt-daemon-config-nwfilter-1.1.0-1.el6.x86_64
libvirt-daemon-driver-interface-1.1.0-1.el6.x86_64
libvirt-daemon-driver-lxc-1.1.0-1.el6.x86_64
libvirt-daemon-driver-network-1.1.0-1.el6.x86_64
libvirt-daemon-driver-nodedev-1.1.0-1.el6.x86_64
libvirt-daemon-driver-nwfilter-1.1.0-1.el6.x86_64
libvirt-daemon-driver-qemu-1.1.0-1.el6.x86_64
libvirt-daemon-driver-secret-1.1.0-1.el6.x86_64
libvirt-daemon-driver-storage-1.1.0-1.el6.x86_64
libvirt-daemon-kvm-1.1.0-1.el6.x86_64
libvirt-daemon-lxc-1.1.0-1.el6.x86_64
libvirt-debuginfo-1.1.0-1.el6.x86_64
libvirt-devel-1.1.0-1.el6.x86_64
libvirt-docs-1.1.0-1.el6.x86_64
libvirt-lock-sanlock-1.1.0-1.el6.x86_64
libvirt-python-1.1.0-1.el6.x86_64
qemu-img-0.12.1.2-2.355.el6_4.5.x86_64
qemu-kvm-0.12.1.2-2.355.el6_4.5.x86_64
vdsm-4.11.0-84.gitc4e3dd0.el6.x86_64
vdsm-cli-4.11.0-84.gitc4e3dd0.el6.noarch
vdsm-gluster-4.11.0-84.gitc4e3dd0.el6.noarch
vdsm-python-4.11.0-84.gitc4e3dd0.el6.x86_64
vdsm-python-cpopen-4.11.0-84.gitc4e3dd0.el6.x86_64
vdsm-xmlrpc-4.11.0-84.gitc4e3dd0.el6.noarch
--
Sandro Bonazzola
Better technology. Faster innovation. Powered by community collaboration.
See how it works at redhat.com
11 years, 5 months
[libvirt] [PATCH v2] A bunch of extensions to libxl driver
by Marek Marczykowski-Górecki
This are some additional features to libxl driver. Some of them require change
in domain config structures/syntax. Details described with each patch.
There are two bugfix patches for deadlock during daemon startup.
Changes since v1:
- dropped 'script' disk parameter patches
- updated 'script' interface parameter handling
- dropped PCI passthrough patches - duplicates Chunyan's work
- dropped RFC: libxl: special 'stubdom-dm' emulator to use qemu in stub domain
- rebased on 1.0.6+
- VIR_STRDUP
- other changes described in individual patches
- new patches:
libxl: initialize device structures
libxl: support paused domain restore in virDomainRestoreFlags
libxl: support domain config modification in virDomainRestoreFlags
libxl: support network device attach/detach
libxl: pass ipaddr to libxl toolstack
libxl: implement lifecycle actions from domain
libxl: add tablet/mouse input device support
11 years, 6 months
[libvirt] [PATCH 0/2] avoid getpwuid_r deadlock
by Eric Blake
https://bugzilla.redhat.com/show_bug.cgi?id=964358
Posting now to get reviews started. I'd especially like to get
feedback that it doesn't break LXC, and that it works with root-squash
NFS when using qemu:qemu instead of root:root in /etc/libvirt/qemu.conf.
I hope to do more testing myself, and also see if I can try writing an
LD_PRELOAD shim as part of 'make check' to make it easier to test that
the right system calls are made during the sequence.
Eric Blake (2):
util: add virGetGroupList
util: make virSetUIDGID async-signal-safe
configure.ac | 7 +--
src/libvirt_private.syms | 1 +
src/security/security_dac.c | 16 ++++--
src/util/vircommand.c | 10 +++-
src/util/virfile.c | 30 +++++++++--
src/util/virutil.c | 123 ++++++++++++++++++++++++++++++--------------
src/util/virutil.h | 7 ++-
7 files changed, 142 insertions(+), 52 deletions(-)
--
1.8.1.4
11 years, 6 months
[libvirt] libvirt compliation from git source fails with "gnulib/tests/Makefile.in' not found" error
by chandrashekar shastri
Hi,
I am compiling the libvirt from source and I am getting the following error:
Don't forget to
- "include gnulib.mk" from within "gnulib/lib/Makefile.am",
- "include gnulib.mk" from within "gnulib/tests/Makefile.am",
- mention "-I gnulib/m4" in ACLOCAL_AMFLAGS in Makefile.am,
- mention "gnulib/m4/gnulib-cache.m4" in EXTRA_DIST in Makefile.am,
- invoke gl_EARLY in ./configure.ac, right after AC_PROG_CC,
- invoke gl_INIT in ./configure.ac.
running: AUTOPOINT=true LIBTOOLIZE=true autoreconf --verbose --install
--force -I gnulib/m4 --no-recursive
autoreconf: Entering directory `.'
autoreconf: running: true --force
autoreconf: running: aclocal -I m4 --force -I m4 -I gnulib/m4
autoreconf: configure.ac: tracing
autoreconf: running: true --copy --force
autoreconf: running: /usr/bin/autoconf --include=gnulib/m4 --force
autoreconf: running: /usr/bin/autoheader --include=gnulib/m4 --force
autoreconf: running: automake --add-missing --copy --force-missing
configure.ac:2424: required file `gnulib/lib/Makefile.in' not found
configure.ac:2424: required file `gnulib/tests/Makefile.in' not found
autoreconf: automake failed with exit status: 1
Libvirtd (libvirt) 1.0.5 we didn't any isssues. Please let us know if we
are missing something.
Thanks,
Chandrashekar
11 years, 6 months
[libvirt] Libvirt : Bootstrap fails for local gnulib
by chandrashekar shastri
Hi All,
The Libvirt compliation fails to bootstarp for local gnulib. We do not
have outbound access for the test machines.
So, we ll pull the gnulib from and copy to the test machines.
When we run ./bootstrap --no-git --gnulib-srcdir=/path/to/local, below
is the error:
./bootstrap: Bootstrapping from checked-out libvirt sources...
./bootstrap: consider installing git-merge-changelog from gnulib
./bootstrap: getting gnulib files...
fatal: Needed a single revision
Unable to find current revision in submodule path '.gnulib'
If we run autogen.sh it tries to pull from git though the $GNULIB_SRCDIR
is exported with the local gnulib.
./autogen.sh '--no-git'
I am going to run ./configure with no arguments - if you wish
to pass any to it, please specify them on the ./autogen.sh command line.
running bootstrap --no-git...
./bootstrap: Bootstrapping from checked-out libvirt sources...
./bootstrap: consider installing git-merge-changelog from gnulib
./bootstrap: getting gnulib files...
fatal: Unable to look up git.sv.gnu.org (port 9418) (Name or service not
known)
Unable to fetch in submodule path '.gnulib'
Failed to bootstrap, please investigate.
Please provide us the workaround for the same.
Thanks,
Chandrashekar
11 years, 6 months
[libvirt] [PATCH] maint: update to latest gnulib
by Eric Blake
The latest mingw headers on Fedora 19 fail to build with gnulib
without an update.
Meanwhile, now that upstream gnulib has better handling of -W
probing for clang, we can drop some of our own solutions in
favor of upstream; thus this reverts commit c1634100, "Correctly
detect warning flags with clang".
* .gnulib: Update to latest, for mingw and clang.
Signed-off-by: Eric Blake <eblake(a)redhat.com>
---
Pushing under the build-breaker rule.
* .gnulib a363f4e...f40e61e (41):
> update from texinfo
> ignore-value: port to gcc -pedantic
> extern-inline: port to gcc -std=c89
> doc: document extern-inline
> doc: chatter less
> fflush, fseeko: port to musl cross-compiles
> msvc-inval: port to mingw-w64
> getcwd-lgpl: port to Tru64
> autoupdate
> tests: port large-fd POSIX spawn tests to OS X
> autoupdate
> tests/nap.h: use an adaptive delay to avoid ctime update issues
> sig2str: port to C++
> docs: mention cygwin shortcoming in <sys/un.h>
> vasnprintf: silence mingw compiler warning
> c-ctype, regex, verify: port to gcc -std=c90 -pedantic
> regex: adapt to locking regime instead of depending on pthread
> getgroups: document portability issues
> test-lchown, test-chown: also skip test if lchown/chown fails with EPERM
> regex: fix dfa race in multithreaded uses
> malloca: port to compilers that reject size-zero arrays
> parse-datetime, tests: don't use "string" + int
> argmatch: port to C++
> argp: typo fix
> autoupdate
> manywarnings: update for GCC 4.8.0
> spawn-tests, sys_socket-tests, sys_wait-tests: port to clang
> getaddrinfo-tests: port --enable-gcc-warnings to clang
> thread: port --enable-gcc-warnings to clang
> stdio: use __REDIRECT for fwrite, fwrite_unlocked
> stdio: port --enable-gcc-warnings to clang
> sig2str: port --enable-gcc-warnings to clang
> obstack: port --enable-gcc-warnings to clang
> memchr2: port --enable-gcc-warnings to clang
> mbsstr: port --enable-gcc-warnings to clang
> malloca: port --enable-gcc-warnings to clang
> inttostr: port --enable-gcc-warnings to clang
> warnings: port to clang
> quotearg: do not read beyond end of buffer
> lock: work around pthread recursive mutexes bug in Mac OS X 10.6
> mkdir-p: remove assumptions about umask and mode
.gnulib | 2 +-
m4/virt-compile-warnings.m4 | 22 ----------------------
2 files changed, 1 insertion(+), 23 deletions(-)
diff --git a/.gnulib b/.gnulib
index a363f4e..f40e61e 160000
--- a/.gnulib
+++ b/.gnulib
@@ -1 +1 @@
-Subproject commit a363f4ed4a0e69187c97686ac44502c49c7f4b3d
+Subproject commit f40e61ea0c4940b027aade7dd48948aa93f133a4
diff --git a/m4/virt-compile-warnings.m4 b/m4/virt-compile-warnings.m4
index ce4e244..c6794b7 100644
--- a/m4/virt-compile-warnings.m4
+++ b/m4/virt-compile-warnings.m4
@@ -60,18 +60,6 @@ AC_DEFUN([LIBVIRT_COMPILE_WARNINGS],[
# gcc 4.4.6 complains this is C++ only; gcc 4.7.0 implies this from -Wall
dontwarn="$dontwarn -Wenum-compare"
- # clang rather horribly ignores unknown warning flags by
- # default. Thus to get gl_WARN_ADD to reliably detect
- # flags, we need to set '-Werror -Wunknown-warning-option'
- # in CFLAGS while probing support
- WARN_CFLAGS=
- orig_CFLAGS="$CFLAGS"
- gl_WARN_ADD([-Wunknown-warning-option])
- if test -n "$WARN_CFLAGS" ; then
- WARN_CFLAGS=
- CFLAGS="-Werror -Wunknown-warning-option $CFLAGS"
- fi
-
# gcc 4.2 treats attribute(format) as an implicit attribute(nonnull),
# which triggers spurious warnings for our usage
AC_CACHE_CHECK([whether gcc -Wformat allows NULL strings],
@@ -197,13 +185,6 @@ AC_DEFUN([LIBVIRT_COMPILE_WARNINGS],[
dnl gl_WARN_ADD([-fstack-protector])
gl_WARN_ADD([-fstack-protector-all])
gl_WARN_ADD([--param=ssp-buffer-size=4])
- dnl Even though it supports it, clang complains about
- dnl use of --param=ssp-buffer-size=4 unless used with
- dnl the -c arg. It doesn't like it when used with args
- dnl that just link together .o files. Unfortunately
- dnl we can't avoid that with automake, so we must turn
- dnl off the following clang specific warning
- gl_WARN_ADD([-Wno-unused-command-line-argument])
;;
*-*-freebsd*)
dnl FreeBSD ships old gcc 4.2.1 which doesn't handle
@@ -244,7 +225,4 @@ AC_DEFUN([LIBVIRT_COMPILE_WARNINGS],[
AC_DEFINE_UNQUOTED([BROKEN_GCC_WLOGICALOP], 1,
[Define to 1 if gcc -Wlogical-op reports false positives on strchr])
fi
-
- # Remove stuff we set for clang
- CFLAGS="$orig_CFLAGS"
])
--
1.8.1.4
11 years, 6 months
[libvirt] [PATCH glib] Add API to access device alias names
by Daniel P. Berrange
From: "Daniel P. Berrange" <berrange(a)redhat.com>
Add gvir_config_domain_device_get_alias to read the
<alias name="foo"/> XML in each device.
Signed-off-by: Daniel P. Berrange <berrange(a)redhat.com>
---
libvirt-gconfig/libvirt-gconfig-domain-device.c | 9 +++++++++
libvirt-gconfig/libvirt-gconfig-domain-device.h | 2 ++
libvirt-gconfig/libvirt-gconfig.sym | 2 ++
3 files changed, 13 insertions(+)
diff --git a/libvirt-gconfig/libvirt-gconfig-domain-device.c b/libvirt-gconfig/libvirt-gconfig-domain-device.c
index 81e8765..7c97a0f 100644
--- a/libvirt-gconfig/libvirt-gconfig-domain-device.c
+++ b/libvirt-gconfig/libvirt-gconfig-domain-device.c
@@ -109,3 +109,12 @@ unimplemented:
g_debug("Parsing of '%s' device nodes is unimplemented", tree->name);
return NULL;
}
+
+
+const gchar *gvir_config_domain_device_get_alias(GVirConfigDomainDevice *dev)
+{
+ g_return_val_if_fail(GVIR_CONFIG_IS_DOMAIN_DEVICE(dev), NULL);
+
+ return gvir_config_object_get_attribute(GVIR_CONFIG_OBJECT(dev),
+ "alias", "name");
+}
diff --git a/libvirt-gconfig/libvirt-gconfig-domain-device.h b/libvirt-gconfig/libvirt-gconfig-domain-device.h
index de4c3f7..2344ebe 100644
--- a/libvirt-gconfig/libvirt-gconfig-domain-device.h
+++ b/libvirt-gconfig/libvirt-gconfig-domain-device.h
@@ -59,6 +59,8 @@ struct _GVirConfigDomainDeviceClass
GType gvir_config_domain_device_get_type(void);
+const gchar *gvir_config_domain_device_get_alias(GVirConfigDomainDevice *dev);
+
G_END_DECLS
#endif /* __LIBVIRT_GCONFIG_DOMAIN_DEVICE_H__ */
diff --git a/libvirt-gconfig/libvirt-gconfig.sym b/libvirt-gconfig/libvirt-gconfig.sym
index 2847570..32f57d9 100644
--- a/libvirt-gconfig/libvirt-gconfig.sym
+++ b/libvirt-gconfig/libvirt-gconfig.sym
@@ -560,6 +560,8 @@ LIBVIRT_GCONFIG_0.1.7 {
gvir_config_domain_chardev_source_pty_get_path;
gvir_config_domain_chardev_get_source;
+
+ gvir_config_domain_device_get_alias;
} LIBVIRT_GCONFIG_0.1.6;
# .... define new API here using predicted next version number ....
--
1.8.2.1
11 years, 6 months
[libvirt] [PATCH glib] Add APIs to access chardev source information
by Daniel P. Berrange
From: "Daniel P. Berrange" <berrange(a)redhat.com>
Enable apps to determine the current source path of a chardev
with a pty based source.
---
.../libvirt-gconfig-domain-chardev-source-pty.c | 23 +++++++++++++++++++++
.../libvirt-gconfig-domain-chardev-source-pty.h | 2 ++
.../libvirt-gconfig-domain-chardev-source.c | 21 +++++++++++++++++++
libvirt-gconfig/libvirt-gconfig-domain-chardev.c | 24 ++++++++++++++++++++++
libvirt-gconfig/libvirt-gconfig-domain-chardev.h | 3 +++
libvirt-gconfig/libvirt-gconfig-object-private.h | 2 ++
libvirt-gconfig/libvirt-gconfig-object.c | 8 ++++++++
libvirt-gconfig/libvirt-gconfig.sym | 3 +++
8 files changed, 86 insertions(+)
diff --git a/libvirt-gconfig/libvirt-gconfig-domain-chardev-source-pty.c b/libvirt-gconfig/libvirt-gconfig-domain-chardev-source-pty.c
index d24385e..a965417 100644
--- a/libvirt-gconfig/libvirt-gconfig-domain-chardev-source-pty.c
+++ b/libvirt-gconfig/libvirt-gconfig-domain-chardev-source-pty.c
@@ -24,6 +24,7 @@
#include "libvirt-gconfig/libvirt-gconfig.h"
#include "libvirt-gconfig/libvirt-gconfig-private.h"
+#include "libvirt-gconfig/libvirt-gconfig-domain-chardev-source-private.h"
#define GVIR_CONFIG_DOMAIN_CHARDEV_SOURCE_PTY_GET_PRIVATE(obj) \
(G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_DOMAIN_CHARDEV_SOURCE_PTY, GVirConfigDomainChardevSourcePtyPrivate))
@@ -82,6 +83,19 @@ GVirConfigDomainChardevSourcePty *gvir_config_domain_chardev_source_pty_new_from
return GVIR_CONFIG_DOMAIN_CHARDEV_SOURCE_PTY(object);
}
+GVirConfigDomainChardevSource *
+gvir_config_domain_chardev_source_pty_new_from_tree(GVirConfigXmlDoc *doc,
+ xmlNodePtr tree)
+{
+ GVirConfigObject *object;
+
+ object = gvir_config_object_new_from_tree(GVIR_CONFIG_TYPE_DOMAIN_CHARDEV_SOURCE_PTY,
+ doc, NULL, tree);
+
+ return GVIR_CONFIG_DOMAIN_CHARDEV_SOURCE(object);
+}
+
+
void gvir_config_domain_chardev_source_pty_set_path(GVirConfigDomainChardevSourcePty *pty,
const char *path)
{
@@ -92,3 +106,12 @@ void gvir_config_domain_chardev_source_pty_set_path(GVirConfigDomainChardevSourc
"path",
path);
}
+
+
+const gchar * gvir_config_domain_chardev_source_pty_get_path(GVirConfigDomainChardevSourcePty *pty)
+{
+ g_return_val_if_fail(GVIR_CONFIG_IS_DOMAIN_CHARDEV_SOURCE_PTY(pty), NULL);
+
+ return gvir_config_object_get_attribute(GVIR_CONFIG_OBJECT(pty),
+ "source", "path");
+}
diff --git a/libvirt-gconfig/libvirt-gconfig-domain-chardev-source-pty.h b/libvirt-gconfig/libvirt-gconfig-domain-chardev-source-pty.h
index 96e05bc..fab3811 100644
--- a/libvirt-gconfig/libvirt-gconfig-domain-chardev-source-pty.h
+++ b/libvirt-gconfig/libvirt-gconfig-domain-chardev-source-pty.h
@@ -65,6 +65,8 @@ GVirConfigDomainChardevSourcePty *gvir_config_domain_chardev_source_pty_new_from
void gvir_config_domain_chardev_source_pty_set_path(GVirConfigDomainChardevSourcePty *pty,
const char *path);
+const gchar * gvir_config_domain_chardev_source_pty_get_path(GVirConfigDomainChardevSourcePty *pty);
+
G_END_DECLS
#endif /* __LIBVIRT_GCONFIG_DOMAIN_CHARDEV_SOURCE_PTY_H__ */
diff --git a/libvirt-gconfig/libvirt-gconfig-domain-chardev-source.c b/libvirt-gconfig/libvirt-gconfig-domain-chardev-source.c
index c34a3c8..bbb4c75 100644
--- a/libvirt-gconfig/libvirt-gconfig-domain-chardev-source.c
+++ b/libvirt-gconfig/libvirt-gconfig-domain-chardev-source.c
@@ -23,6 +23,8 @@
#include <config.h>
#include "libvirt-gconfig/libvirt-gconfig.h"
+#include "libvirt-gconfig/libvirt-gconfig-private.h"
+#include "libvirt-gconfig/libvirt-gconfig-domain-chardev-source-private.h"
#define GVIR_CONFIG_DOMAIN_CHARDEV_SOURCE_GET_PRIVATE(obj) \
(G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_DOMAIN_CHARDEV_SOURCE, GVirConfigDomainChardevSourcePrivate))
@@ -47,3 +49,22 @@ static void gvir_config_domain_chardev_source_init(GVirConfigDomainChardevSource
source->priv = GVIR_CONFIG_DOMAIN_CHARDEV_SOURCE_GET_PRIVATE(source);
}
+
+G_GNUC_INTERNAL GVirConfigDomainChardevSource *
+gvir_config_domain_chardev_source_new_from_tree(GVirConfigXmlDoc *doc,
+ xmlNodePtr tree)
+{
+ const gchar *type;
+
+ g_return_val_if_fail(GVIR_CONFIG_IS_XML_DOC(doc), NULL);
+ g_return_val_if_fail(tree != NULL, NULL);
+ g_return_val_if_fail(tree->name != NULL, NULL);
+
+ type = gvir_config_xml_get_attribute_content(tree, "type");
+
+ if (g_str_equal(type, "pty"))
+ return gvir_config_domain_chardev_source_pty_new_from_tree(doc, tree);
+
+ g_debug("Unknown chardev source type: %s", type);
+ return NULL;
+}
diff --git a/libvirt-gconfig/libvirt-gconfig-domain-chardev.c b/libvirt-gconfig/libvirt-gconfig-domain-chardev.c
index e20e597..bdb97dd 100644
--- a/libvirt-gconfig/libvirt-gconfig-domain-chardev.c
+++ b/libvirt-gconfig/libvirt-gconfig-domain-chardev.c
@@ -24,6 +24,7 @@
#include "libvirt-gconfig/libvirt-gconfig.h"
#include "libvirt-gconfig/libvirt-gconfig-private.h"
+#include "libvirt-gconfig/libvirt-gconfig-domain-chardev-source-private.h"
#define GVIR_CONFIG_DOMAIN_CHARDEV_GET_PRIVATE(obj) \
(G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_DOMAIN_CHARDEV, GVirConfigDomainChardevPrivate))
@@ -86,3 +87,26 @@ void gvir_config_domain_chardev_set_source(GVirConfigDomainChardev *chardev,
prepend_prop(chardev_node, new_attr);
}
}
+
+
+/**
+ * gvir_config_domain_chardev_get_source:
+ * @chardev: a #GVirConfigDomainChardev
+ *
+ * Gets the source for the chardev
+ *
+ * Returns: (transfer full): the chardev source
+ */
+GVirConfigDomainChardevSource *
+gvir_config_domain_chardev_get_source(GVirConfigDomainChardev *chardev)
+{
+ GVirConfigXmlDoc *doc;
+ xmlNodePtr tree;
+
+ doc = gvir_config_object_get_xml_doc(GVIR_CONFIG_OBJECT(chardev));
+ tree = gvir_config_object_get_xml_node(GVIR_CONFIG_OBJECT(chardev));
+
+ return gvir_config_domain_chardev_source_new_from_tree(doc,
+ tree);
+}
+
diff --git a/libvirt-gconfig/libvirt-gconfig-domain-chardev.h b/libvirt-gconfig/libvirt-gconfig-domain-chardev.h
index 23a2f43..7fdccc3 100644
--- a/libvirt-gconfig/libvirt-gconfig-domain-chardev.h
+++ b/libvirt-gconfig/libvirt-gconfig-domain-chardev.h
@@ -63,6 +63,9 @@ GType gvir_config_domain_chardev_get_type(void);
void gvir_config_domain_chardev_set_source(GVirConfigDomainChardev *chardev,
GVirConfigDomainChardevSource *source);
+GVirConfigDomainChardevSource *
+gvir_config_domain_chardev_get_source(GVirConfigDomainChardev *chardev);
+
G_END_DECLS
#endif /* __LIBVIRT_GCONFIG_DOMAIN_CHARDEV_H__ */
diff --git a/libvirt-gconfig/libvirt-gconfig-object-private.h b/libvirt-gconfig/libvirt-gconfig-object-private.h
index 9baac66..2ec358b 100644
--- a/libvirt-gconfig/libvirt-gconfig-object-private.h
+++ b/libvirt-gconfig/libvirt-gconfig-object-private.h
@@ -30,6 +30,8 @@ GVirConfigObject *gvir_config_object_new_from_tree(GType type,
GVirConfigXmlDoc *doc,
const char *schema,
xmlNodePtr tree);
+
+GVirConfigXmlDoc *gvir_config_object_get_xml_doc(GVirConfigObject *config);
xmlNodePtr gvir_config_object_get_xml_node(GVirConfigObject *config);
const char *gvir_config_object_get_node_content(GVirConfigObject *object,
const char *node_name);
diff --git a/libvirt-gconfig/libvirt-gconfig-object.c b/libvirt-gconfig/libvirt-gconfig-object.c
index 9e3b5f2..8971a5b 100644
--- a/libvirt-gconfig/libvirt-gconfig-object.c
+++ b/libvirt-gconfig/libvirt-gconfig-object.c
@@ -274,6 +274,14 @@ const gchar *gvir_config_object_get_schema(GVirConfigObject *config)
return config->priv->schema;
}
+
+G_GNUC_INTERNAL GVirConfigXmlDoc *
+gvir_config_object_get_xml_doc(GVirConfigObject *config)
+{
+ return config->priv->doc;
+}
+
+
/* FIXME: will we always have one xmlNode per GConfig object? */
/* FIXME: need to return the right node from subclasses */
/* NB: the xmlNodePtr must not be freed by the caller */
diff --git a/libvirt-gconfig/libvirt-gconfig.sym b/libvirt-gconfig/libvirt-gconfig.sym
index f8c7cdd..2847570 100644
--- a/libvirt-gconfig/libvirt-gconfig.sym
+++ b/libvirt-gconfig/libvirt-gconfig.sym
@@ -557,6 +557,9 @@ LIBVIRT_GCONFIG_0.1.7 {
gvir_config_storage_pool_target_get_path;
gvir_config_storage_pool_target_get_permissions;
+
+ gvir_config_domain_chardev_source_pty_get_path;
+ gvir_config_domain_chardev_get_source;
} LIBVIRT_GCONFIG_0.1.6;
# .... define new API here using predicted next version number ....
--
1.8.2.1
11 years, 6 months
[libvirt] [PATCH] Put virt-sanlock-cleanup into section 8
by Guido Günther
as indicates by the filename.
---
tools/Makefile.am | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/tools/Makefile.am b/tools/Makefile.am
index 1dac7c1..644a86d 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -99,7 +99,8 @@ virt-sanlock-cleanup: virt-sanlock-cleanup.in Makefile
|| (rm $@ && exit 1) && chmod +x $@
virt-sanlock-cleanup.8: virt-sanlock-cleanup.in $(top_srcdir)/configure.ac
- $(AM_V_GEN)$(POD2MAN) --name VIRT-SANLOCK-CLEANUP $< $(srcdir)/$@ \
+ $(AM_V_GEN)$(POD2MAN) --name VIRT-SANLOCK-CLEANUP --section=8 \
+ $< $(srcdir)/$@ \
&& if grep 'POD ERROR' $(srcdir)/$@ ; then \
rm $(srcdir)/$@; exit 1; fi
--
1.8.3.1
11 years, 6 months
[libvirt] [PATCH 0/2] Finish dual graphics support
by Martin Kletzander
We added support for dula <graphics>, but there were places in the
code which still needed to be adapted. Two tiny patches seem to fix
it all. Tested, works fine.
Martin Kletzander (2):
qemu: Don't miss errors when changing graphics passwords
qemu: Allow seamless migration for domains with multiple graphics
src/qemu/qemu_migration.c | 29 ++++++++++++++++++-----------
src/qemu/qemu_process.c | 6 +++---
2 files changed, 21 insertions(+), 14 deletions(-)
--
1.8.2.1
11 years, 6 months