[libvirt] [PATCH 1/2] (Updated & fixed) OpenNebula driver, libvirt-0.6.2

"Abel Míguez Rodríguez" amiguezr at pdi.ucm.es
Wed Apr 22 18:28:23 UTC 2009


> > domain) { break;
>          case VIR_FROM_VBOX:
>              dom = "VBOX ";
> +        case VIR_FROM_ONE:
> +            dom = "ONE ";
> >            break;
> >      }
> >      return(dom);
> 
> there is break missing here. will cause subtle errors if not failures.

You are right, a mistake when resolving conflicts. I checked for more mistakes that could be produced at "rebase to master" and I think everything is right.
By the way, this time the patch is attached.

thanks,

[PATCH 1/2]

diff --git a/configure.in b/configure.in
index dcacc7f..ab14303 100644
--- a/configure.in
+++ b/configure.in
@@ -186,6 +186,8 @@ AC_ARG_WITH([vbox],
 [  --with-vbox             add VirtualBox support (on)],[],[with_vbox=yes])
 AC_ARG_WITH([lxc],
 [  --with-lxc              add Linux Container support (on)],[],[with_lxc=yes])
+AC_ARG_WITH([one],
+[  --with-one              add ONE support (on)],[],[with_one=no])
 AC_ARG_WITH([test],
 [  --with-test             add test driver support (on)],[],[with_test=yes])
 AC_ARG_WITH([remote],
@@ -305,6 +307,11 @@ if test "$with_uml" = "yes" ; then
 fi
 AM_CONDITIONAL([WITH_UML], [test "$with_uml" = "yes"])
 
+if test "$with_one" = "yes" ; then
+    AC_DEFINE_UNQUOTED([WITH_ONE],1,[whether ONE driver is enabled])
+fi
+AM_CONDITIONAL([WITH_ONE],[test "$with_one" = "yes"])
+
 if test "$with_test" = "yes" ; then
     AC_DEFINE_UNQUOTED([WITH_TEST], 1, [whether Test driver is enabled])
 fi
@@ -406,6 +413,15 @@ dnl check for kvm headers
 dnl
 AC_CHECK_HEADERS([linux/kvm.h])
 
+dnl OpenNebula driver Compilation setting
+dnl
+
+if test "$with_one" = "yes" ; then
+ CFLAGS="$CFLAGS -I$ONE_LOCATION/include"
+ ONE_LIBS="-L/usr/local/lib -lxmlrpc_client++ -lxmlrpc -lxmlrpc_util -lxmlrpc_xmlparse -lxmlrpc_xmltok -lxmlrpc++ -lxmlrpc_client -L$ONE_LOCATION/lib -loneapi"
+ AC_SUBST([ONE_LIBS])
+fi
+
 dnl Need to test if pkg-config exists
 PKG_PROG_PKG_CONFIG
 
@@ -1372,6 +1388,7 @@ AC_MSG_NOTICE([     UML: $with_uml])
 AC_MSG_NOTICE([  OpenVZ: $with_openvz])
 AC_MSG_NOTICE([    VBox: $with_vbox])
 AC_MSG_NOTICE([     LXC: $with_lxc])
+AC_MSG_NOTICE([     ONE: $with_one])
 AC_MSG_NOTICE([    Test: $with_test])
 AC_MSG_NOTICE([  Remote: $with_remote])
 AC_MSG_NOTICE([ Network: $with_network])
diff --git a/include/libvirt/virterror.h b/include/libvirt/virterror.h
index faf3f61..abe54b2 100644
--- a/include/libvirt/virterror.h
+++ b/include/libvirt/virterror.h
@@ -63,6 +63,7 @@ typedef enum {
     VIR_FROM_XEN_INOTIFY, /* Error from xen inotify layer */
     VIR_FROM_SECURITY,  /* Error from security framework */
     VIR_FROM_VBOX,    /* Error from VirtualBox driver */
+    VIR_FROM_ONE,           /* Error from ONE driver */
 } virErrorDomain;
 
 
diff --git a/qemud/Makefile.am b/qemud/Makefile.am
index 924e8ad..9d7f61f 100644
--- a/qemud/Makefile.am
+++ b/qemud/Makefile.am
@@ -120,6 +120,10 @@ if WITH_UML
     libvirtd_LDADD += ../src/libvirt_driver_uml.la
 endif
 
+if WITH_ONE
+    libvirtd_LDADD += ../src/libvirt_driver_one.la
+endif
+
 if WITH_STORAGE_DIR
     libvirtd_LDADD += ../src/libvirt_driver_storage.la
 endif
diff --git a/qemud/qemud.c b/qemud/qemud.c
index 829a4bc..a069f38 100644
--- a/qemud/qemud.c
+++ b/qemud/qemud.c
@@ -75,6 +75,9 @@
 #ifdef WITH_UML
 #include "uml_driver.h"
 #endif
+#ifdef WITH_ONE
+#include "opennebula/one_driver.h"
+#endif
 #ifdef WITH_NETWORK
 #include "network_driver.h"
 #endif
@@ -841,6 +844,7 @@ static struct qemud_server *qemudInitialize(int sigread) {
     virDriverLoadModule("qemu");
     virDriverLoadModule("lxc");
     virDriverLoadModule("uml");
+    virDriverLoadModule("one");
 #else
 #ifdef WITH_NETWORK
     networkRegister();
@@ -861,6 +865,9 @@ static struct qemud_server *qemudInitialize(int sigread) {
 #ifdef WITH_UML
     umlRegister();
 #endif
+#ifdef WITH_ONE
+    oneRegister();
+#endif
 #endif
 
     virEventRegisterImpl(virEventAddHandleImpl,
diff --git a/src/Makefile.am b/src/Makefile.am
index fd692b4..17ae0e7 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -144,6 +144,12 @@ UML_DRIVER_SOURCES =                                         \
          uml_conf.c uml_conf.h                         \
          uml_driver.c uml_driver.h
 
+ONE_DRIVER_SOURCES =                                 \
+         ./opennebula/one_conf.c                 \
+         ./opennebula/one_conf.h                 \
+         ./opennebula/one_driver.c         \
+         ./opennebula/one_driver.h
+
 NETWORK_DRIVER_SOURCES =                                 \
          network_driver.h network_driver.c
 
@@ -337,6 +342,25 @@ endif
 libvirt_driver_uml_la_SOURCES = $(UML_DRIVER_SOURCES)
 endif
 
+if WITH_ONE
+if WITH_DRIVER_MODULES
+mod_LTLIBRARIES += libvirt_driver_one.la
+else
+noinst_LTLIBRARIES += libvirt_driver_one.la
+# Stateful, so linked to daemon instead
+#libvirt_la_LIBADD  += libvirt_driver_one.la
+endif
+libvirt_driver_one_la_LDFLAGS = $(ONE_LIBS)
+
+if WITH_DRIVER_MODULES
+libvirt_driver_one_la_LDFLAGS += -module -avoid-version
+endif
+libvirt_driver_one_la_SOURCES = $(ONE_DRIVER_SOURCES)
+endif
+
+
+
+
 if WITH_NETWORK
 if WITH_DRIVER_MODULES
 mod_LTLIBRARIES += libvirt_driver_network.la
@@ -429,6 +453,7 @@ EXTRA_DIST +=                                                 \
          $(QEMU_DRIVER_SOURCES)                         \
          $(LXC_DRIVER_SOURCES)                         \
          $(UML_DRIVER_SOURCES)                         \
+         $(ONE_DRIVER_SOURCES)                         \
          $(OPENVZ_DRIVER_SOURCES)                 \
          $(VBOX_DRIVER_SOURCES)                         \
          $(NETWORK_DRIVER_SOURCES)                 \
diff --git a/src/domain_conf.c b/src/domain_conf.c
index 648d9e9..06b9713 100644
--- a/src/domain_conf.c
+++ b/src/domain_conf.c
@@ -55,7 +55,8 @@ VIR_ENUM_IMPL(virDomainVirt, VIR_DOMAIN_VIRT_LAST,
               "test",
               "vmware",
               "hyperv",
-              "vbox")
+              "vbox",
+              "one")
 
 VIR_ENUM_IMPL(virDomainBoot, VIR_DOMAIN_BOOT_LAST,
               "fd",
diff --git a/src/domain_conf.h b/src/domain_conf.h
index f4eea6b..c91a245 100644
--- a/src/domain_conf.h
+++ b/src/domain_conf.h
@@ -49,6 +49,7 @@ enum virDomainVirtType {
     VIR_DOMAIN_VIRT_VMWARE,
     VIR_DOMAIN_VIRT_HYPERV,
     VIR_DOMAIN_VIRT_VBOX,
+    VIR_DOMAIN_VIRT_ONE,
 
     VIR_DOMAIN_VIRT_LAST,
 };
diff --git a/src/driver.h b/src/driver.h
index 39dc413..5685783 100644
--- a/src/driver.h
+++ b/src/driver.h
@@ -21,6 +21,7 @@ typedef enum {
     VIR_DRV_LXC = 6,
     VIR_DRV_UML = 7,
     VIR_DRV_VBOX = 8,
+    VIR_DRV_ONE = 9,
 } virDrvNo;
 
 
diff --git a/src/libvirt.c b/src/libvirt.c
index 95a861e..4b1610a 100644
--- a/src/libvirt.c
+++ b/src/libvirt.c
@@ -845,6 +845,10 @@ virGetVersion(unsigned long *libVer, const char *type,
         if (STRCASEEQ(type, "UML"))
             *typeVer = LIBVIR_VERSION_NUMBER;
 #endif
+#if WITH_ONE
+        if (STRCASEEQ(type, "ONE"))
+            *typeVer = LIBVIR_VERSION_NUMBER;
+#endif
 #if WITH_REMOTE
         if (STRCASEEQ(type, "Remote"))
             *typeVer = remoteVersion();
diff --git a/src/virterror.c b/src/virterror.c
index 2d34ed7..d4b429c 100644
--- a/src/virterror.c
+++ b/src/virterror.c
@@ -156,6 +156,9 @@ static const char *virErrorDomainName(virErrorDomain domain) {
             break;
         case VIR_FROM_VBOX:
             dom = "VBOX ";
+           break;
+        case VIR_FROM_ONE:
+            dom = "ONE ";
             break;
     }   
     return(dom);



-------------- next part --------------
A non-text attachment was scrubbed...
Name: one_libvirt-0.6.2-git-9e9527-patch
Type: application/octet-stream
Size: 6553 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20090422/a74bdb72/attachment-0001.obj>


More information about the libvir-list mailing list