]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virStoragePoolObjListAdd: Turn boolean arg into flags
authorMichal Privoznik <mprivozn@redhat.com>
Fri, 24 May 2019 14:35:42 +0000 (16:35 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Thu, 22 Aug 2019 15:09:05 +0000 (17:09 +0200)
There will be more boolean information that we want to pass to
this function. Instead of having them in separate arguments per
each one, use @flags.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/conf/virstorageobj.c
src/conf/virstorageobj.h
src/storage/storage_driver.c
src/test/test_driver.c

index cb9bac08f1c93892cd15fe5fabfcd2283bfc6e26..7c86ec529fa35bddade116e7222fe1328f2ab198 100644 (file)
@@ -1509,17 +1509,20 @@ virStoragePoolObjSourceFindDuplicate(virStoragePoolObjListPtr pools,
  * virStoragePoolObjListAdd:
  * @pools: Storage Pool object list pointer
  * @def: Storage pool definition to add or update
- * @check_active: If true, ensure that pool is not active
+ * @flags: bitwise-OR of VIR_STORAGE_POOL_OBJ_LIST_* flags
  *
  * Lookup the @def to see if it already exists in the @pools in order
  * to either update or add if it does not exist.
  *
+ * If VIR_STORAGE_POOL_OBJ_LIST_ADD_CHECK_LIVE is set in @flags
+ * then this will fail if the pool exists and is active.
+ *
  * Returns locked and reffed object pointer or NULL on error
  */
 virStoragePoolObjPtr
 virStoragePoolObjListAdd(virStoragePoolObjListPtr pools,
                          virStoragePoolDefPtr def,
-                         bool check_active)
+                         unsigned int flags)
 {
     virStoragePoolObjPtr obj = NULL;
     char uuidstr[VIR_UUID_STRING_BUFLEN];
@@ -1530,7 +1533,9 @@ virStoragePoolObjListAdd(virStoragePoolObjListPtr pools,
     if (virStoragePoolObjSourceFindDuplicate(pools, def) < 0)
         goto error;
 
-    rc = virStoragePoolObjIsDuplicate(pools, def, check_active, &obj);
+    rc = virStoragePoolObjIsDuplicate(pools, def,
+                                      !!(flags & VIR_STORAGE_POOL_OBJ_LIST_ADD_CHECK_LIVE),
+                                      &obj);
 
     if (rc < 0)
         goto error;
@@ -1590,7 +1595,7 @@ virStoragePoolObjLoad(virStoragePoolObjListPtr pools,
         return NULL;
     }
 
-    if (!(obj = virStoragePoolObjListAdd(pools, def, false)))
+    if (!(obj = virStoragePoolObjListAdd(pools, def, 0)))
         return NULL;
     def = NULL;
 
@@ -1651,7 +1656,8 @@ virStoragePoolObjLoadState(virStoragePoolObjListPtr pools,
     }
 
     /* create the object */
-    if (!(obj = virStoragePoolObjListAdd(pools, def, true)))
+    if (!(obj = virStoragePoolObjListAdd(pools, def,
+                                         VIR_STORAGE_POOL_OBJ_LIST_ADD_CHECK_LIVE)))
         goto cleanup;
     def = NULL;
 
index 9738ee57e6539fe7b1ad7c784d7ed498a42771ef..ef4a6bf4087570dc187f52447a32a18cae5a89f1 100644 (file)
@@ -194,10 +194,14 @@ virStoragePoolObjVolumeListExport(virConnectPtr conn,
                                   virStorageVolPtr **vols,
                                   virStoragePoolVolumeACLFilter filter);
 
+typedef enum {
+    VIR_STORAGE_POOL_OBJ_LIST_ADD_CHECK_LIVE = (1 << 1),
+} virStoragePoolObjListFlags;
+
 virStoragePoolObjPtr
 virStoragePoolObjListAdd(virStoragePoolObjListPtr pools,
                          virStoragePoolDefPtr def,
-                         bool check_active);
+                         unsigned int flags);
 
 int
 virStoragePoolObjSaveDef(virStorageDriverStatePtr driver,
index a62df0f091bfa22e9dcc9828e2bcc7725de8546e..f2ecabc70f576f99f0e4aa5420389ae17a856544 100644 (file)
@@ -754,7 +754,8 @@ storagePoolCreateXML(virConnectPtr conn,
     if ((backend = virStorageBackendForType(newDef->type)) == NULL)
         goto cleanup;
 
-    if (!(obj = virStoragePoolObjListAdd(driver->pools, newDef, true)))
+    if (!(obj = virStoragePoolObjListAdd(driver->pools, newDef,
+                                         VIR_STORAGE_POOL_OBJ_LIST_ADD_CHECK_LIVE)))
         goto cleanup;
     newDef = NULL;
     def = virStoragePoolObjGetDef(obj);
@@ -829,7 +830,7 @@ storagePoolDefineXML(virConnectPtr conn,
     if (virStorageBackendForType(newDef->type) == NULL)
         goto cleanup;
 
-    if (!(obj = virStoragePoolObjListAdd(driver->pools, newDef, false)))
+    if (!(obj = virStoragePoolObjListAdd(driver->pools, newDef, 0)))
         goto cleanup;
     newDef = virStoragePoolObjGetNewDef(obj);
     def = virStoragePoolObjGetDef(obj);
index edd1e1ff40f4bda0f960586f4744e74d9dae69ec..9df7840390175e376c36f93f3d45ce1640a61a39 100644 (file)
@@ -1140,7 +1140,7 @@ testParseStorage(testDriverPtr privconn,
         if (!def)
             return -1;
 
-        if (!(obj = virStoragePoolObjListAdd(privconn->pools, def, false))) {
+        if (!(obj = virStoragePoolObjListAdd(privconn->pools, def, 0))) {
             virStoragePoolDefFree(def);
             return -1;
         }
@@ -6436,7 +6436,8 @@ testStoragePoolCreateXML(virConnectPtr conn,
     if (!(newDef = virStoragePoolDefParseString(xml)))
         goto cleanup;
 
-    if (!(obj = virStoragePoolObjListAdd(privconn->pools, newDef, true)))
+    if (!(obj = virStoragePoolObjListAdd(privconn->pools, newDef,
+                                         VIR_STORAGE_POOL_OBJ_LIST_ADD_CHECK_LIVE)))
         goto cleanup;
     newDef = NULL;
     def = virStoragePoolObjGetDef(obj);
@@ -6502,7 +6503,7 @@ testStoragePoolDefineXML(virConnectPtr conn,
     newDef->allocation = defaultPoolAlloc;
     newDef->available = defaultPoolCap - defaultPoolAlloc;
 
-    if (!(obj = virStoragePoolObjListAdd(privconn->pools, newDef, false)))
+    if (!(obj = virStoragePoolObjListAdd(privconn->pools, newDef, 0)))
         goto cleanup;
     newDef = NULL;
     def = virStoragePoolObjGetDef(obj);