On 04/13/2016 03:06 PM, Laine Stump wrote:
It's this commit that causes the "Missing ACL check" breakage I
mentioned in the other message (caused by a failure of
check-aclrules.pl). See below for a separate problem...
The problem is that the toplevel APIs of the driver don't have the
appropriate calls to virBlahEnsureACL(). I've gone through adding maybe
20 or so of the necessary calls, but starting with vzDomainSuspend()
it's not as mechanical, and I have to leave for awhile. I'll try to send
you a patch of what I've done and you can continue it if I can't get
back to it.
On 04/13/2016 09:07 AM, Maxim Nestratov wrote:
Make it possible to build vz driver as a module and don't link it with
libvirt.so statically.
Remove registering it on client's side as far as we start relying on
daemon
Signed-off-by: Maxim Nestratov <mnestratov@xxxxxxxxxxxxx>
---
daemon/Makefile.am | 4 ++++
daemon/libvirtd.c | 9 +++++++++
src/Makefile.am | 19 ++++++++++++++-----
src/libvirt.c | 7 -------
src/libvirt_private.syms | 7 +++++++
5 files changed, 34 insertions(+), 12 deletions(-)
diff --git a/daemon/Makefile.am b/daemon/Makefile.am
index 2dbe81b..78d7d21 100644
--- a/daemon/Makefile.am
+++ b/daemon/Makefile.am
@@ -233,6 +233,10 @@ if WITH_VBOX
libvirtd_LDADD += ../src/libvirt_driver_vbox.la
endif WITH_VBOX
+if WITH_VZ
+ libvirtd_LDADD += ../src/libvirt_driver_vz.la
+endif WITH_VZ
+
if WITH_STORAGE
libvirtd_LDADD += ../src/libvirt_driver_storage.la
endif WITH_STORAGE
diff --git a/daemon/libvirtd.c b/daemon/libvirtd.c
index 3d38a46..92b4080 100644
--- a/daemon/libvirtd.c
+++ b/daemon/libvirtd.c
@@ -102,6 +102,9 @@
# include "nwfilter/nwfilter_driver.h"
# endif
#endif
+#ifdef WITH_VZ
+# include "vz/vz_driver.h"
+#endif
#include "configmake.h"
@@ -390,6 +393,9 @@ static void daemonInitialize(void)
# ifdef WITH_BHYVE
virDriverLoadModule("bhyve");
# endif
+# ifdef WITH_VZ
+ virDriverLoadModule("vz");
+# endif
#else
# ifdef WITH_NETWORK
networkRegister();
@@ -430,6 +436,9 @@ static void daemonInitialize(void)
# ifdef WITH_BHYVE
bhyveRegister();
# endif
+# ifdef WITH_VZ
+ vzRegister();
+# endif
#endif
}
diff --git a/src/Makefile.am b/src/Makefile.am
index eda0365..08ff301 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -630,6 +630,7 @@ DRIVER_SOURCE_FILES = \
$(NULL)
STATEFUL_DRIVER_SOURCE_FILES = \
+ $(VZ_DRIVER_SOURCES) \
$(BHYVE_DRIVER_SOURCES) \
$(INTERFACE_DRIVER_SOURCES) \
$(LIBXL_DRIVER_SOURCES) \
@@ -886,7 +887,7 @@ HYPERV_DRIVER_EXTRA_DIST
= \
hyperv/hyperv_wmi_generator.py \
$(HYPERV_DRIVER_GENERATED)
-VZ_DRIVER_SOURCES = \
+VZ_DRIVER_SOURCES = \
vz/vz_driver.h \
vz/vz_driver.c \
vz/vz_utils.c \
@@ -1493,13 +1494,21 @@ libvirt_driver_hyperv_la_SOURCES =
$(HYPERV_DRIVER_SOURCES)
endif WITH_HYPERV
if WITH_VZ
+noinst_LTLIBRARIES += libvirt_driver_vz_impl.la
+libvirt_driver_vz_la_SOURCES =
+libvirt_driver_vz_la_LIBADD = libvirt_driver_vz_impl.la
+if WITH_DRIVER_MODULES
+mod_LTLIBRARIES += libvirt_driver_vz.la
+libvirt_driver_vz_la_LIBADD += ../gnulib/lib/libgnu.la
+libvirt_driver_vz_la_LDFLAGS = -module -avoid-version $(AM_LDFLAGS)
+else ! WITH_DRIVER_MODULES
noinst_LTLIBRARIES += libvirt_driver_vz.la
-libvirt_la_BUILT_LIBADD += libvirt_driver_vz.la
-libvirt_driver_vz_la_CFLAGS = \
+endif ! WITH_DRIVER_MODULES
+libvirt_driver_vz_impl_la_CFLAGS = \
-I$(srcdir)/conf $(AM_CFLAGS) \
$(PARALLELS_SDK_CFLAGS) $(LIBNL_CFLAGS)
-libvirt_driver_vz_la_LIBADD = $(PARALLELS_SDK_LIBS) $(LIBNL_LIBS)
-libvirt_driver_vz_la_SOURCES = $(VZ_DRIVER_SOURCES)
+libvirt_driver_vz_impl_la_SOURCES = $(VZ_DRIVER_SOURCES)
+libvirt_driver_vz_impl_la_LIBADD = $(PARALLELS_SDK_LIBS) $(LIBNL_LIBS)
endif WITH_VZ
if WITH_BHYVE
diff --git a/src/libvirt.c b/src/libvirt.c
index dd58e9c..a21d00e 100644
--- a/src/libvirt.c
+++ b/src/libvirt.c
@@ -92,9 +92,6 @@
#ifdef WITH_XENAPI
# include "xenapi/xenapi_driver.h"
#endif
-#ifdef WITH_VZ
-# include "vz/vz_driver.h"
-#endif
#ifdef WITH_BHYVE
# include "bhyve/bhyve_driver.h"
#endif
@@ -433,10 +430,6 @@ virGlobalInit(void)
if (xenapiRegister() == -1)
goto error;
# endif
-# ifdef WITH_VZ
- if (vzRegister() == -1)
- goto error;
-# endif
#endif
#ifdef WITH_REMOTE
if (remoteRegister() == -1)
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index a9719ea..3a712de 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -927,6 +927,11 @@ virGetSecret;
virGetStoragePool;
virGetStorageVol;
virGetStream;
+virConnectCloseCallbackDataGetCallback;
+virNewConnectCloseCallbackData;
+virConnectCloseCallbackDataUnregister;
+virConnectCloseCallbackDataRegister;
+virConnectCloseCallbackDataCall;
The names in libvirt_private.syms are supposed to be in alphebetical
order within a file. These were added out of order which *should*
cause "make syntax-check" to fail, but doesn't for some reason. I
noticed it because of a warning message printed out while building.
virInterfaceClass;
virNetworkClass;
virNodeDeviceClass;
@@ -935,6 +940,7 @@ virSecretClass;
virStoragePoolClass;
virStorageVolClass;
virStreamClass;
+virConnectCloseCallbackDataClass;
This one is also out of order.
# fdstream.h
@@ -1302,6 +1308,7 @@ virCommandHandshakeWait;
virCommandNew;
virCommandNewArgList;
virCommandNewArgs;
+virCommandNewVAList;
virCommandNonblockingFDs;
virCommandPassFD;
virCommandPassFDGetFDIndex;
--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list
--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list