[libvirt] [PATCH 01/12] virsh: Add domain name completion to 'migrate-postcopy' command
by Lin Ma
Signed-off-by: Lin Ma <lma(a)suse.com>
---
tools/virsh-domain.c | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
index 2b775fc4cc..6601f94a12 100644
--- a/tools/virsh-domain.c
+++ b/tools/virsh-domain.c
@@ -11219,11 +11219,7 @@ static const vshCmdInfo info_migrate_postcopy[] = {
};
static const vshCmdOptDef opts_migrate_postcopy[] = {
- {.name = "domain",
- .type = VSH_OT_DATA,
- .flags = VSH_OFLAG_REQ,
- .help = N_("domain name, id or uuid")
- },
+ VIRSH_COMMON_OPT_DOMAIN_FULL(VIR_CONNECT_LIST_DOMAINS_ACTIVE),
{.name = NULL}
};
--
2.15.1
6 years, 6 months
[libvirt] [sandbox PATCH] maint: Drop autobuild.sh
by Andrea Bolognani
The Test-AutoBuild project, that this script is supposed
to be used with, hasn't seen any activity in ~7 years;
these days, libvirt-sandbox CI builds are happening on the
Jenkins-based CentOS CI environment under the libvirt
umbrella[1], and in that context the script is not used
at all.
[1] https://ci.centos.org/view/libvirt/
Signed-off-by: Andrea Bolognani <abologna(a)redhat.com>
---
autobuild.sh | 71 ------------------------------------------------------------
1 file changed, 71 deletions(-)
delete mode 100755 autobuild.sh
diff --git a/autobuild.sh b/autobuild.sh
deleted file mode 100755
index c176fea..0000000
--- a/autobuild.sh
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/bin/sh
-
-set -e
-set -v
-
-# Make things clean.
-test -n "$1" && RESULTS=$1 || RESULTS=results.log
-: ${AUTOBUILD_INSTALL_ROOT=$HOME/builder}
-
-test -f Makefile && make -k distclean || :
-
-rm -rf build
-mkdir build
-cd build
-
-../autogen.sh --prefix=$AUTOBUILD_INSTALL_ROOT \
- --enable-gtk-doc
-
-make
-make install
-
-# set -o pipefail is a bashism; this use of exec is the POSIX alternative
-exec 3>&1
-st=$(
- exec 4>&1 >&3
- { make check syntax-check 2>&1 3>&- 4>&-; echo $? >&4; } | tee "$RESULTS"
-)
-exec 3>&-
-test "$st" = 0
-
-rm -f *.tar.gz
-make dist
-
-if [ -n "$AUTOBUILD_COUNTER" ]; then
- EXTRA_RELEASE=".auto$AUTOBUILD_COUNTER"
-else
- NOW=`date +"%s"`
- EXTRA_RELEASE=".$USER$NOW"
-fi
-
-if [ -f /usr/bin/rpmbuild ]; then
- rpmbuild --nodeps \
- --define "extra_release $EXTRA_RELEASE" \
- --define "_sourcedir `pwd`" \
- -ba --clean libvirt-sandbox.spec
-fi
-
-exit 0
-if [ -x /usr/bin/i686-pc-mingw32-gcc ]; then
- make distclean
-
- PKG_CONFIG_PATH="$AUTOBUILD_INSTALL_ROOT/i686-pc-mingw32/sys-root/mingw/lib/pkgconfig" \
- CC="i686-pc-mingw32-gcc" \
- ../configure \
- --build=$(uname -m)-pc-linux \
- --host=i686-pc-mingw32 \
- --prefix="$AUTOBUILD_INSTALL_ROOT/i686-pc-mingw32/sys-root/mingw"
-
- make
- make install
-
- #set -o pipefail
- #make check 2>&1 | tee "$RESULTS"
-
- if [ -f /usr/bin/rpmbuild ]; then
- rpmbuild --nodeps \
- --define "extra_release $EXTRA_RELEASE" \
- --define "_sourcedir `pwd`" \
- -ba --clean mingw32-libvirt-sandbox.spec
- fi
-fi
--
2.14.3
6 years, 6 months
[libvirt] [PATCH v3 0/6] Add support for VM Generation ID (vmgenid)
by John Ferlan
v2: https://www.redhat.com/archives/libvir-list/2018-April/msg02234.html
Changes since v2:
* Essentially handle comments from code review of original series from
comments received for patch 6:
https://www.redhat.com/archives/libvir-list/2018-April/msg02240.html
It's a somewhat simplified approach removing the ABI checks and the
adjustment to the genid value as part of domain def copy.
* (NEW) Patch 5 - add a 'genid' domain capability (similar to how Cole
added support for vmcoreinfo). Since the apps need a way to determine
whether this is enabled, this seems to be the best way.
John Ferlan (6):
conf: Add VM Generation ID parse/format support
qemu: Add VM Generation ID device capability
qemu: Alter VM Generation ID for specific startup/launch transitions
qemu: Add VM Generation ID to qemu command line
domcaps: Add 'genid' to domain capabilities
docs: Add news article for VM Generation ID
docs/formatdomain.html.in | 27 +++++++++++
docs/formatdomaincaps.html.in | 7 ++-
docs/news.xml | 13 ++++++
docs/schemas/domaincaps.rng | 7 +++
docs/schemas/domaincommon.rng | 8 ++++
src/conf/domain_capabilities.c | 3 ++
src/conf/domain_capabilities.h | 1 +
src/conf/domain_conf.c | 54 ++++++++++++++++++++++
src/conf/domain_conf.h | 5 ++
src/qemu/qemu_capabilities.c | 4 ++
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_command.c | 24 ++++++++++
src/qemu/qemu_driver.c | 17 +++++--
src/qemu/qemu_process.c | 46 +++++++++++++++++-
src/qemu/qemu_process.h | 1 +
tests/domaincapsschemadata/basic.xml | 1 +
tests/domaincapsschemadata/bhyve_basic.x86_64.xml | 1 +
tests/domaincapsschemadata/bhyve_fbuf.x86_64.xml | 1 +
tests/domaincapsschemadata/bhyve_uefi.x86_64.xml | 1 +
tests/domaincapsschemadata/full.xml | 1 +
tests/domaincapsschemadata/libxl-xenfv-usb.xml | 1 +
tests/domaincapsschemadata/libxl-xenfv.xml | 1 +
tests/domaincapsschemadata/libxl-xenpv-usb.xml | 1 +
tests/domaincapsschemadata/libxl-xenpv.xml | 1 +
tests/domaincapsschemadata/qemu_1.7.0.x86_64.xml | 1 +
.../qemu_2.12.0-virt.aarch64.xml | 1 +
tests/domaincapsschemadata/qemu_2.12.0.ppc64.xml | 1 +
tests/domaincapsschemadata/qemu_2.12.0.s390x.xml | 1 +
tests/domaincapsschemadata/qemu_2.12.0.x86_64.xml | 1 +
.../qemu_2.6.0-virt.aarch64.xml | 1 +
tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml | 1 +
tests/domaincapsschemadata/qemu_2.6.0.ppc64.xml | 1 +
tests/domaincapsschemadata/qemu_2.6.0.x86_64.xml | 1 +
tests/domaincapsschemadata/qemu_2.7.0.s390x.xml | 1 +
.../domaincapsschemadata/qemu_2.8.0-tcg.x86_64.xml | 1 +
tests/domaincapsschemadata/qemu_2.8.0.s390x.xml | 1 +
tests/domaincapsschemadata/qemu_2.8.0.x86_64.xml | 1 +
.../domaincapsschemadata/qemu_2.9.0-q35.x86_64.xml | 1 +
.../domaincapsschemadata/qemu_2.9.0-tcg.x86_64.xml | 1 +
tests/domaincapsschemadata/qemu_2.9.0.x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml | 1 +
.../qemuxml2argvdata/genid-auto.x86_64-latest.args | 30 ++++++++++++
tests/qemuxml2argvdata/genid-auto.xml | 32 +++++++++++++
tests/qemuxml2argvdata/genid.x86_64-latest.args | 30 ++++++++++++
tests/qemuxml2argvdata/genid.xml | 32 +++++++++++++
tests/qemuxml2argvtest.c | 4 ++
tests/qemuxml2xmloutdata/genid-active.xml | 32 +++++++++++++
tests/qemuxml2xmloutdata/genid-auto-active.xml | 32 +++++++++++++
tests/qemuxml2xmloutdata/genid-auto-inactive.xml | 32 +++++++++++++
tests/qemuxml2xmloutdata/genid-inactive.xml | 32 +++++++++++++
tests/qemuxml2xmltest.c | 5 +-
53 files changed, 500 insertions(+), 7 deletions(-)
create mode 100644 tests/qemuxml2argvdata/genid-auto.x86_64-latest.args
create mode 100644 tests/qemuxml2argvdata/genid-auto.xml
create mode 100644 tests/qemuxml2argvdata/genid.x86_64-latest.args
create mode 100644 tests/qemuxml2argvdata/genid.xml
create mode 100644 tests/qemuxml2xmloutdata/genid-active.xml
create mode 100644 tests/qemuxml2xmloutdata/genid-auto-active.xml
create mode 100644 tests/qemuxml2xmloutdata/genid-auto-inactive.xml
create mode 100644 tests/qemuxml2xmloutdata/genid-inactive.xml
--
2.14.3
6 years, 6 months
[libvirt] [PATCH] tests: domaincapstest: Fix after iothreads addition
by Cole Robinson
Introduced in 8525b9694. Some files weren't updated. I'm just
guessing on the bhyve ones
Signed-off-by: Cole Robinson <crobinso(a)redhat.com>
---
Pushes as a build breaker
tests/domaincapsschemadata/bhyve_basic.x86_64.xml | 1 +
tests/domaincapsschemadata/bhyve_fbuf.x86_64.xml | 1 +
tests/domaincapsschemadata/bhyve_uefi.x86_64.xml | 1 +
tests/domaincapsschemadata/libxl-xenfv-usb.xml | 1 +
tests/domaincapsschemadata/libxl-xenpv-usb.xml | 1 +
5 files changed, 5 insertions(+)
diff --git a/tests/domaincapsschemadata/bhyve_basic.x86_64.xml b/tests/domaincapsschemadata/bhyve_basic.x86_64.xml
index 70e36e97e9..055d05b568 100644
--- a/tests/domaincapsschemadata/bhyve_basic.x86_64.xml
+++ b/tests/domaincapsschemadata/bhyve_basic.x86_64.xml
@@ -2,6 +2,7 @@
<path>/usr/sbin/bhyve</path>
<domain>bhyve</domain>
<arch>x86_64</arch>
+ <iothreads supported='no'/>
<os supported='yes'>
<loader supported='no'/>
</os>
diff --git a/tests/domaincapsschemadata/bhyve_fbuf.x86_64.xml b/tests/domaincapsschemadata/bhyve_fbuf.x86_64.xml
index 19b76da456..b22ca43ba0 100644
--- a/tests/domaincapsschemadata/bhyve_fbuf.x86_64.xml
+++ b/tests/domaincapsschemadata/bhyve_fbuf.x86_64.xml
@@ -2,6 +2,7 @@
<path>/usr/sbin/bhyve</path>
<domain>bhyve</domain>
<arch>x86_64</arch>
+ <iothreads supported='no'/>
<os supported='yes'>
<loader supported='yes'>
<value>/foo/bar</value>
diff --git a/tests/domaincapsschemadata/bhyve_uefi.x86_64.xml b/tests/domaincapsschemadata/bhyve_uefi.x86_64.xml
index c278df038a..625a55e70c 100644
--- a/tests/domaincapsschemadata/bhyve_uefi.x86_64.xml
+++ b/tests/domaincapsschemadata/bhyve_uefi.x86_64.xml
@@ -2,6 +2,7 @@
<path>/usr/sbin/bhyve</path>
<domain>bhyve</domain>
<arch>x86_64</arch>
+ <iothreads supported='no'/>
<os supported='yes'>
<loader supported='yes'>
<value>/foo/bar</value>
diff --git a/tests/domaincapsschemadata/libxl-xenfv-usb.xml b/tests/domaincapsschemadata/libxl-xenfv-usb.xml
index dfa992cb71..3f245e8961 100644
--- a/tests/domaincapsschemadata/libxl-xenfv-usb.xml
+++ b/tests/domaincapsschemadata/libxl-xenfv-usb.xml
@@ -4,6 +4,7 @@
<machine>xenfv</machine>
<arch>x86_64</arch>
<vcpu max='128'/>
+ <iothreads supported='no'/>
<os supported='yes'>
<loader supported='yes'>
<value>/usr/lib/xen/boot/hvmloader</value>
diff --git a/tests/domaincapsschemadata/libxl-xenpv-usb.xml b/tests/domaincapsschemadata/libxl-xenpv-usb.xml
index 8277a9efdd..2bcd588c0f 100644
--- a/tests/domaincapsschemadata/libxl-xenpv-usb.xml
+++ b/tests/domaincapsschemadata/libxl-xenpv-usb.xml
@@ -4,6 +4,7 @@
<machine>xenpv</machine>
<arch>x86_64</arch>
<vcpu max='512'/>
+ <iothreads supported='no'/>
<os supported='yes'>
<loader supported='no'/>
</os>
--
2.17.0
6 years, 6 months
[libvirt] [PATCH 0/3] conf: <vmcoreinfo> tweaks
by Cole Robinson
Patch #1 changes the vmcoreinfo XML schema slightly to be more future
proof, this is technically an API break but I'm not sure it matters,
see the patch for more details.
Patch #3 adds vmcoreinfo reporting to domain capabilities. The
schema doesn't follow the typical pattern so if anyone has other ideas
please comment
Cole Robinson (3):
conf: format/parse <vmcoreinfo> as tristate
conf: Add a comment warning about boolean feature XML
domain_capabilities: Report <vmcoreinfo> support
docs/formatdomaincaps.html.in | 5 +++++
docs/schemas/domaincaps.rng | 7 +++++++
docs/schemas/domaincommon.rng | 6 +++++-
src/conf/domain_capabilities.c | 2 ++
src/conf/domain_capabilities.h | 1 +
src/conf/domain_conf.c | 6 ++++--
src/qemu/qemu_capabilities.c | 3 +++
tests/domaincapsschemadata/basic.xml | 1 +
tests/domaincapsschemadata/bhyve_basic.x86_64.xml | 1 +
tests/domaincapsschemadata/bhyve_fbuf.x86_64.xml | 1 +
tests/domaincapsschemadata/bhyve_uefi.x86_64.xml | 1 +
tests/domaincapsschemadata/full.xml | 1 +
tests/domaincapsschemadata/libxl-xenfv-usb.xml | 1 +
tests/domaincapsschemadata/libxl-xenfv.xml | 1 +
tests/domaincapsschemadata/libxl-xenpv-usb.xml | 1 +
tests/domaincapsschemadata/libxl-xenpv.xml | 1 +
tests/domaincapsschemadata/qemu_1.7.0.x86_64.xml | 1 +
tests/domaincapsschemadata/qemu_2.12.0-virt.aarch64.xml | 1 +
tests/domaincapsschemadata/qemu_2.12.0.ppc64.xml | 1 +
tests/domaincapsschemadata/qemu_2.12.0.s390x.xml | 1 +
tests/domaincapsschemadata/qemu_2.12.0.x86_64.xml | 1 +
tests/domaincapsschemadata/qemu_2.6.0-virt.aarch64.xml | 1 +
tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml | 1 +
tests/domaincapsschemadata/qemu_2.6.0.ppc64.xml | 1 +
tests/domaincapsschemadata/qemu_2.6.0.x86_64.xml | 1 +
tests/domaincapsschemadata/qemu_2.7.0.s390x.xml | 1 +
tests/domaincapsschemadata/qemu_2.8.0-tcg.x86_64.xml | 1 +
tests/domaincapsschemadata/qemu_2.8.0.s390x.xml | 1 +
tests/domaincapsschemadata/qemu_2.8.0.x86_64.xml | 1 +
tests/domaincapsschemadata/qemu_2.9.0-q35.x86_64.xml | 1 +
tests/domaincapsschemadata/qemu_2.9.0-tcg.x86_64.xml | 1 +
tests/domaincapsschemadata/qemu_2.9.0.x86_64.xml | 1 +
tests/qemuxml2xmloutdata/vmcoreinfo.xml | 2 +-
33 files changed, 53 insertions(+), 4 deletions(-)
--
2.17.0
6 years, 6 months
[libvirt] [PATCH v5 0/2] Avoid slash characteres for 'domrename' command.
by Julio Faracco
The commits enhace the 'domrename' command of QEMU and Test drivers to
avoid slashes chars inside the new domain name.
Julio Faracco (2):
qemu: avoid slash characters to the new domain name.
test: avoid slash characters to the new domain name.
src/qemu/qemu_driver.c | 6 ++++++
src/test/test_driver.c | 6 ++++++
2 files changed, 12 insertions(+)
--
2.17.0
6 years, 6 months
[libvirt] [PATCH 0/6] Complete cleanup of domain object usage
by John Ferlan
This should be the "last time" (famous last words) needing to alter
this processing. I hope to get more than one pair of eyes looking
at the series. I've looked at it long enough to feel comfortable
with the changes, but I also know I probably have looked at it
so long that I could have missed something!
The first 3 patches set up the necessary infrastructure. Patches
4 & 5 are just something I found in libxl while doing this - they
could be extracted and considered separately if need be; however,
since I was thinking about @vm referencing - it just seemed to fit.
Since I altered @vm it only seemed right to do the same for @conn.
While it could be said that neither condition could happen - I
figured better safe than sorry and I think it follows how this type
of logic has been handled elsewhere in qemu.
Patch 6 is where all the magic happens. I tried a few different ways
to rework and split the Add/Remove processing, but either way I was
left with rather ugly patches that required touching the same places,
so I capitulated and combined them since there really is a delicate
balance between those paths that have added a virObjectRef after the
virDomainObjListAdd and those that just use virObjectUnlock on the
returned ListAdd objects. Converting the latter to use Ref caused more
"busy work" and equally large patches. The busy work was mosting around
the processing required during ListAdd if something happened which
resulted in ListRemove needing to be called.
The "general change" is that instead of having ListAdd return an object
with 2 refs and 1 lock it will now return an object with 3 refs and 1
lock. With that returned object, some drivers would perform an ObjectRef
while others did not. For those that did not, they would use ObjectUnlock
when done with the object so that when leaving whatever Create routine
there was there would be at least 2 Refs on the object. The change here
is to have them all be consistent. What follows is a "general description"
of what was done for each.
For bhyve, openvz, test, uml, and vmware (e.g. domain drivers that
do not use virObjectRef on the returned virDomainObjListAdd object):
Create/Add processing:
-> Use EndAPI instead of ObjectUnlock
-> Remove setting vm = NULL if the ListRemove was called to allow
EndAPI processing to perform last Unref and Unlock
NB: ListRemove would remove 2 refs and unlock, so it "worked",
but would "consume" the returned object
Undefine/Destroy processing:
-> Alter ListRemove and ObjectLock to just be ListRemove allowing the
EndAPI processing from a FindBy* to perform last Unref and Unlock
For libxl, lxc, qemu, and vz (e.g. domain drivers that use virObjectRef
on the returned virDomainObjListAdd object):
Create/Add processing:
-> Remove the ObjectRef
-> Remove the ObjectLock when needing to call ListRemove to allow
EndAPI processing to perform the last Unref and Unlock
NB: ListRemove no longer Unlock's the returned object
Undefine/Destroy processing:
-> Alter ListRemove and ObjectLock to just be ListRemove allowing the
EndAPI processing from a FindBy* to perform last Unref and Unlock
NB: For the AutoDestroy type logic, no change is required since in the
long run the object was left with the correct number of refs after
create processing ran. The issue is more the direct mgmt of object
during Add/Remove rather than mgmt of object once defined.
John Ferlan (6):
conf: Split FindBy{UUID|Name} into locked helpers
conf: Use virDomainObjListFindBy*Locked for virDomainObjListAdd
conf: Move and use virDomainObjListRemoveLocked
libxl: Add refcnt for args->vm during migration
libxl: Add refcnt for args->conn during migration
conf: Clean up object referencing for Add and Remove
src/bhyve/bhyve_driver.c | 21 ++----
src/conf/virdomainobjlist.c | 165 ++++++++++++++++++++++++++++----------------
src/libxl/libxl_driver.c | 64 ++++-------------
src/libxl/libxl_migration.c | 41 ++++-------
src/lxc/lxc_driver.c | 21 ++----
src/lxc/lxc_process.c | 17 +++--
src/openvz/openvz_conf.c | 2 +-
src/openvz/openvz_driver.c | 20 ++----
src/qemu/qemu_domain.c | 17 +----
src/qemu/qemu_driver.c | 6 +-
src/qemu/qemu_migration.c | 3 +-
src/test/test_driver.c | 56 +++++----------
src/uml/uml_driver.c | 37 +++-------
src/vmware/vmware_conf.c | 3 +-
src/vmware/vmware_driver.c | 17 ++---
src/vz/vz_driver.c | 1 -
src/vz/vz_sdk.c | 3 -
17 files changed, 192 insertions(+), 302 deletions(-)
--
2.13.6
6 years, 6 months
[libvirt] [PATCH 0/3] Ditch qemu-img help scraping
by Ján Tomko
Ján Tomko (3):
tests: delete most qemu-img test cases assuming FMT_OPTIONS
tests: assume FMT_COMPAT for qemu-img tests
storage: remove qemu-img help scraping
src/storage/storage_util.c | 73 ++-------------------
src/storage/storage_util.h | 1 -
.../qcow2-convert-nobacking.argv | 2 -
.../storagevolxml2argvdata/qcow2-from-logical.argv | 2 -
.../qcow2-nobacking-convert-prealloc.argv | 2 -
.../qcow2-nobacking-prealloc.argv | 2 -
.../qcow2-nocapacity-convert-prealloc.argv | 2 +-
tests/storagevolxml2argvdata/qcow2-nocapacity.argv | 2 +-
tests/storagevolxml2argvdata/qcow2.argv | 2 -
tests/storagevolxml2argvtest.c | 74 ++++++----------------
10 files changed, 24 insertions(+), 138 deletions(-)
delete mode 100644 tests/storagevolxml2argvdata/qcow2-convert-nobacking.argv
delete mode 100644 tests/storagevolxml2argvdata/qcow2-from-logical.argv
delete mode 100644 tests/storagevolxml2argvdata/qcow2-nobacking-convert-prealloc.argv
delete mode 100644 tests/storagevolxml2argvdata/qcow2-nobacking-prealloc.argv
delete mode 100644 tests/storagevolxml2argvdata/qcow2.argv
--
2.13.6
6 years, 6 months
[libvirt] [PATCH] configure: remove bogus LIBVIRT_GETTEXT macro reference
by Daniel P. Berrangé
The LIBVIRT_GETTEXT macro was an artifact of patch development and
was later renamed to LIBVIRT_CHECK_NLS. This cruft causes configure
to print out
./configure: line 75084: LIBVIRT_GETTEXT: command not found
but fortunately this is non-fatal
Reported-by: Martin Kletzander <mkletzan(a)redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange(a)redhat.com>
---
Pushed as trivial fix
configure.ac | 2 --
1 file changed, 2 deletions(-)
diff --git a/configure.ac b/configure.ac
index 419a1aa2f5..cc005ea9e8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -734,8 +734,6 @@ if test "$enable_test_locking" = "yes"; then
fi
AM_CONDITIONAL([WITH_CIL],[test "$enable_test_locking" = "yes"])
-LIBVIRT_GETTEXT
-
dnl Cygwin, MinGW and MSVC checks
LIBVIRT_WIN_CHECK_COMMON
LIBVIRT_WIN_CHECK_CYGWIN
--
2.14.3
6 years, 6 months
[libvirt] [PATCH 00/14] nwfilter: refactor the driver to make it independent of virt drivers
by Daniel P. Berrangé
Today the nwfilter driver is entangled with the virt drivers in both
directions. At various times when rebuilding filters nwfilter will call
out to the virt driver to iterate over running guest's NICs. This has
caused very complicated lock ordering rules to be required. If we are to
split the virt drivers out into separate daemons we need to get rid of
this coupling since we don't want the separate daemons calling each
other, as that risks deadlock if all of the RPC workers are busy.
The obvious way to solve this is to have the nwfilter driver remember
all the filters it has active, avoiding the need to iterate over running
guests.
NB, these patches are all ready for review, but the last patch really
should not be merged at this time. I need to do more work to be able to
serialize the filter state to disk, so the nwfilter driver can keep track
of it across daemon restarts. All except the last patch should be ok to
merge though.
Daniel P. Berrangé (14):
nwfilter: remove pointless virNWFilterHashTable struct
nwfilter: remove methods that are trivial wrappers for virHash APIs
nwfilter: remove virNWFilterHashTable typedefs entirely
nwfilter: make virNWFilterIPAddrLearnReq type private
nwfilter: remove obsolete code related to firewalld
nwfilter: fix leaking of filter parameters upon error
nwfilter: introduce virNWFilterBinding to decouple from virDomainNet
nwfilter: pass vm name in when instantiating filters
nwfilter: convert the gentech driver code to use virNWFilterBinding
nwfilter: convert IP address learning code to virNWFilterBinding
nwfilter: convert DHCP address snooping code to virNWFilterBinding
nwfilter: report an error if nic needs filtering by no driver is
present
nwfilter: keep track of active filter bindings
nwfilter: remove virt driver callback layer for rebuilding filters
src/conf/domain_conf.c | 8 +-
src/conf/domain_conf.h | 2 +-
src/conf/domain_nwfilter.c | 14 +-
src/conf/domain_nwfilter.h | 6 +-
src/conf/nwfilter_conf.c | 224 ++++++++---------
src/conf/nwfilter_conf.h | 67 ++---
src/conf/nwfilter_ipaddrmap.c | 15 +-
src/conf/nwfilter_params.c | 127 +++-------
src/conf/nwfilter_params.h | 33 +--
src/conf/virnwfilterobj.c | 4 +-
src/conf/virnwfilterobj.h | 4 +-
src/libvirt_private.syms | 8 +-
src/lxc/lxc_driver.c | 28 ---
src/lxc/lxc_process.c | 2 +-
src/nwfilter/nwfilter_dhcpsnoop.c | 153 +++++-------
src/nwfilter/nwfilter_dhcpsnoop.h | 7 +-
src/nwfilter/nwfilter_driver.c | 97 +++++---
src/nwfilter/nwfilter_driver.h | 2 -
src/nwfilter/nwfilter_gentech_driver.c | 432 ++++++++++++++++++---------------
src/nwfilter/nwfilter_gentech_driver.h | 28 +--
src/nwfilter/nwfilter_learnipaddr.c | 113 ++++-----
src/nwfilter/nwfilter_learnipaddr.h | 25 +-
src/nwfilter/nwfilter_tech_driver.h | 2 +-
src/qemu/qemu_driver.c | 25 --
src/qemu/qemu_hotplug.c | 6 +-
src/qemu/qemu_interface.c | 4 +-
src/qemu/qemu_process.c | 2 +-
src/uml/uml_conf.c | 2 +-
src/uml/uml_driver.c | 29 ---
tests/nwfilterxml2firewalltest.c | 36 +--
30 files changed, 642 insertions(+), 863 deletions(-)
--
2.14.3
6 years, 6 months