[libvirt] [PATCH v3 0/5] Add support for Direct Mode for Hyper-V Synthetic timers
by Vitaly Kuznetsov
Changes since v2:
- Post 5.6.0 rebase, patches 1-3 are dropped as they were already merged.
Original description:
QEMU-4.1 will bring us Direct Mode for Hyper-V Synthetic timers support,
we need to support it in libvirt too. As this is not a new enlightenment
but rather an enhancement of an existing one ('stimer'), support it in
<stimer state='on'>
<direct state='on'/>
</stimer>
form. Backwards compatibility is (hopefully) preserved.
Vitaly Kuznetsov (5):
cpu_x86: add Edx to KVM_FEATURE_DEF()
conf: change the way how Hyper-V features are printed out
conf: add support for Direct Mode for Hyper-V Synthetic timers
qemu: add support for Direct Mode for Hyper-V Synthetic timers
news: mention Direct Mode for Hyper-V Synthetic timers support
docs/formatdomain.html.in | 10 ++--
docs/news.xml | 9 ++++
docs/schemas/domaincommon.rng | 16 +++++-
src/conf/domain_conf.c | 77 ++++++++++++++++++++++++++---
src/conf/domain_conf.h | 1 +
src/cpu/cpu_x86.c | 33 +++++++------
src/cpu/cpu_x86_data.h | 2 +
src/qemu/qemu_command.c | 12 +++--
src/qemu/qemu_process.c | 20 +++++++-
tests/qemuxml2argvdata/hyperv.args | 4 +-
tests/qemuxml2argvdata/hyperv.xml | 4 +-
tests/qemuxml2xmloutdata/hyperv.xml | 4 +-
12 files changed, 155 insertions(+), 37 deletions(-)
--
2.20.1
5 years, 3 months
[libvirt] [PATCH] admin: Fix missing filters of debug msg for virAdmConnectSetLoggingFilters
by Han Han
Signed-off-by: Han Han <hhan(a)redhat.com>
---
src/libvirt-admin.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/libvirt-admin.c b/src/libvirt-admin.c
index 4ae50b188f..cf40ea122e 100644
--- a/src/libvirt-admin.c
+++ b/src/libvirt-admin.c
@@ -1236,7 +1236,7 @@ virAdmConnectSetLoggingFilters(virAdmConnectPtr conn,
{
int ret = -1;
- VIR_DEBUG("conn=%p, flags=0x%x", conn, flags);
+ VIR_DEBUG("conn=%p, filters=%s, flags=0x%x", conn, filters, flags);
virResetLastError();
virCheckAdmConnectReturn(conn, -1);
--
2.20.1
5 years, 3 months
[libvirt] [PATCH] conf: code comment fix for TPM version
by marcandre.lureau@redhat.com
From: Marc-André Lureau <marcandre.lureau(a)redhat.com>
Since its introduction in commit
8737578d115b8328f59f3342377b0c7ac06f658a, the TPM version format is
"2.0" and not "2".
Signed-off-by: Marc-André Lureau <marcandre.lureau(a)redhat.com>
---
src/conf/domain_conf.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 0456369d55..e4c280e0d5 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -13053,13 +13053,13 @@ virDomainSmartcardDefParseXML(virDomainXMLOptionPtr xmlopt,
* or like this:
*
* <tpm model='tpm-tis'>
- * <backend type='emulator' version='2'/>
+ * <backend type='emulator' version='2.0'/>
* </tpm>
*
* Emulator state encryption is supported with the following:
*
* <tpm model='tpm-tis'>
- * <backend type='emulator' version='2'>
+ * <backend type='emulator' version='2.0'>
* <encryption uuid='32ee7e76-2178-47a1-ab7b-269e6e348015'/>
* </backend>
* </tpm>
--
2.23.0.rc1
5 years, 3 months
[libvirt] [PATCH] Revert "configure: Remove --enable-test-coverage"
by Jiri Denemark
This reverts commit f38d553e2d6ec2f041cb7947b5eafcdd3b26ae65.
Gnulib's make coverage (or init-coverage, build-coverage, gen-coverage)
is not a 1-1 replacement for the original configure option. Our old
--enable-test-coverage seems to be close to gnulib's make build-coverage
except gnulib runs lcov in that phase and the build actually fails for
me even before lcov is run. And since we want to be able to just build
libvirt without running lcov, I suggest reverting to our own
implementation.
Signed-off-by: Jiri Denemark <jdenemar(a)redhat.com>
---
Notes:
I admit the best solution would be to somehow make gnulib support what
we need (and fix the actual build), but I don't feel brave enough to do
that. Eric? :-)
Also if we ever switch to glib and drop gnulib completely, we would need
to reintroduce our own implementation anyway.
Makefile.am | 20 +++++++++++++++++---
configure.ac | 18 ++++++++++++++++++
src/Makefile.am | 3 ++-
src/remote/Makefile.inc.am | 2 ++
tests/Makefile.am | 2 ++
tools/Makefile.am | 6 ++++++
6 files changed, 47 insertions(+), 4 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index dedd8d2ff8..27c49280c4 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -16,15 +16,15 @@
## License along with this library. If not, see
## <http://www.gnu.org/licenses/>.
+LCOV = lcov
+GENHTML = genhtml
+
SUBDIRS = . gnulib/lib include/libvirt src tools docs gnulib/tests \
tests po examples
XZ_OPT ?= -v -T0
export XZ_OPT
-# have gnulib 'make coverage' output to 'cov' dir
-COVERAGE_OUT = "cov"
-
ACLOCAL_AMFLAGS = -I m4
EXTRA_DIST = \
@@ -87,6 +87,20 @@ check-local: all tests
check-access: all
@($(MAKE) $(AM_MAKEFLAGS) -C tests check-access)
+cov: clean-cov
+ $(MKDIR_P) $(top_builddir)/coverage
+ $(LCOV) -c -o $(top_builddir)/coverage/libvirt.info.tmp \
+ -d $(top_builddir)/src \
+ -d $(top_builddir)/tests
+ $(LCOV) -r $(top_builddir)/coverage/libvirt.info.tmp \
+ -o $(top_builddir)/coverage/libvirt.info
+ rm $(top_builddir)/coverage/libvirt.info.tmp
+ $(GENHTML) --show-details -t "libvirt" -o $(top_builddir)/coverage \
+ --legend $(top_builddir)/coverage/libvirt.info
+
+clean-cov:
+ rm -rf $(top_builddir)/coverage
+
MAINTAINERCLEANFILES = .git-module-status
dist-hook: gen-AUTHORS
diff --git a/configure.ac b/configure.ac
index ebb2e24e21..f41c6d5d86 100644
--- a/configure.ac
+++ b/configure.ac
@@ -726,6 +726,23 @@ fi
AC_SUBST([VIR_TEST_EXPENSIVE_DEFAULT])
AM_CONDITIONAL([WITH_EXPENSIVE_TESTS], [test $VIR_TEST_EXPENSIVE_DEFAULT = 1])
+LIBVIRT_ARG_ENABLE([TEST_COVERAGE], [turn on code coverage instrumentation], [no])
+case "$enable_test_coverage" in
+ yes|no) ;;
+ *) AC_MSG_ERROR([bad value ${enable_test_coverga} for test-coverage option]) ;;
+esac
+
+if test "$enable_test_coverage" = yes; then
+ save_WARN_CFLAGS=$WARN_CFLAGS
+ WARN_CFLAGS=
+ gl_WARN_ADD([-fprofile-arcs])
+ gl_WARN_ADD([-ftest-coverage])
+ COVERAGE_FLAGS=$WARN_CFLAGS
+ AC_SUBST([COVERAGE_CFLAGS], [$COVERAGE_FLAGS])
+ AC_SUBST([COVERAGE_LDFLAGS], [$COVERAGE_FLAGS])
+ WARN_CFLAGS=$save_WARN_CFLAGS
+fi
+
LIBVIRT_ARG_ENABLE([TEST_OOM], [memory allocation failure checking], [no])
case "$enable_test_oom" in
yes|no) ;;
@@ -1011,6 +1028,7 @@ LIBVIRT_WIN_RESULT_WINDRES
AC_MSG_NOTICE([])
AC_MSG_NOTICE([Test suite])
AC_MSG_NOTICE([])
+AC_MSG_NOTICE([ Coverage: $enable_test_coverage])
AC_MSG_NOTICE([ Alloc OOM: $enable_test_oom])
AC_MSG_NOTICE([])
AC_MSG_NOTICE([Miscellaneous])
diff --git a/src/Makefile.am b/src/Makefile.am
index f111b2a1b4..5ddc06f629 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -37,8 +37,9 @@ AM_CFLAGS = $(LIBXML_CFLAGS) \
$(WARN_CFLAGS) \
$(LOCK_CHECKING_CFLAGS) \
$(WIN32_EXTRA_CFLAGS) \
- $(NULL)
+ $(COVERAGE_CFLAGS)
AM_LDFLAGS = $(DRIVER_MODULES_LDFLAGS) \
+ $(COVERAGE_LDFLAGS) \
$(RELRO_LDFLAGS) \
$(NO_INDIRECT_LDFLAGS) \
$(CYGWIN_EXTRA_LDFLAGS) \
diff --git a/src/remote/Makefile.inc.am b/src/remote/Makefile.inc.am
index 0cf00cb902..4d3a450461 100644
--- a/src/remote/Makefile.inc.am
+++ b/src/remote/Makefile.inc.am
@@ -145,6 +145,7 @@ libvirtd_CFLAGS = \
$(LIBNL_CFLAGS) \
$(WARN_CFLAGS) \
$(PIE_CFLAGS) \
+ $(COVERAGE_CFLAGS) \
-I$(srcdir)/access \
-I$(srcdir)/conf \
-I$(srcdir)/rpc \
@@ -153,6 +154,7 @@ libvirtd_CFLAGS = \
libvirtd_LDFLAGS = \
$(RELRO_LDFLAGS) \
$(PIE_LDFLAGS) \
+ $(COVERAGE_LDFLAGS) \
$(NO_INDIRECT_LDFLAGS) \
$(NO_UNDEFINED_LDFLAGS) \
$(NULL)
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 1c92e3ca6f..23e7c422ea 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -41,6 +41,7 @@ AM_CFLAGS = \
$(SELINUX_CFLAGS) \
$(APPARMOR_CFLAGS) \
$(YAJL_CFLAGS) \
+ $(COVERAGE_CFLAGS) \
$(XDR_CFLAGS) \
$(WARN_CFLAGS)
@@ -267,6 +268,7 @@ endif WITH_SECDRIVER_SELINUX
# This is a fake SSH we use from virnetsockettest
ssh_SOURCES = ssh.c
+ssh_LDADD = $(COVERAGE_LDFLAGS)
if WITH_LIBXL
test_programs += xlconfigtest \
diff --git a/tools/Makefile.am b/tools/Makefile.am
index df3d628bab..9cf6baf35b 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -33,6 +33,7 @@ WARN_CFLAGS += $(STRICT_FRAME_LIMIT_CFLAGS)
AM_CFLAGS = \
$(WARN_CFLAGS) \
+ $(COVERAGE_CFLAGS) \
$(PIE_CFLAGS) \
$(LIBXML_CFLAGS) \
$(NULL)
@@ -143,6 +144,7 @@ libvirt_shell_la_CFLAGS = \
libvirt_shell_la_LDFLAGS = \
$(AM_LDFLAGS) \
$(PIE_LDFLAGS) \
+ $(COVERAGE_LDFLAGS) \
$(NULL)
libvirt_shell_la_LIBADD = \
../src/libvirt.la \
@@ -188,6 +190,7 @@ endif ! WITH_BHYVE
virt_host_validate_LDFLAGS = \
$(AM_LDFLAGS) \
$(PIE_LDFLAGS) \
+ $(COVERAGE_LDFLAGS) \
$(NULL)
virt_host_validate_LDADD = \
@@ -213,6 +216,7 @@ virt_login_shell_helper_SOURCES = \
virt_login_shell_helper_LDFLAGS = \
$(AM_LDFLAGS) \
$(PIE_LDFLAGS) \
+ $(COVERAGE_LDFLAGS) \
$(NULL)
virt_login_shell_helper_LDADD = \
../src/libvirt.la \
@@ -245,6 +249,7 @@ virsh_SOURCES = \
virsh_LDFLAGS = \
$(AM_LDFLAGS) \
$(PIE_LDFLAGS) \
+ $(COVERAGE_LDFLAGS) \
$(NULL)
virsh_LDADD = \
$(STATIC_BINARIES) \
@@ -262,6 +267,7 @@ virt_admin_SOURCES = \
virt_admin_LDFLAGS = \
$(AM_LDFLAGS) \
+ $(COVERAGE_LDFLAGS) \
$(STATIC_BINARIES) \
$(PIE_LDFLAGS) \
$(NULL)
--
2.22.0
5 years, 3 months
[libvirt] [PATCH 00/10] Pass correct qemuCaps to qemuDomainDefPostParse
by Jiri Denemark
Since qemuDomain{Device,}DefPostParse callbacks require qemuCaps, we
need to make sure they get the capabilities stored in the domain's
private data if the domain is running. Passing NULL may cause QEMU
capabilities probing to be triggered in case the cached capabilities are
not valid anymore. When this happens while a running domain object is
locked, QMP event delivered to the domain before QEMU capabilities
probing finishes will deadlock the event loop.
The funny part is that qemuDomainDeviceDefPostParse and
qemuDomainDefPostParse are a callbacks for virDomainDeviceDefPostParse
and virDomainDefPostParse respectively and we need to make sure to
properly set the parseOpaque pointer in all paths which could eventually
go through these general APIs.
If you are interested, you can look at the called-by graph for
virDomainDeviceDefPostParse at
http://people.redhat.com/jdenemar/virDomainDeviceDefPostParse.svg
Only a few of those paths were correct.
Jiri Denemark (10):
qemu: Pass qemuCaps to qemuDomainDefCopy
qemu: Pass qemuCaps to qemuDomainDefFormatBufInternal
qemu: Pass qemuCaps to qemuDomainSaveImageOpen
qemu: Pass qemuCaps to qemuMigrationAnyPrepareDef
qemu: Pass correct qemuCaps to virDomainDefParseString
qemu: Pass qemuCaps to qemuMigrationCookieXMLParse
qemu: Pass correct qemuCaps to virDomainDefCopy
qemu: Pass correct qemuCaps to virDomainDefPostParse
qemu: Pass correct qemuCaps to virDomainDefParseNode
qemu: Pass correct qemuCaps to virDomainDeviceDefPostParse
src/conf/checkpoint_conf.c | 9 +-
src/conf/checkpoint_conf.h | 1 +
src/conf/domain_conf.c | 41 ++++---
src/conf/domain_conf.h | 13 ++-
src/conf/snapshot_conf.c | 11 +-
src/conf/snapshot_conf.h | 2 +
src/esx/esx_driver.c | 2 +-
src/libxl/libxl_domain.c | 2 +-
src/libxl/libxl_driver.c | 22 ++--
src/libxl/libxl_migration.c | 2 +-
src/lxc/lxc_driver.c | 18 +--
src/lxc/lxc_process.c | 2 +-
src/openvz/openvz_driver.c | 2 +-
src/phyp/phyp_driver.c | 2 +-
src/qemu/qemu_domain.c | 53 +++++----
src/qemu/qemu_domain.h | 5 +
src/qemu/qemu_driver.c | 149 +++++++++++++++---------
src/qemu/qemu_migration.c | 22 ++--
src/qemu/qemu_migration.h | 1 +
src/qemu/qemu_migration_cookie.c | 16 ++-
src/qemu/qemu_process.c | 13 ++-
src/test/test_driver.c | 7 +-
src/vbox/vbox_common.c | 8 +-
tests/qemudomaincheckpointxml2xmltest.c | 2 +-
tests/qemudomainsnapshotxml2xmltest.c | 2 +-
tests/qemuhotplugtest.c | 4 +-
26 files changed, 256 insertions(+), 155 deletions(-)
--
2.22.0
5 years, 3 months
[libvirt] [PATCH 0/3] Fix NSS issue
by Michal Privoznik
Haven't spotted it during review of Dan's patches.
Long story short, if there's an unexpected key in JSON parsing stops.
But in general a key is hot harmful and shouldn't cause parser to stop.
See 1/3 for more explanation.
Michal Prívozník (3):
nss: Don't stop parsing on unexpected key
nss: Include stdio.h and define NULLSTR when debugging is enabled
nss: Don't leak memory on parse error
tests/nssdata/virbr1.status | 1 +
tools/nss/libvirt_nss.h | 2 ++
tools/nss/libvirt_nss_leases.c | 9 +++++----
3 files changed, 8 insertions(+), 4 deletions(-)
--
2.21.0
5 years, 3 months
[libvirt] [PATCH] docs: formatdomain: explain host-model/host-passthrough requirements
by Paolo Bonzini
host-passthrough documentation menions that the source and destination
hosts are not identical in both hardware and configuration. Configuration
actually includes microcode version and QEMU version, but this is not
clear so make it explicit
Signed-off-by: Paolo Bonzini <pbonzini(a)redhat.com>
---
docs/formatdomain.html.in | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
index f5c882141a..6d084d7c04 100644
--- a/docs/formatdomain.html.in
+++ b/docs/formatdomain.html.in
@@ -1590,8 +1590,8 @@
hand, the ABI provided to the guest is reproducible. During
migration, complete CPU model definition is transferred to the
destination host so the migrated guest will see exactly the same CPU
- model even if the destination host contains more capable CPUs for
- the running instance of the guest; but shutting down and restarting
+ model for the running instance of the guest, even if the destination
+ host contains more capable CPUs or newer kernel; but shutting down and restarting
the guest may present different hardware to the guest according to
the capabilities of the new host. Prior to libvirt 3.2.0 and QEMU
2.9.0 detection of the host CPU model via QEMU is not supported.
@@ -1625,10 +1625,10 @@
environment cannot be reproduced on different hardware. Thus, if you
hit any bugs, you are on your own. Further details of that CPU can
be changed using <code>feature</code> elements. Migration of a guest
- using host-passthrough is dangerous if the source and destination
- hosts are not identical in both hardware and configuration. If such
- a migration is attempted then the guest may hang or crash upon
- resuming execution on the destination host.</dd>
+ using host-passthrough is dangerous if the source and destination hosts
+ are not identical in both hardware, QEMU version, microcode version
+ and configuration. If such a migration is attempted then the guest may
+ hang or crash upon resuming execution on the destination host.</dd>
</dl>
Both <code>host-model</code> and <code>host-passthrough</code> modes
--
2.21.0
5 years, 3 months
[libvirt] [PATCH] test_driver: implement virDomainGetBlockInfo
by Ilias Stamatis
Signed-off-by: Ilias Stamatis <stamatis.iliass(a)gmail.com>
---
src/test/test_driver.c | 40 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)
diff --git a/src/test/test_driver.c b/src/test/test_driver.c
index 6f18baa265..106e8f027e 100755
--- a/src/test/test_driver.c
+++ b/src/test/test_driver.c
@@ -7729,6 +7729,45 @@ testDomainMemoryPeek(virDomainPtr dom,
}
+static int
+testDomainGetBlockInfo(virDomainPtr dom,
+ const char *path,
+ virDomainBlockInfoPtr info,
+ unsigned int flags)
+{
+ virDomainObjPtr vm = NULL;
+ virDomainDiskDefPtr disk;
+ int ret = -1;
+
+ virCheckFlags(0, -1);
+
+ if (!(vm = testDomObjFromDomain(dom)))
+ return -1;
+
+ if (!(disk = virDomainDiskByName(vm->def, path, false))) {
+ virReportError(VIR_ERR_INVALID_ARG,
+ _("invalid path %s not assigned to domain"), path);
+ goto cleanup;
+ }
+
+ if (virStorageSourceIsEmpty(disk->src)) {
+ virReportError(VIR_ERR_INVALID_ARG,
+ _("disk '%s' does not currently have a source assigned"),
+ path);
+ goto cleanup;
+ }
+
+ info->capacity = 1099506450432;
+ info->allocation = 1099511627776;
+ info->physical = 1099511627776;
+
+ ret = 0;
+ cleanup:
+ virDomainObjEndAPI(&vm);
+ return ret;
+}
+
+
/*
* Snapshot APIs
*/
@@ -9031,6 +9070,7 @@ static virHypervisorDriver testHypervisorDriver = {
.domainManagedSaveRemove = testDomainManagedSaveRemove, /* 1.1.4 */
.domainMemoryStats = testDomainMemoryStats, /* 5.7.0 */
.domainMemoryPeek = testDomainMemoryPeek, /* 5.4.0 */
+ .domainGetBlockInfo = testDomainGetBlockInfo, /* 5.7.0 */
.domainSnapshotNum = testDomainSnapshotNum, /* 1.1.4 */
.domainSnapshotListNames = testDomainSnapshotListNames, /* 1.1.4 */
--
2.22.0
5 years, 3 months
[libvirt] [PATCH v2 00/15] Split and enhancement of virsh completer
by Michal Privoznik
v2 of:
https://www.redhat.com/archives/libvir-list/2019-July/msg01225.html
diff to v1:
- Rebase and adapt to new checkpoint completer
Michal Prívozník (15):
tools: s/Nodedev/NodeDevice/
tools: Expose virshCommaStringListComplete()
tools: Separate domain related completers into a file
tools: Separate storage pool related completers into a file
tools: Separate storage volume related completers into a file
tools: Separate interface related completers into a file
tools: Separate network related completers into a file
tools: Separate nodedev related completers into a file
tools: Separate nwfilter related completers into a file
tools: Separate secret related completers into a file
tools: Separate snapshot related completers into a file
tools: Separate host related completers into a file
tools: Separate checkpoint related completers into a file
virsh-completer: Drop needless #include
virsh: Introduce virshPoolTypeCompleter
tools/Makefile.am | 11 +
tools/virsh-completer-checkpoint.c | 78 +++
tools/virsh-completer-checkpoint.h | 27 +
tools/virsh-completer-domain.c | 314 +++++++++
tools/virsh-completer-domain.h | 55 ++
tools/virsh-completer-host.c | 148 ++++
tools/virsh-completer-host.h | 31 +
tools/virsh-completer-interface.c | 67 ++
tools/virsh-completer-interface.h | 27 +
tools/virsh-completer-network.c | 145 ++++
tools/virsh-completer-network.h | 35 +
tools/virsh-completer-nodedev.c | 117 ++++
tools/virsh-completer-nodedev.h | 35 +
tools/virsh-completer-nwfilter.c | 105 +++
tools/virsh-completer-nwfilter.h | 31 +
tools/virsh-completer-pool.c | 120 ++++
tools/virsh-completer-pool.h | 35 +
tools/virsh-completer-secret.c | 91 +++
tools/virsh-completer-secret.h | 31 +
tools/virsh-completer-snapshot.c | 73 ++
tools/virsh-completer-snapshot.h | 27 +
tools/virsh-completer-volume.c | 73 ++
tools/virsh-completer-volume.h | 28 +
tools/virsh-completer.c | 1028 +---------------------------
tools/virsh-completer.h | 114 +--
tools/virsh-nodedev.c | 16 +-
tools/virsh-nodedev.h | 6 +-
tools/virsh-pool.c | 1 +
28 files changed, 1730 insertions(+), 1139 deletions(-)
create mode 100644 tools/virsh-completer-checkpoint.c
create mode 100644 tools/virsh-completer-checkpoint.h
create mode 100644 tools/virsh-completer-domain.c
create mode 100644 tools/virsh-completer-domain.h
create mode 100644 tools/virsh-completer-host.c
create mode 100644 tools/virsh-completer-host.h
create mode 100644 tools/virsh-completer-interface.c
create mode 100644 tools/virsh-completer-interface.h
create mode 100644 tools/virsh-completer-network.c
create mode 100644 tools/virsh-completer-network.h
create mode 100644 tools/virsh-completer-nodedev.c
create mode 100644 tools/virsh-completer-nodedev.h
create mode 100644 tools/virsh-completer-nwfilter.c
create mode 100644 tools/virsh-completer-nwfilter.h
create mode 100644 tools/virsh-completer-pool.c
create mode 100644 tools/virsh-completer-pool.h
create mode 100644 tools/virsh-completer-secret.c
create mode 100644 tools/virsh-completer-secret.h
create mode 100644 tools/virsh-completer-snapshot.c
create mode 100644 tools/virsh-completer-snapshot.h
create mode 100644 tools/virsh-completer-volume.c
create mode 100644 tools/virsh-completer-volume.h
--
2.21.0
5 years, 3 months