mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-21 22:03:49 +03:00
storage: drop the plumbing needed for kvm-img/qcow-create
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.
This commit is contained in:
parent
487d211d20
commit
272c622475
@ -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)
|
||||
|
@ -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,
|
||||
|
@ -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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user