]> xenbits.xensource.com Git - libvirt.git/commitdiff
storage: drop the plumbing needed for kvm-img/qcow-create
authorCole Robinson <crobinso@redhat.com>
Fri, 15 Apr 2016 21:07:02 +0000 (17:07 -0400)
committerCole Robinson <crobinso@redhat.com>
Wed, 20 Apr 2016 12:59:57 +0000 (08:59 -0400)
Remove all the plumbing needed for the different qcow-create/kvm-img
non-raw file creation.

We can drop the error messages because CreateQemuImg will thrown an
error for us but with slightly less fidelity (unable to find qemu-img),
which I think is acceptable given the unlikeliness of that error in
practice.

src/storage/storage_backend.c
src/storage/storage_backend.h
src/storage/storage_backend_fs.c

index e4b9b399e4854c94fe7be1872923abe833423ada..992cce5a4e94c329c403b4fe7d14ae82ae061de8 100644 (file)
@@ -151,10 +151,6 @@ static virStorageFileBackendPtr fileBackends[] = {
 };
 
 
-enum {
-    TOOL_QEMU_IMG,
-};
-
 #define READ_BLOCK_SIZE_DEFAULT  (1024 * 1024)
 #define WRITE_BLOCK_SIZE_DEFAULT (4 * 1024)
 
@@ -1219,7 +1215,7 @@ virStorageBackendCreateQemuImgCmdFromVol(virConnectPtr conn,
     return cmd;
 }
 
-static int
+int
 virStorageBackendCreateQemuImg(virConnectPtr conn,
                                virStoragePoolObjPtr pool,
                                virStorageVolDefPtr vol,
@@ -1235,8 +1231,9 @@ virStorageBackendCreateQemuImg(virConnectPtr conn,
 
     create_tool = virFindFileInPath("qemu-img");
     if (!create_tool) {
-        virReportError(VIR_ERR_INTERNAL_ERROR,
-                       "%s", _("unable to find qemu-img"));
+        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
+                       _("creation of non-raw file images is "
+                         "not supported without qemu-img."));
         return -1;
     }
 
@@ -1257,44 +1254,10 @@ virStorageBackendCreateQemuImg(virConnectPtr conn,
     return ret;
 }
 
-virStorageBackendBuildVolFrom
-virStorageBackendFSImageToolTypeToFunc(int tool_type)
-{
-    switch (tool_type) {
-    case TOOL_QEMU_IMG:
-        return virStorageBackendCreateQemuImg;
-    default:
-        virReportError(VIR_ERR_INTERNAL_ERROR,
-                       _("Unknown file create tool type '%d'."),
-                       tool_type);
-    }
-
-    return NULL;
-}
-
-int
-virStorageBackendFindFSImageTool(char **tool)
-{
-    int tool_type = -1;
-    char *tmp = NULL;
-
-    if ((tmp = virFindFileInPath("qemu-img")) != NULL)
-        tool_type = TOOL_QEMU_IMG;
-
-    if (tool)
-        *tool = tmp;
-    else
-        VIR_FREE(tmp);
-
-    return tool_type;
-}
-
 virStorageBackendBuildVolFrom
 virStorageBackendGetBuildVolFromFunction(virStorageVolDefPtr vol,
                                          virStorageVolDefPtr inputvol)
 {
-    int tool_type;
-
     if (!inputvol)
         return NULL;
 
@@ -1305,15 +1268,7 @@ virStorageBackendGetBuildVolFromFunction(virStorageVolDefPtr vol,
          vol->target.format != VIR_STORAGE_FILE_RAW) ||
         (inputvol->type == VIR_STORAGE_VOL_FILE &&
          inputvol->target.format != VIR_STORAGE_FILE_RAW)) {
-
-        if ((tool_type = virStorageBackendFindFSImageTool(NULL)) < 0) {
-            virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
-                           _("creation of non-raw file images is "
-                             "not supported without qemu-img."));
-            return NULL;
-        }
-
-        return virStorageBackendFSImageToolTypeToFunc(tool_type);
+        return virStorageBackendCreateQemuImg;
     }
 
     if (vol->type == VIR_STORAGE_VOL_PLOOP)
index a1e39c5b9ac8358b0924f29bdf7c4fdb4112dd60..5bc622cc5f6d87a7cc59f12b99268611e16582e5 100644 (file)
@@ -109,6 +109,12 @@ int virStorageBackendCreateRaw(virConnectPtr conn,
                                virStorageVolDefPtr inputvol,
                                unsigned int flags);
 
+int virStorageBackendCreateQemuImg(virConnectPtr conn,
+                                   virStoragePoolObjPtr pool,
+                                   virStorageVolDefPtr vol,
+                                   virStorageVolDefPtr inputvol,
+                                   unsigned int flags);
+
 int virStorageBackendCreatePloop(virConnectPtr conn,
                                  virStoragePoolObjPtr pool,
                                  virStorageVolDefPtr vol,
@@ -126,9 +132,6 @@ bool virStorageBackendIsPloopDir(char *path);
 virStorageBackendBuildVolFrom
 virStorageBackendGetBuildVolFromFunction(virStorageVolDefPtr vol,
                                          virStorageVolDefPtr inputvol);
-int virStorageBackendFindFSImageTool(char **tool);
-virStorageBackendBuildVolFrom
-virStorageBackendFSImageToolTypeToFunc(int tool_type);
 
 int virStorageBackendFindGlusterPoolSources(const char *host,
                                             int pooltype,
index 47d0f5427da0e55d8e44edab24219329110482b7..02a129e95b33861f2c59305b02e608c68d28bbb4 100644 (file)
@@ -1170,7 +1170,6 @@ _virStorageBackendFileSystemVolBuild(virConnectPtr conn,
                                      unsigned int flags)
 {
     virStorageBackendBuildVolFrom create_func;
-    int tool_type;
 
     if (inputvol) {
         if (vol->target.encryption != NULL) {
@@ -1190,16 +1189,8 @@ _virStorageBackendFileSystemVolBuild(virConnectPtr conn,
         create_func = createFileDir;
     } else if (vol->target.format == VIR_STORAGE_FILE_PLOOP) {
         create_func = virStorageBackendCreatePloop;
-    } else if ((tool_type = virStorageBackendFindFSImageTool(NULL)) != -1) {
-        create_func = virStorageBackendFSImageToolTypeToFunc(tool_type);
-
-        if (!create_func)
-            return -1;
     } else {
-        virReportError(VIR_ERR_INTERNAL_ERROR,
-                       "%s", _("creation of non-raw images "
-                               "is not supported without qemu-img"));
-        return -1;
+        create_func = virStorageBackendCreateQemuImg;
     }
 
     if (create_func(conn, pool, vol, inputvol, flags) < 0)