]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
storage: Introduce virStoragePoolObjNew
authorJohn Ferlan <jferlan@redhat.com>
Mon, 8 May 2017 20:02:36 +0000 (16:02 -0400)
committerJohn Ferlan <jferlan@redhat.com>
Tue, 19 Sep 2017 12:28:38 +0000 (08:28 -0400)
Create/use a helper to perform object allocation.

Adjust storagevolxml2argvtest.c in order to use the allocator and
setting of the obj->def.

Signed-off-by: John Ferlan <jferlan@redhat.com>
src/conf/virstorageobj.c
src/conf/virstorageobj.h
src/libvirt_private.syms
tests/Makefile.am
tests/storagevolxml2argvtest.c

index ebda9fe6eb38f3fa54c83554bc194eb243bbff07..eb7664cdd1f09ebd3a97ae8cdea24d0c00030834 100644 (file)
 VIR_LOG_INIT("conf.virstorageobj");
 
 
+virStoragePoolObjPtr
+virStoragePoolObjNew(void)
+{
+    virStoragePoolObjPtr obj;
+
+    if (VIR_ALLOC(obj) < 0)
+        return NULL;
+
+    if (virMutexInit(&obj->lock) < 0) {
+        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
+                       _("cannot initialize mutex"));
+        VIR_FREE(obj);
+        return NULL;
+    }
+    virStoragePoolObjLock(obj);
+    obj->active = 0;
+    return obj;
+}
+
+
 virStoragePoolDefPtr
 virStoragePoolObjGetDef(virStoragePoolObjPtr obj)
 {
@@ -421,17 +441,8 @@ virStoragePoolObjAssignDef(virStoragePoolObjListPtr pools,
         return obj;
     }
 
-    if (VIR_ALLOC(obj) < 0)
-        return NULL;
-
-    if (virMutexInit(&obj->lock) < 0) {
-        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
-                       _("cannot initialize mutex"));
-        VIR_FREE(obj);
+    if (!(obj = virStoragePoolObjNew()))
         return NULL;
-    }
-    virStoragePoolObjLock(obj);
-    obj->active = 0;
 
     if (VIR_APPEND_ELEMENT_COPY(pools->objs, pools->count, obj) < 0) {
         virStoragePoolObjUnlock(obj);
index a5ed8f8387bafd534d9f24765ad1ac2a6b9a9109..401c4d5125b2efbc0d836b2a35f3d12d6b93c482 100644 (file)
@@ -70,6 +70,9 @@ typedef bool
 (*virStoragePoolObjListFilter)(virConnectPtr conn,
                                virStoragePoolDefPtr def);
 
+virStoragePoolObjPtr
+virStoragePoolObjNew(void);
+
 virStoragePoolDefPtr
 virStoragePoolObjGetDef(virStoragePoolObjPtr obj);
 
index 5814920d40253988b23afd27f42340713c2adb6b..80b3784558423799f95e9f0467253527a2fc3b54 100644 (file)
@@ -1075,6 +1075,7 @@ virStoragePoolObjListFree;
 virStoragePoolObjLoadAllConfigs;
 virStoragePoolObjLoadAllState;
 virStoragePoolObjLock;
+virStoragePoolObjNew;
 virStoragePoolObjNumOfStoragePools;
 virStoragePoolObjNumOfVolumes;
 virStoragePoolObjRemove;
index 1f8c4cd426d38cb9faeadc0403c66866171e9f55..813888575c7fd1e84261e05ccd0aff15037c54ed 100644 (file)
@@ -885,7 +885,10 @@ storagevolxml2argvtest_SOURCES = \
     testutils.c testutils.h
 storagevolxml2argvtest_LDADD = \
        $(LIBXML_LIBS) \
-       ../src/libvirt_driver_storage_impl.la $(LDADDS)
+       ../src/libvirt_driver_storage_impl.la \
+       ../src/libvirt_conf.la \
+       ../src/libvirt_util.la \
+       $(LDADDS)
 
 else ! WITH_STORAGE
 EXTRA_DIST += storagevolxml2argvtest.c
index 9e432045fefa5f64ff5a4958acb2f88f0c8c629f..1b3003216dc7cba3afc5391d9c414c5e5c46e2d0 100644 (file)
@@ -50,18 +50,21 @@ testCompareXMLToArgvFiles(bool shouldFail,
     virConnectPtr conn;
 
     virStorageVolDefPtr vol = NULL, inputvol = NULL;
-    virStoragePoolDefPtr pool = NULL;
+    virStoragePoolDefPtr def = NULL;
     virStoragePoolDefPtr inputpool = NULL;
-    virStoragePoolObj poolobj = {.def = NULL };
-
+    virStoragePoolObjPtr obj = NULL;
 
     if (!(conn = virGetConnect()))
         goto cleanup;
 
-    if (!(pool = virStoragePoolDefParseFile(poolxml)))
+    if (!(def = virStoragePoolDefParseFile(poolxml)))
         goto cleanup;
 
-    poolobj.def = pool;
+    if (!(obj = virStoragePoolObjNew())) {
+        virStoragePoolDefFree(def);
+        goto cleanup;
+    }
+    virStoragePoolObjSetDef(obj, def);
 
     if (inputpoolxml) {
         if (!(inputpool = virStoragePoolDefParseFile(inputpoolxml)))
@@ -71,17 +74,17 @@ testCompareXMLToArgvFiles(bool shouldFail,
     if (inputvolxml)
         parse_flags |= VIR_VOL_XML_PARSE_NO_CAPACITY;
 
-    if (!(vol = virStorageVolDefParseFile(pool, volxml, parse_flags)))
+    if (!(vol = virStorageVolDefParseFile(def, volxml, parse_flags)))
         goto cleanup;
 
     if (inputvolxml &&
         !(inputvol = virStorageVolDefParseFile(inputpool, inputvolxml, 0)))
         goto cleanup;
 
-    testSetVolumeType(vol, pool);
+    testSetVolumeType(vol, def);
     testSetVolumeType(inputvol, inputpool);
 
-    cmd = virStorageBackendCreateQemuImgCmdFromVol(conn, &poolobj, vol,
+    cmd = virStorageBackendCreateQemuImgCmdFromVol(conn, obj, vol,
                                                    inputvol, flags,
                                                    create_tool, imgformat,
                                                    NULL);
@@ -102,12 +105,13 @@ testCompareXMLToArgvFiles(bool shouldFail,
     ret = 0;
 
  cleanup:
-    virStoragePoolDefFree(pool);
     virStoragePoolDefFree(inputpool);
     virStorageVolDefFree(vol);
     virStorageVolDefFree(inputvol);
     virCommandFree(cmd);
     VIR_FREE(actualCmdline);
+    virStoragePoolObjUnlock(obj);
+    virStoragePoolObjFree(obj);
     virObjectUnref(conn);
     return ret;
 }