On 04/15/2016 05:21 PM, Cole Robinson wrote: > 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 | 50 ++-------------------------------------- > src/storage/storage_backend.h | 9 +++++--- > src/storage/storage_backend_fs.c | 11 +-------- > 3 files changed, 9 insertions(+), 61 deletions(-) > > diff --git a/src/storage/storage_backend.c b/src/storage/storage_backend.c > index e4b9b39..a71b838 100644 > --- a/src/storage/storage_backend.c > +++ b/src/storage/storage_backend.c > @@ -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, > @@ -1258,43 +1254,9 @@ virStorageBackendCreateQemuImg(virConnectPtr conn, Suggestion-only... In this function, there's the following: create_tool = virFindFileInPath("qemu-img"); if (!create_tool) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("unable to find qemu-img")); return -1; } Which is a perfectly reasonable error message; however, perhaps the one from virStorageBackendGetBuildVolFromFunction that gets removed could be more descriptive, that is: virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("creation of non-raw file images is " "not supported without qemu-img.")); John > } > > 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 +1267,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) > diff --git a/src/storage/storage_backend.h b/src/storage/storage_backend.h > index a1e39c5..5bc622c 100644 > --- a/src/storage/storage_backend.h > +++ b/src/storage/storage_backend.h > @@ -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, > diff --git a/src/storage/storage_backend_fs.c b/src/storage/storage_backend_fs.c > index 47d0f54..02a129e 100644 > --- a/src/storage/storage_backend_fs.c > +++ b/src/storage/storage_backend_fs.c > @@ -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) > -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list