This patch contains the base linux container support
* new switch --with-lxc to enable support (off by default)
* Add new source files to Makefile.am
* Add define for lxc in driver.h
* Add call to lxcRegister() in libvirt.c
* Add define for errors from lxc in virterror.h
* Add case for errors from lxc in virterror.c
Index: configure.in
===================================================================
RCS file: /data/cvs/libvirt/configure.in,v
retrieving revision 1.124
diff -u -p -r1.124 configure.in
--- configure.in 23 Jan 2008 19:37:10 -0000 1.124
+++ configure.in 19 Feb 2008 18:50:55 -0000
@@ -131,6 +131,8 @@ AC_ARG_WITH(qemu,
[ --with-qemu add QEMU/KVM support (on)],[],[with_qemu=yes])
AC_ARG_WITH(openvz,
[ --with-openvz add OpenVZ support (off)],[],[with_openvz=no])
+AC_ARG_WITH(lxc,
+[ --with-lxc add Linux Container support
(off)],[],[with_lxc=no])
AC_ARG_WITH(test,
[ --with-test add test driver support
(on)],[],[with_test=yes])
AC_ARG_WITH(remote,
@@ -228,6 +230,9 @@ WITH_XEN=0
if test "$with_openvz" = "yes" ; then
LIBVIRT_FEATURES="$LIBVIRT_FEATURES -DWITH_OPENVZ"
fi
+if test "$with_lxc" = "yes" ; then
+ LIBVIRT_FEATURES="$LIBVIRT_FEATURES -DWITH_LXC"
+fi
if test "$with_qemu" = "yes" ; then
LIBVIRT_FEATURES="$LIBVIRT_FEATURES -DWITH_QEMU"
fi
@@ -720,6 +725,7 @@ AC_MSG_NOTICE([ Xen: $with_xen])
AC_MSG_NOTICE([ Proxy: $with_xen_proxy])
AC_MSG_NOTICE([ QEMU: $with_qemu])
AC_MSG_NOTICE([ OpenVZ: $with_openvz])
+AC_MSG_NOTICE([ LXC: $with_lxc])
AC_MSG_NOTICE([ Test: $with_test])
AC_MSG_NOTICE([ Remote: $with_remote])
AC_MSG_NOTICE([Libvirtd: $with_libvirtd])
Index: include/libvirt/virterror.h
===================================================================
RCS file: /data/cvs/libvirt/include/libvirt/virterror.h,v
retrieving revision 1.31
diff -u -p -r1.31 virterror.h
--- include/libvirt/virterror.h 5 Dec 2007 15:24:15 -0000 1.31
+++ include/libvirt/virterror.h 19 Feb 2008 18:50:56 -0000
@@ -54,6 +54,7 @@ typedef enum {
VIR_FROM_OPENVZ, /* Error from OpenVZ driver */
VIR_FROM_XENXM, /* Error at Xen XM layer */
VIR_FROM_STATS_LINUX, /* Error in the Linux Stats code */
+ VIR_FROM_LXC, /* Error from Linux Container driver */
} virErrorDomain;
Index: src/Makefile.am
===================================================================
RCS file: /data/cvs/libvirt/src/Makefile.am,v
retrieving revision 1.62
diff -u -p -r1.62 Makefile.am
--- src/Makefile.am 5 Jan 2008 16:06:36 -0000 1.62
+++ src/Makefile.am 19 Feb 2008 18:50:56 -0000
@@ -57,6 +57,8 @@ CLIENT_SOURCES = \
qemu_conf.c qemu_conf.h \
openvz_conf.c openvz_conf.h \
openvz_driver.c openvz_driver.h \
+ lxc_driver.c lxc_driver.h \
+ lxc_conf.c lxc_conf.h \
nodeinfo.h nodeinfo.c \
util.c util.h
Index: src/driver.h
===================================================================
RCS file: /data/cvs/libvirt/src/driver.h,v
retrieving revision 1.41
diff -u -p -r1.41 driver.h
--- src/driver.h 5 Feb 2008 19:27:37 -0000 1.41
+++ src/driver.h 19 Feb 2008 18:50:56 -0000
@@ -24,6 +24,7 @@ typedef enum {
VIR_DRV_QEMU = 3,
VIR_DRV_REMOTE = 4,
VIR_DRV_OPENVZ = 5,
+ VIR_DRV_LXC = 6
} virDrvNo;
Index: src/libvirt.c
===================================================================
RCS file: /data/cvs/libvirt/src/libvirt.c,v
retrieving revision 1.120
diff -u -p -r1.120 libvirt.c
--- src/libvirt.c 5 Feb 2008 19:27:37 -0000 1.120
+++ src/libvirt.c 19 Feb 2008 18:50:57 -0000
@@ -40,6 +40,9 @@
#ifdef WITH_OPENVZ
#include "openvz_driver.h"
#endif
+#ifdef WITH_LXC
+#include "lxc_driver.h"
+#endif
/*
* TODO:
@@ -213,6 +216,9 @@ virInitialize(void)
#ifdef WITH_OPENVZ
if (openvzRegister() == -1) return -1;
#endif
+#ifdef WITH_LXC
+ if (lxcRegister() == -1) return -1;
+#endif
#ifdef WITH_REMOTE
if (remoteRegister () == -1) return -1;
#endif
Index: src/virterror.c
===================================================================
RCS file: /data/cvs/libvirt/src/virterror.c,v
retrieving revision 1.36
diff -u -p -r1.36 virterror.c
--- src/virterror.c 5 Feb 2008 19:27:37 -0000 1.36
+++ src/virterror.c 19 Feb 2008 18:50:57 -0000
@@ -296,6 +296,9 @@ virDefaultErrorFunc(virErrorPtr err)
case VIR_FROM_STATS_LINUX:
dom = "Linux Stats ";
break;
+ case VIR_FROM_LXC:
+ dom = "LXC ";
+ break;
}
if ((err->dom != NULL) && (err->code != VIR_ERR_INVALID_DOMAIN)) {
--
Best Regards,
Dave Leskovec
IBM Linux Technology Center
Open Virtualization