#include "qemu_domain.h"
#include "qemu_firmware.h"
#include "qemu_namespace.h"
+#include "qemu_saveimage.h"
#include "qemu_security.h"
#include "viruuid.h"
#include "virconf.h"
g_free(cfg->slirpHelperName);
g_free(cfg->dbusDaemonName);
- g_free(cfg->saveImageFormat);
- g_free(cfg->dumpImageFormat);
- g_free(cfg->snapshotImageFormat);
g_free(cfg->autoDumpPath);
g_strfreev(cfg->securityDriverNames);
virQEMUDriverConfigLoadSaveEntry(virQEMUDriverConfig *cfg,
virConf *conf)
{
- if (virConfGetValueString(conf, "save_image_format", &cfg->saveImageFormat) < 0)
+ g_autofree char *savestr = NULL;
+ g_autofree char *dumpstr = NULL;
+ g_autofree char *snapstr = NULL;
+
+ if (virConfGetValueString(conf, "save_image_format", &savestr) < 0)
return -1;
- if (virConfGetValueString(conf, "dump_image_format", &cfg->dumpImageFormat) < 0)
+ if (savestr && (cfg->saveImageFormat = qemuSaveFormatTypeFromString(savestr)) < 0) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("Invalid save_image_format '%1$s'"),
+ savestr);
return -1;
- if (virConfGetValueString(conf, "snapshot_image_format", &cfg->snapshotImageFormat) < 0)
+ }
+
+ if (virConfGetValueString(conf, "dump_image_format", &dumpstr) < 0)
return -1;
+ if (dumpstr && (cfg->dumpImageFormat = qemuSaveFormatTypeFromString(dumpstr)) < 0) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("Invalid dump_image_format '%1$s'"),
+ dumpstr);
+ return -1;
+ }
+
+ if (virConfGetValueString(conf, "snapshot_image_format", &snapstr) < 0)
+ return -1;
+ if (snapstr && (cfg->snapshotImageFormat = qemuSaveFormatTypeFromString(snapstr)) < 0) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("Invalid snapshot_image_format '%1$s'"),
+ snapstr);
+ return -1;
+ }
+
if (virConfGetValueString(conf, "auto_dump_path", &cfg->autoDumpPath) < 0)
return -1;
if (virConfGetValueBool(conf, "auto_dump_bypass_cache", &cfg->autoDumpBypassCache) < 0)
g_autoptr(virQEMUDriverConfig) cfg = NULL;
g_autoptr(virCommand) compressor = NULL;
g_autofree char *path = NULL;
- int format = QEMU_SAVE_FORMAT_RAW;
if (virDomainObjCheckActive(vm) < 0)
return -1;
}
cfg = virQEMUDriverGetConfig(driver);
- if (cfg->saveImageFormat &&
- (format = qemuSaveFormatTypeFromString(cfg->saveImageFormat)) < 0)
- return -1;
-
- if (qemuSaveImageGetCompressionProgram(format, &compressor, "save") < 0)
+ if (qemuSaveImageGetCompressionProgram(cfg->saveImageFormat, &compressor, "save") < 0)
return -1;
path = qemuDomainManagedSavePath(driver, vm);
VIR_INFO("Saving state of domain '%s' to '%s'", vm->def->name, path);
- if (qemuDomainSaveInternal(driver, vm, path, format,
+ if (qemuDomainSaveInternal(driver, vm, path, cfg->saveImageFormat,
compressor, dxml, flags) < 0)
return -1;
unsigned int flags)
{
virQEMUDriver *driver = dom->conn->privateData;
- 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 (cfg->saveImageFormat &&
- (format = qemuSaveFormatTypeFromString(cfg->saveImageFormat)) < 0)
- goto cleanup;
-
- if (qemuSaveImageGetCompressionProgram(format, &compressor, "save") < 0)
+ if (qemuSaveImageGetCompressionProgram(cfg->saveImageFormat, &compressor, "save") < 0)
goto cleanup;
if (!(vm = qemuDomainObjFromDomain(dom)))
if (virDomainObjCheckActive(vm) < 0)
goto cleanup;
- ret = qemuDomainSaveInternal(driver, vm, path, format,
+ ret = qemuDomainSaveInternal(driver, vm, path, cfg->saveImageFormat,
compressor, dxml, flags);
cleanup:
g_autoptr(virCommand) compressor = NULL;
const char *to = NULL;
const char *dxml = NULL;
- int format = QEMU_SAVE_FORMAT_RAW;
int ret = -1;
virCheckFlags(VIR_DOMAIN_SAVE_BYPASS_CACHE |
}
cfg = virQEMUDriverGetConfig(driver);
- if (cfg->saveImageFormat &&
- (format = qemuSaveFormatTypeFromString(cfg->saveImageFormat)) < 0)
- goto cleanup;
-
- if (qemuSaveImageGetCompressionProgram(format, &compressor, "save") < 0)
+ if (qemuSaveImageGetCompressionProgram(cfg->saveImageFormat, &compressor, "save") < 0)
goto cleanup;
if (virDomainObjCheckActive(vm) < 0)
goto cleanup;
- ret = qemuDomainSaveInternal(driver, vm, to, format,
+ ret = qemuDomainSaveInternal(driver, vm, to, cfg->saveImageFormat,
compressor, dxml, flags);
cleanup:
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(format, &compressor, "dump") < 0)
+ if (qemuSaveImageGetCompressionProgram(cfg->dumpImageFormat, &compressor, "dump") < 0)
goto cleanup;
/* Create an empty file with appropriate ownership. */
bool memory_existing = false;
bool thaw = false;
bool pmsuspended = false;
- 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 (cfg->snapshotImageFormat &&
- (format = qemuSaveFormatTypeFromString(cfg->snapshotImageFormat)) < 0)
- goto cleanup;
-
- if (qemuSaveImageGetCompressionProgram(format, &compressor,
- "snapshot") < 0)
+ if (qemuSaveImageGetCompressionProgram(cfg->snapshotImageFormat,
+ &compressor, "snapshot") < 0)
goto cleanup;
if (!(xml = qemuDomainDefFormatLive(driver, priv->qemuCaps,
if (!(data = virQEMUSaveDataNew(xml,
(qemuDomainSaveCookie *) snapdef->cookie,
- resume, format, driver->xmlopt)))
+ resume, cfg->snapshotImageFormat, driver->xmlopt)))
goto cleanup;
xml = NULL;