g_autoptr(virQEMUDriverConfig) cfg = NULL;
g_autoptr(virCommand) compressor = NULL;
g_autofree char *path = NULL;
- int format;
+ int format = QEMU_SAVE_FORMAT_RAW;
if (virDomainObjCheckActive(vm) < 0)
return -1;
}
cfg = virQEMUDriverGetConfig(driver);
- if ((format = qemuSaveImageGetCompressionProgram(cfg->saveImageFormat,
- &compressor, "save")) < 0)
+ if (cfg->saveImageFormat &&
+ (format = qemuSaveFormatTypeFromString(cfg->saveImageFormat)) < 0)
+ return -1;
+
+ if (qemuSaveImageGetCompressionProgram(format, &compressor, "save") < 0)
return -1;
path = qemuDomainManagedSavePath(driver, vm);
unsigned int flags)
{
virQEMUDriver *driver = dom->conn->privateData;
- int format;
+ int format = QEMU_SAVE_FORMAT_RAW;
g_autoptr(virCommand) compressor = NULL;
int ret = -1;
virDomainObj *vm = NULL;
VIR_DOMAIN_SAVE_PAUSED, -1);
cfg = virQEMUDriverGetConfig(driver);
- if ((format = qemuSaveImageGetCompressionProgram(cfg->saveImageFormat,
- &compressor, "save")) < 0)
+ if (cfg->saveImageFormat &&
+ (format = qemuSaveFormatTypeFromString(cfg->saveImageFormat)) < 0)
+ goto cleanup;
+
+ if (qemuSaveImageGetCompressionProgram(format, &compressor, "save") < 0)
goto cleanup;
if (!(vm = qemuDomainObjFromDomain(dom)))
g_autoptr(virCommand) compressor = NULL;
const char *to = NULL;
const char *dxml = NULL;
- int format;
+ int format = QEMU_SAVE_FORMAT_RAW;
int ret = -1;
virCheckFlags(VIR_DOMAIN_SAVE_BYPASS_CACHE |
}
cfg = virQEMUDriverGetConfig(driver);
- if ((format = qemuSaveImageGetCompressionProgram(cfg->saveImageFormat,
- &compressor, "save")) < 0)
+ if (cfg->saveImageFormat &&
+ (format = qemuSaveFormatTypeFromString(cfg->saveImageFormat)) < 0)
+ goto cleanup;
+
+ if (qemuSaveImageGetCompressionProgram(format, &compressor, "save") < 0)
goto cleanup;
if (virDomainObjCheckActive(vm) < 0)
const char *memory_dump_format = NULL;
g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver);
g_autoptr(virCommand) compressor = NULL;
+ int format = QEMU_SAVE_FORMAT_RAW;
+
+ if (cfg->dumpImageFormat) {
+ if ((format = qemuSaveFormatTypeFromString(cfg->dumpImageFormat)) < 0)
+ goto cleanup;
+ }
- if (qemuSaveImageGetCompressionProgram(cfg->dumpImageFormat,
- &compressor, "dump") < 0)
+ if (qemuSaveImageGetCompressionProgram(format, &compressor, "dump") < 0)
goto cleanup;
/* Create an empty file with appropriate ownership. */
/* qemuSaveImageGetCompressionProgram:
- * @imageFormat: String representation from qemu.conf of the image format
- * being used (dump, save, or snapshot).
+ * @format: Integer representation of the image format being used
+ * (dump, save, or snapshot).
* @compresspath: Pointer to a character string to store the fully qualified
* path from virFindFileInPath.
* @styleFormat: String representing the style of format (dump, save, snapshot)
*
- * On success, returns an integer representation of the save image format to be
- * used for a particular style (e.g. dump, save, or snapshot). Returns -1 on
- * failure.
+ * Returns -1 on failure, 0 on success.
*/
int
-qemuSaveImageGetCompressionProgram(const char *imageFormat,
+qemuSaveImageGetCompressionProgram(int format,
virCommand **compressor,
const char *styleFormat)
{
- int ret;
+ const char *imageFormat = qemuSaveFormatTypeToString(format);
const char *prog;
*compressor = NULL;
- if (!imageFormat)
- return QEMU_SAVE_FORMAT_RAW;
-
- if ((ret = qemuSaveFormatTypeFromString(imageFormat)) < 0) {
- virReportError(VIR_ERR_OPERATION_FAILED,
- _("Invalid %1$s image format specified in configuration file"),
- styleFormat);
- return -1;
- }
-
- if (ret == QEMU_SAVE_FORMAT_RAW)
- return QEMU_SAVE_FORMAT_RAW;
+ if (format == QEMU_SAVE_FORMAT_RAW)
+ return 0;
if (!(prog = virFindFileInPath(imageFormat))) {
virReportError(VIR_ERR_OPERATION_FAILED,
*compressor = virCommandNew(prog);
virCommandAddArg(*compressor, "-c");
- if (ret == QEMU_SAVE_FORMAT_XZ)
+ if (format == QEMU_SAVE_FORMAT_XZ)
virCommandAddArg(*compressor, "-3");
- return ret;
+ return 0;
}
ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(4);
int
-qemuSaveImageGetCompressionProgram(const char *imageFormat,
+qemuSaveImageGetCompressionProgram(int format,
virCommand **compressor,
const char *styleFormat)
ATTRIBUTE_NONNULL(2);
bool memory_existing = false;
bool thaw = false;
bool pmsuspended = false;
- int format;
+ int format = QEMU_SAVE_FORMAT_RAW;
g_autoptr(virCommand) compressor = NULL;
virQEMUSaveData *data = NULL;
g_autoptr(GHashTable) blockNamedNodeData = NULL;
JOB_MASK(VIR_JOB_SUSPEND) |
JOB_MASK(VIR_JOB_MIGRATION_OP)));
- if ((format = qemuSaveImageGetCompressionProgram(cfg->snapshotImageFormat,
- &compressor,
- "snapshot")) < 0)
+ if (cfg->snapshotImageFormat &&
+ (format = qemuSaveFormatTypeFromString(cfg->snapshotImageFormat)) < 0)
+ goto cleanup;
+
+ if (qemuSaveImageGetCompressionProgram(format, &compressor,
+ "snapshot") < 0)
goto cleanup;
if (!(xml = qemuDomainDefFormatLive(driver, priv->qemuCaps,