Again because of my generic VIR_ENUM_IMPL patch last week, I unwittingly caused
a regression in the storage_backend_logical driver.  Previously, if you
submitted logical pool XML that had no <source><format type='lvm2'/> string, it
would just default to VIR_STORAGE_POOL_LOGICAL_LVM2.  This would succeed just
fine and go on with life.  This is no longer the case, and now XML without the
format tag fails to define.  To maintain backwards compatibility with already
existing XML that expects this, add a compatibility wrapper to return
VIR_STORAGE_POOL_LOGICAL_LVM2 on an empty format tag.

Signed-off-by: Chris Lalancette <[EMAIL PROTECTED]>
diff -up ./src/storage_backend_logical.c.p2 ./src/storage_backend_logical.c
--- ./src/storage_backend_logical.c.p2	2008-10-21 14:53:16.000000000 +0200
+++ ./src/storage_backend_logical.c	2008-10-21 14:53:59.000000000 +0200
@@ -49,6 +49,19 @@ VIR_ENUM_IMPL(virStorageBackendLogicalPo
               VIR_STORAGE_POOL_LOGICAL_LAST,
               "unknown", "lvm2");
 
+static int virStorageBackendLogicalFormatFromStringWrap(const char *format)
+{
+    /* 
+     * Sigh.  For compatibility purposes, we need to return
+     * VIR_STORAGE_POOL_LOGICAL_LVM2 when we get a NULL format
+     */
+
+    if (format == NULL)
+        return VIR_STORAGE_POOL_LOGICAL_LVM2;
+
+    return virStorageBackendLogicalPoolTypeFromString(format);
+}
+
 static int
 virStorageBackendLogicalSetActive(virConnectPtr conn,
                                   virStoragePoolObjPtr pool,
@@ -616,7 +629,7 @@ virStorageBackend virStorageBackendLogic
     .poolOptions = {
         .flags = (VIR_STORAGE_BACKEND_POOL_SOURCE_NAME |
                   VIR_STORAGE_BACKEND_POOL_SOURCE_DEVICE),
-        .formatFromString = virStorageBackendLogicalPoolTypeFromString,
+        .formatFromString = virStorageBackendLogicalFormatFromStringWrap,
         .formatToString = virStorageBackendLogicalPoolTypeToString,
     },
 
--
Libvir-list mailing list
Libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to