[libvirt] virtual smartcard support for GPG backend?
by roky@openmailbox.org
Hi. I am trying to get a virtual smartcard attached to a vm but I want
it to use GPG instead of NSS. RedHat focuses on NSS becuase of PKCS#11
requirements and FIPS approval, but for most of the community its GPG
that matters for smartcards.
Is is possible to use GPG on the host instead of NSS with virtual
smartcards? Please document how or add support for it.
Is using a virtual smartcard make the host less secure from a rogue vm?
If there are bugs in GPG/NSS backend on the host can they be abused by
untrusted code in the vm?
9 years, 7 months
[libvirt] [PATCH] storage: fs: Ignore volumes that fail to open with EPERM
by Cole Robinson
Trying to use qemu:///session to create a storage pool pointing at
/tmp will usually fail with something like:
$ virsh pool-start tmp
error: Failed to start pool tmp
error: cannot open volume '/tmp/systemd-private-c38cf0418d7a4734a66a8175996c384f-colord.service-kEyiTA': Permission denied
If any volume in an FS pool can't be opened by the daemon, the refresh
fails, and the pool can't be used.
This causes pain for virt-install/virt-manager though. Imaging a user
downloads a disk image to /tmp. virt-manager wants to import /tmp as
a storage pool, so we can detect what disk format it is, and set the
XML correctly. However this case will likely fail as explained above.
Change the logic here to skip volumes that fail to open. This could
conceivably cause user complaints along the lines of 'why doesn't
libvirt show $ROOT-OWNED-VOLUME-FOO', but figuring that currently
the pool won't even startup, I don't think there are any current
users that care about that case.
https://bugzilla.redhat.com/show_bug.cgi?id=1103308
---
src/storage/storage_backend.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/storage/storage_backend.c b/src/storage/storage_backend.c
index e0311e1..186013c 100644
--- a/src/storage/storage_backend.c
+++ b/src/storage/storage_backend.c
@@ -1445,6 +1445,10 @@ virStorageBackendVolOpen(const char *path, struct stat *sb,
VIR_WARN("ignoring missing fifo '%s'", path);
return -2;
}
+ if (errno == EACCES && noerror) {
+ VIR_WARN("ignore permission error for '%s'", path);
+ return -2;
+ }
virReportSystemError(errno, _("cannot open volume '%s'"), path);
return -1;
--
2.3.6
9 years, 7 months
[libvirt] [PATCH 0/4] storage: Fix a few issues with pool state tracking
by Cole Robinson
First patch fixes a regression introduced with pool state patches
Last 3 patches help fix other issues with the state tracking
Cole Robinson (4):
storage: Fix autostart dir for qemu:///session
storage: Don't leave stale state file if pool startup fails
storage: Break out storageDriverLoadPoolState
storage: If driver startup state syncing fails, delete statefile
src/storage/storage_driver.c | 109 ++++++++++++++++++++++++++-----------------
1 file changed, 67 insertions(+), 42 deletions(-)
--
2.3.6
9 years, 7 months
[libvirt] [PATCH v2 0/3] IOThread algorithm followups
by John Ferlan
v1 here:
http://www.redhat.com/archives/libvir-list/2015-April/msg01382.html
v2 changes:
Patch 1 - Add a !STRPREFIX(tmp, "iothread") of the returned iothreads
to ignore anything that doesn't start with "iothread".
Patch 2 - already ACKed, just difficult to extract.
Patch 3 - NEW: remove qemuMonitorIOThreadInfoFree as requested from
review of patch 1.
John Ferlan (3):
qemu: Remove need for qemuDomainParseIOThreadAlias
qemu: qemuProcessDetectIOThreadPIDs invert checks
qemu: Remove need for qemuMonitorIOThreadInfoFree
src/qemu/qemu_command.c | 17 -----------------
src/qemu/qemu_command.h | 3 ---
src/qemu/qemu_driver.c | 15 +++++----------
src/qemu/qemu_monitor.c | 10 ----------
src/qemu/qemu_monitor.h | 4 +---
src/qemu/qemu_monitor_json.c | 22 +++++++++++++++-------
src/qemu/qemu_process.c | 25 +++++++++++--------------
tests/qemumonitorjsontest.c | 14 +++++++-------
8 files changed, 39 insertions(+), 71 deletions(-)
--
2.1.0
9 years, 7 months
[libvirt] [PATCH v4 0/6] Add vmport feature
by Marc-André Lureau
Hi,
The QEMU machine vmport option allows to set the VMWare IO port
emulation. This emulation is useful for absolute pointer input when the
guest has vmware input drivers, and is enabled by default for kvm.
However it is unnecessary for Spice-enabled VM, since the agent already
handles absolute pointer and multi-monitors. Furthermore, it prevents
Spice from switching to relative input since the regular ps/2 pointer
driver is replaced by the vmware driver. It is thus advised to disable
vmport when using a Spice VM. This will permit the Spice client to
switch from absolute to relative pointer, as it may be required for
certain games or applications.
The following patch series allows to configure the vmport feature.
v2:
- use a feature instead of a domain attribute, suggested by D. Berrange
v3:
- use qmp query for caps instead of version
v4:
- use vesion check & qmp, add runtime check for machine kind
Marc-André Lureau (6):
docs: add domain vmport feature
domain/conf: add VIR_DOMAIN_FEATURE_VMPORT
qemu: add QEMU_CAPS_MACHINE_VMPORT_OPT
qemu: add virQEMUCapsSupportsVmport
qemu: add machine vmport argument
tests: add machine-vmport-opt qemu test
docs/formatdomain.html.in | 6 ++++
docs/schemas/domaincommon.rng | 9 ++++++
src/conf/domain_conf.c | 5 +++-
src/conf/domain_conf.h | 1 +
src/qemu/qemu_capabilities.c | 20 +++++++++++++
src/qemu/qemu_capabilities.h | 4 +++
src/qemu/qemu_command.c | 33 +++++++++-------------
src/qemu/qemu_domain.c | 19 +++++++++++++
src/qemu/qemu_domain.h | 3 ++
.../qemuxml2argv-machine-vmport-opt.args | 6 ++++
.../qemuxml2argv-machine-vmport-opt.xml | 28 ++++++++++++++++++
tests/qemuxml2argvtest.c | 2 ++
12 files changed, 116 insertions(+), 20 deletions(-)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-machine-vmport-opt.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-machine-vmport-opt.xml
--
2.1.0
9 years, 7 months
[libvirt] [libvirt-perl PATCH] Add virDomainAddIOThread and virDomainDelIOThread support
by John Ferlan
Add support for the new IOThread APIs
Signed-off-by: John Ferlan <jferlan(a)redhat.com>
---
Changes | 1 +
Virt.xs | 20 ++++++++++++++++++++
lib/Sys/Virt/Domain.pm | 12 ++++++++++++
3 files changed, 33 insertions(+)
diff --git a/Changes b/Changes
index ead8f8e..58efa37 100644
--- a/Changes
+++ b/Changes
@@ -6,6 +6,7 @@ Revision history for perl module Sys::Virt
event callback & constants.
- Add JOB_DOWNTIME_NET constant
- Add JOB_TIME_ELAPSED_NET constant
+ - Add virDomainAddIOThread and virDomainDelIOThread API bindings
1.2.14 2015-04-09
diff --git a/Virt.xs b/Virt.xs
index debb8f4..29f20ec 100644
--- a/Virt.xs
+++ b/Virt.xs
@@ -5100,6 +5100,26 @@ PREINIT:
_croak_error();
+void
+add_iothread(dom, iothread_id, flags=0)
+ virDomainPtr dom;
+ unsigned int iothread_id;
+ unsigned int flags;
+ PPCODE:
+ if (virDomainAddIOThread(dom, iothread_id, flags) < 0)
+ _croak_error();
+
+
+void
+del_iothread(dom, iothread_id, flags=0)
+ virDomainPtr dom;
+ unsigned int iothread_id;
+ unsigned int flags;
+ PPCODE:
+ if (virDomainDelIOThread(dom, iothread_id, flags) < 0)
+ _croak_error();
+
+
int
num_of_snapshots(dom, flags=0)
virDomainPtr dom;
diff --git a/lib/Sys/Virt/Domain.pm b/lib/Sys/Virt/Domain.pm
index f12abd1..2fda74d 100644
--- a/lib/Sys/Virt/Domain.pm
+++ b/lib/Sys/Virt/Domain.pm
@@ -1237,6 +1237,18 @@ Pin the IOThread given by index C<$iothread> to physical CPUs
given by C<$mask>. The C<$mask> is a string representing a bitmask
against physical CPUs, 8 cpus per character.
+=item $dom->add_iothread($iothread, $flags=0)
+
+Add a new IOThread by the C<$iothread> value to the guest domain.
+The C<$flags> parameter accepts one or more the CONFIG OPTION constants
+documented later, and defaults to 0 if omitted.
+
+=item $dom->del_iothread($iothread, $flags=0)
+
+Delete an existing IOThread by the C<$iothread> value from the guest domain.
+The C<$flags> parameter accepts one or more the CONFIG OPTION constants
+documented later, and defaults to 0 if omitted.
+
=item my @stats = $dom->get_cpu_stats($startCpu, $numCpus, $flags=0)
Requests the guests host physical CPU usage statistics, starting
--
2.1.0
9 years, 7 months
[libvirt] [PATCH] Add missing linker flags for MinGW build
by Pavel Fedin
This fix should completely close
https://bugzilla.redhat.com/show_bug.cgi?id=1214605
Signed-off-by: Pavel Fedin <p.fedin(a)samsung.com>
tests/Makefile.am | 40 +++++++++++++++++++++++++++-------------
1 file changed, 27 insertions(+), 13 deletions(-)
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 09dc2cb..e69235b 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -553,7 +553,8 @@ qemuxml2argvmock_la_SOURCES = \
qemuxml2argvmock.c
qemuxml2argvmock_la_CFLAGS = $(AM_CFLAGS)
qemuxml2argvmock_la_LDFLAGS = -module -avoid-version \
- -rpath /evil/libtool/hack/to/force/shared/lib/creation
+ -rpath /evil/libtool/hack/to/force/shared/lib/creation \
+ $(MINGW_EXTRA_LDFLAGS)
qemuxml2xmltest_SOURCES = \
qemuxml2xmltest.c testutilsqemu.c testutilsqemu.h \
@@ -614,7 +615,8 @@ qemucaps2xmlmock_la_SOURCES = \
qemucaps2xmlmock.c
qemucaps2xmlmock_la_CFLAGS = $(AM_CFLAGS)
qemucaps2xmlmock_la_LDFLAGS = -module -avoid-version \
- -rpath /evil/libtool/hack/to/force/shared/lib/creation
+ -rpath /evil/libtool/hack/to/force/shared/lib/creation \
+ $(MINGW_EXTRA_LDFLAGS)
qemuagenttest_SOURCES = \
qemuagenttest.c \
@@ -722,7 +724,8 @@ bhyvexml2argvmock_la_SOURCES = \
bhyvexml2argvmock.c
bhyvexml2argvmock_la_CFLAGS = $(AM_CFLAGS)
bhyvexml2argvmock_la_LDFLAGS = -module -avoid-version \
- -rpath
/evil/libtool/hack/to/force/shared/lib/creation
+ -rpath
/evil/libtool/hack/to/force/shared/lib/creation \
+ $(MINGW_EXTRA_LDFLAGS)
bhyve_LDADDS = ../src/libvirt_driver_bhyve_impl.la
if WITH_STORAGE
@@ -930,7 +933,9 @@ virnetserverclientmock_la_SOURCES = \
virnetserverclientmock.c
virnetserverclientmock_la_CFLAGS = $(AM_CFLAGS)
virnetserverclientmock_la_LDFLAGS = -module -avoid-version \
- -rpath /evil/libtool/hack/to/force/shared/lib/creation
+ -rpath /evil/libtool/hack/to/force/shared/lib/creation \
+ $(GNULIB_LIBS) \
+ $(MINGW_EXTRA_LDFLAGS)
if WITH_GNUTLS
virnettlscontexttest_SOURCES = \
@@ -1009,7 +1014,8 @@ libvirportallocatormock_la_SOURCES = \
virportallocatortest.c
libvirportallocatormock_la_CFLAGS = $(AM_CFLAGS) -DMOCK_HELPER=1
libvirportallocatormock_la_LDFLAGS = -module -avoid-version \
- -rpath /evil/libtool/hack/to/force/shared/lib/creation
+ -rpath /evil/libtool/hack/to/force/shared/lib/creation \
+ $(MINGW_EXTRA_LDFLAGS)
vircgrouptest_SOURCES = \
vircgrouptest.c testutils.h testutils.c
@@ -1019,7 +1025,8 @@ vircgroupmock_la_SOURCES = \
vircgroupmock.c
vircgroupmock_la_CFLAGS = $(AM_CFLAGS)
vircgroupmock_la_LDFLAGS = -module -avoid-version \
- -rpath /evil/libtool/hack/to/force/shared/lib/creation
+ -rpath /evil/libtool/hack/to/force/shared/lib/creation \
+ $(MINGW_EXTRA_LDFLAGS)
vircryptotest_SOURCES = \
vircryptotest.c testutils.h testutils.c
@@ -1039,7 +1046,8 @@ virpcimock_la_CFLAGS = $(AM_CFLAGS)
virpcimock_la_LIBADD = $(GNULIB_LIBS) \
../src/libvirt.la
virpcimock_la_LDFLAGS = -module -avoid-version \
- -rpath /evil/libtool/hack/to/force/shared/lib/creation
+ -rpath /evil/libtool/hack/to/force/shared/lib/creation \
+ $(MINGW_EXTRA_LDFLAGS)
virnetdevtest_SOURCES = \
virnetdevtest.c testutils.h testutils.c
@@ -1052,7 +1060,8 @@ virnetdevmock_la_CFLAGS = $(AM_CFLAGS) $(LIBNL_CFLAGS)
virnetdevmock_la_LIBADD = $(GNULIB_LIBS) \
../src/libvirt.la
virnetdevmock_la_LDFLAGS = -module -avoid-version \
- -rpath /evil/libtool/hack/to/force/shared/lib/creation
+ -rpath /evil/libtool/hack/to/force/shared/lib/creation \
+ $(MINGW_EXTRA_LDFLAGS)
if WITH_LINUX
virusbtest_SOURCES = \
@@ -1066,13 +1075,15 @@ virnetdevbandwidthtest_LDADD = $(LDADDS)
$(LIBXML_LIBS)
virusbmock_la_SOURCES = virusbmock.c
virusbmock_la_CFLAGS = $(AM_CFLAGS)
virusbmock_la_LDFLAGS = -module -avoid-version \
- -rpath /evil/libtool/hack/to/force/shared/lib/creation
+ -rpath /evil/libtool/hack/to/force/shared/lib/creation \
+ $(MINGW_EXTRA_LDFLAGS)
virnetdevbandwidthmock_la_SOURCES = \
virnetdevbandwidthmock.c
virnetdevbandwidthmock_la_CFLAGS = $(AM_CFLAGS)
virnetdevbandwidthmock_la_LDFLAGS = -module -avoid-version \
- -rpath /evil/libtool/hack/to/force/shared/lib/creation
+ -rpath /evil/libtool/hack/to/force/shared/lib/creation \
+ $(MINGW_EXTRA_LDFLAGS)
else ! WITH_LINUX
EXTRA_DIST += virusbtest.c virusbmock.c \
@@ -1089,7 +1100,8 @@ virmockdbus_la_SOURCES = \
virmockdbus.c
virmockdbus_la_CFLAGS = $(AM_CFLAGS) $(DBUS_CFLAGS)
virmockdbus_la_LDFLAGS = -module -avoid-version \
- -rpath /evil/libtool/hack/to/force/shared/lib/creation
+ -rpath /evil/libtool/hack/to/force/shared/lib/creation \
+ $(MINGW_EXTRA_LDFLAGS)
virpolkittest_SOURCES = \
virpolkittest.c testutils.h testutils.c
@@ -1136,7 +1148,8 @@ endif ! WITH_TESTS
libsecurityselinuxhelper_la_SOURCES = \
securityselinuxhelper.c
libsecurityselinuxhelper_la_LDFLAGS = -module -avoid-version \
- -rpath /evil/libtool/hack/to/force/shared/lib/creation
+ -rpath /evil/libtool/hack/to/force/shared/lib/creation \
+ $(MINGW_EXTRA_LDFLAGS)
securityselinuxtest_SOURCES = \
securityselinuxtest.c testutils.h testutils.c
@@ -1209,7 +1222,8 @@ endif WITH_LIBVIRTD
libshunload_la_SOURCES = shunloadhelper.c
libshunload_la_LIBADD = ../src/libvirt.la
libshunload_la_LDFLAGS = -module -avoid-version \
- -rpath /evil/libtool/hack/to/force/shared/lib/creation
+ -rpath /evil/libtool/hack/to/force/shared/lib/creation \
+ $(MINGW_EXTRA_LDFLAGS)
shunloadtest_SOURCES = \
shunloadtest.c
Kind regards,
Pavel Fedin
Expert Engineer
Samsung Electronics Research center Russia
9 years, 7 months
[libvirt] FYI: Hacking on Sys::Virt libvirt Perl binding
by Daniel P. Berrange
Historically I have taken care of everything related to the Sys::Virt
Perl binding for libvirt. Recently a couple of adventurous people
have started sending patches too. Perl may have a reputation for being
scary, but at this point extending the Sys::Virt binding when new APIs
or constants are added is actually pretty straightforward. The majority
of new libvirt APIs calls look very similar to one or more existing
APIs, so you can usually get away with just doing a copy+paste job from
some existing Perl API binding. To assist people in understanding how
todo this, I've updated the HACKING file with some guidance. I'm including
it inline here for reference. I'm not expecting everyone to submit Perl
binding code for APIs they add. If people do submit binding code for new
APIs though, it will be more than welcome - if not I'll continue to watch
for changes and update things myself when required.
Hacking on libvirt perl
=======================
The libvirt Perl release versions are tied directly to the libvirt C
library release versions. ie Sys::Virt 1.2.10 will require libvirt
version 1.2.10 or newer in order to build. We do not aim to support
conditional compilation against versions of libvirt that are older
than the version of Sys::Virt.
General changes for new APIs
----------------------------
Additions to the libvirt C API will require changes to a minimum
of two parts of the Sys::Virt codebase.
- Virt.xs - this provides the C glue code to access the libvirt C
library APIs and constants from the Perl interpretor. As a general
rule, every new function and header file constant/enum requires an
addition to this file. The exceptions are functions that are only
provided for the benefit of language bindings and not intended for
use by application code. For example the reference counting APIs
don't need exposing to Perl applications
- lib/ - this directory contains the pure Perl part of the binding.
There are separate files for each core libvirt object type
- lib/Sys/Virt.pm - mapping for virConnectPtr
- lib/Sys/Virt/Domain.pm - mapping for virDomainPtr
- lib/Sys/Virt/Error.pm - mapping for virErrorPtr
- lib/Sys/Virt/Event.pm - mapping for virEventPtr
- lib/Sys/Virt/Interface.pm - mapping for virInterfacePtr
- lib/Sys/Virt/Network.pm - mapping for virNetworkPtr
- lib/Sys/Virt/NodeDevice.pm - mapping for virNodeDevicePtr
- lib/Sys/Virt/NWFilter.pm - mapping for virNWFilterPtr
- lib/Sys/Virt/Secret.pm - mapping for virSecretPtr
- lib/Sys/Virt/StoragePool.pm - mapping for virStoragePoolPtr
- lib/Sys/Virt/StorageVol.pm - mapping for virStorageVolPtr
- lib/Sys/Virt/Stream.pm - mapping for virStreamPtr
There is rarely a need to write Perl code in the .pm modules, as
the mapping in the Virt.xs file is usually sufficient. As such
the primary purpose of the .pm modules is to hold the POD inline
documentation. Every function and constants is required to have
full API documentation provided
There are a number of unit tests available in the t/ directory which
assist in creation of new APIs.
- t/010-pod-coverage.t - ensures that every Perl method and constant
has POD documentation present
- t/030-api-coverage.t - ensures that every C library method/constant
in the libvirt-api.xml file has corresponding code in the Virt.xs.
Certain functions can be blacklisted in t/030-api-coverage.t as not
needed mapping to Perl. This only runs if TEST_MAINTAINER=1 is set.
- t/*.t - the other files mostly do functional testing against the
test:///default API - if the new function has support in the test
driver, then suitable additions should be made
If use of the API is not obvious, it is often worth providing a small
example program in the examples/ directory. These examples are also
useful when adding APIs to ensure that they are operating correctly,
if it wasn't possible to unit test them with test:///default.
Every addition / change to the API must be documented in the Changes
file.
New API addition workflow
-------------------------
When the libvirt C library is changed, the following workflow is an
effective way to update the Perl binding.
- Build the libvirt C library
# cd $HOME/src/libvirt
# ./autogen.sh --system
# make
- Configure & build the Sys::Virt module to build against the just
built libvirt library
# cd $HOME/src/libvirt-perl
# ../libvirt/run perl Makefile.PL
# ../libvirt/run make
- Run the test suite to identify which new functions/constants need
handling
# ../libvirt/run make test TEST_MAINTAINER=1
- For each missing item reported in the test suite...
- Edit Virt.xs to add the C binding
- Edit lib/*.pm to add the POD documentation (and occassionally Perl glue code)
- Edit Changes to document the addition
- Run the test suite (without maintainer mode) to verify POD docs
# ../libvirt/run make test
- Optionally add to one of the t/*.t test cases
- Optionally add demo to examples/
- Commit the changes to GIT
Understanding Virt.xs glue layer
--------------------------------
The Perl XS glue (Virt.xs) is a pretty bizarre language, that mostly
looks like C but is actually run through a Perl specific preprocessor
to turn it into real C code. Learning and understanding XS code well
is a really difficult task, but fortunately such knowledge is rarely
required in order to add new APIs to the Perl Sys::Virt code.
When adding constants just look for the REGISTER_CONSTANT() macro
at the end of Virt.xs. Make sure that the constant is registered against
the correct Sys::Virt::XXXX object namespace - look for the adjacent
'gv_stashpv' calls to see which namespace is currently in effect.
When adding methods, you must again make sure they are put in the
correct object namespace. For methods, look for the statements
that look like:
MODULE = Sys::Virt::NWFilter PACKAGE = Sys::Virt::NWFilter
these indicate the start of a namespace for the object in question.
When implementing the binding for a method, if not already familiar
with XS code, the best technique is to just do cut+paste programming.
Find an existing libvirt API call that has the same kind of API
signature as the new API. Then just copy the XS code for that method
and tweak the parameter names as needed.
Async event callbacks have a little bit of special handling too. The
callbacks are all implemented as static methods at the very top of
the Virt.XS file. Look for method names like _domain_event_pmsuspend_callback
and just copy the code for an existing callback method that has a similar
set of parameters to the new callback.
Once the callback is implemented look for the domain_event_register_any()
or network_event_register_any() methods and extend the switch() statement
so that it maps the event ID constant to your new callback.
Making new releases
-------------------
The Sys::Virt releases are hosted on the Perl project CPAN infrastructure
rather than libvirt.org
1. Build the new release of libvirt as an RPM and install it on the
local machine.
2. Set the release date in the Changes file and commit the change
3. Tag the release with a GPG signed tag using vX.Y.Z syntax for
the tag name
git tag -s -m 'Release 1.2.14' v1.2.14
4. Clone the repository or run 'git clean -x -f -d' to ensure a
100% pristine state
5. Run autobuild.sh to test the full test suite and generate local
RPMs. This results in Sys-Virt-1.2.14.tar.gz file being created
6. Take the src.rpm file that was just generated by autobuild.sh
and run a scratch build against Fedora rawhide
# cd $HOME/src/fedora/perl-Sys-Virt
# fedpkg scratch-build --srpm /path/to/src/rpm/file
7. Push the Changes commit and tag to GIT master
# git push
# git push origin v1.2.14
If there is a failure at any step then this must be corrected
as follows
a. Delete the signed release tag
git tag -d v1.2.14
b. Fix whatever the problem was and update the Changes file
if appropriate
c. Go to release process step 3 again.
Assuming the release has now been made, the Sys-Virt-1.2.14.tar.gz
file should be uploaded to CPAN using https://pause.cpan.org form.
The upload is currently done by Daniel Berrange (username DANBERR).
Now open the tree for the next release version by editing the files
lib/Sys/Virt.pm, README, Makefile.PL to update the version number
listed. Also edit Changes to add a placeholder entry for the new
release number. Run 'make test' to ensure Changes file is syntax
valid.
Regards,
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
9 years, 7 months
[libvirt] [perl][PATCH 0/4] Fix coverage
by Michal Privoznik
In order to match the newish things in libvirt.
Michal Privoznik (4):
domain_event_register_any: Align the code
Add support for VIR_DOMAIN_EVENT_ID_DEVICE_ADDED
Add JOB_DOWNTIME_NET constant
Add JOB_TIME_ELAPSED_NET constant
Changes | 5 ++++-
Virt.xs | 48 ++++++++++++++++++++++++++++++++++++++++++++++--
lib/Sys/Virt/Domain.pm | 16 ++++++++++++++++
t/030-api-coverage.t | 1 +
4 files changed, 67 insertions(+), 3 deletions(-)
--
2.0.5
9 years, 7 months