
On Fri, Feb 14, 2025 at 08:03:10PM -0700, Jim Fehlig via Devel wrote:
Add support for the 'image_format' typed parameter in virDomainSaveParams. The parameter overrides the 'save_image_format' setting in qemu.conf.
Signed-off-by: Jim Fehlig <jfehlig@suse.com> --- src/qemu/qemu_driver.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index a868cca72c..41f547de19 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -2821,6 +2821,7 @@ qemuDomainSaveParams(virDomainPtr dom, g_autoptr(virCommand) compressor = NULL; const char *to = NULL; const char *dxml = NULL; + const char *formatstr = NULL; int format = QEMU_SAVE_FORMAT_RAW; int ret = -1;
@@ -2833,6 +2834,8 @@ qemuDomainSaveParams(virDomainPtr dom, VIR_TYPED_PARAM_STRING, VIR_DOMAIN_SAVE_PARAM_DXML, VIR_TYPED_PARAM_STRING, + VIR_DOMAIN_SAVE_PARAM_IMAGE_FORMAT, + VIR_TYPED_PARAM_STRING, NULL) < 0) return -1;
@@ -2842,6 +2845,9 @@ qemuDomainSaveParams(virDomainPtr dom, if (virTypedParamsGetString(params, nparams, VIR_DOMAIN_SAVE_PARAM_DXML, &dxml) < 0) return -1; + if (virTypedParamsGetString(params, nparams, + VIR_DOMAIN_SAVE_PARAM_IMAGE_FORMAT, &formatstr) < 0) + return -1;
if (!(vm = qemuDomainObjFromDomain(dom))) goto cleanup; @@ -2855,8 +2861,10 @@ qemuDomainSaveParams(virDomainPtr dom, }
cfg = virQEMUDriverGetConfig(driver); - if (cfg->saveImageFormat && - (format = qemuSaveFormatTypeFromString(cfg->saveImageFormat)) < 0) + if (formatstr == NULL) + formatstr = cfg->saveImageFormat; + + if (formatstr && (format = qemuSaveFormatTypeFromString(formatstr)) < 0) goto cleanup;
THis will need a little change based on my other patch comments. Although it is less code to just call qemuSaveFormatTypeFromString here, instead of qemu_conf.c, I still think we should call it in qemu_conf.c for the the config file parameters. That'll mean this code needs a little change to only use qemuSaveFormatTypeFromString when the typed parameters are providing a custom format override.
if (qemuSaveImageGetCompressionProgram(format, &compressor, "save") < 0) -- 2.43.0
With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|