138 lines
5.8 KiB
Diff
138 lines
5.8 KiB
Diff
From 44d1e39ed66596dfb8d2d4046aa5b0aa91d6dc88 Mon Sep 17 00:00:00 2001
|
|
Message-ID: <44d1e39ed66596dfb8d2d4046aa5b0aa91d6dc88.1752837271.git.jdenemar@redhat.com>
|
|
From: Peter Krempa <pkrempa@redhat.com>
|
|
Date: Fri, 27 Jun 2025 15:13:35 +0200
|
|
Subject: [PATCH] qemu: conf: Store 'autoShutdown' config in
|
|
virDomainDriverAutoShutdownConfig
|
|
|
|
Rather than having a bunch of extra variables save the configuration of
|
|
the daemon auto shutdown in virDomainDriverAutoShutdownConfig which is
|
|
also used when initiating the shutdown.
|
|
|
|
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
|
|
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
|
|
(cherry picked from commit c8adb8537b947f76a0be85e9c28de85e351d6b51)
|
|
|
|
https://issues.redhat.com/browse/RHEL-95361
|
|
---
|
|
src/qemu/qemu_conf.c | 30 +++++++++++++++---------------
|
|
src/qemu/qemu_conf.h | 7 +------
|
|
src/qemu/qemu_driver.c | 12 +++---------
|
|
3 files changed, 19 insertions(+), 30 deletions(-)
|
|
|
|
diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c
|
|
index 9bf12fc179..482e19b502 100644
|
|
--- a/src/qemu/qemu_conf.c
|
|
+++ b/src/qemu/qemu_conf.c
|
|
@@ -320,15 +320,15 @@ virQEMUDriverConfig *virQEMUDriverConfigNew(bool privileged,
|
|
*
|
|
* XXX, or query if libvirt-guests.service is enabled perhaps ?
|
|
*/
|
|
- cfg->autoShutdownTrySave = VIR_DOMAIN_DRIVER_AUTO_SHUTDOWN_SCOPE_NONE;
|
|
- cfg->autoShutdownTryShutdown = VIR_DOMAIN_DRIVER_AUTO_SHUTDOWN_SCOPE_NONE;
|
|
- cfg->autoShutdownPoweroff = VIR_DOMAIN_DRIVER_AUTO_SHUTDOWN_SCOPE_NONE;
|
|
+ cfg->autoShutdown.trySave = VIR_DOMAIN_DRIVER_AUTO_SHUTDOWN_SCOPE_NONE;
|
|
+ cfg->autoShutdown.tryShutdown = VIR_DOMAIN_DRIVER_AUTO_SHUTDOWN_SCOPE_NONE;
|
|
+ cfg->autoShutdown.poweroff = VIR_DOMAIN_DRIVER_AUTO_SHUTDOWN_SCOPE_NONE;
|
|
} else {
|
|
- cfg->autoShutdownTrySave = VIR_DOMAIN_DRIVER_AUTO_SHUTDOWN_SCOPE_PERSISTENT;
|
|
- cfg->autoShutdownTryShutdown = VIR_DOMAIN_DRIVER_AUTO_SHUTDOWN_SCOPE_ALL;
|
|
- cfg->autoShutdownPoweroff = VIR_DOMAIN_DRIVER_AUTO_SHUTDOWN_SCOPE_ALL;
|
|
+ cfg->autoShutdown.trySave = VIR_DOMAIN_DRIVER_AUTO_SHUTDOWN_SCOPE_PERSISTENT;
|
|
+ cfg->autoShutdown.tryShutdown = VIR_DOMAIN_DRIVER_AUTO_SHUTDOWN_SCOPE_ALL;
|
|
+ cfg->autoShutdown.poweroff = VIR_DOMAIN_DRIVER_AUTO_SHUTDOWN_SCOPE_ALL;
|
|
}
|
|
- cfg->autoShutdownRestore = true;
|
|
+ cfg->autoShutdown.autoRestore = true;
|
|
|
|
return g_steal_pointer(&cfg);
|
|
}
|
|
@@ -719,11 +719,11 @@ virQEMUDriverConfigLoadSaveEntry(virQEMUDriverConfig *cfg,
|
|
autoShutdownTrySave);
|
|
return -1;
|
|
}
|
|
- cfg->autoShutdownTrySave = autoShutdownVal;
|
|
+ cfg->autoShutdown.trySave = autoShutdownVal;
|
|
}
|
|
|
|
- if (cfg->autoShutdownTrySave == VIR_DOMAIN_DRIVER_AUTO_SHUTDOWN_SCOPE_ALL ||
|
|
- cfg->autoShutdownTrySave == VIR_DOMAIN_DRIVER_AUTO_SHUTDOWN_SCOPE_TRANSIENT) {
|
|
+ if (cfg->autoShutdown.trySave == VIR_DOMAIN_DRIVER_AUTO_SHUTDOWN_SCOPE_ALL ||
|
|
+ cfg->autoShutdown.trySave == VIR_DOMAIN_DRIVER_AUTO_SHUTDOWN_SCOPE_TRANSIENT) {
|
|
virReportError(VIR_ERR_INVALID_ARG, "%s",
|
|
_("managed save cannot be requested for transient domains"));
|
|
return -1;
|
|
@@ -740,7 +740,7 @@ virQEMUDriverConfigLoadSaveEntry(virQEMUDriverConfig *cfg,
|
|
autoShutdownTryShutdown);
|
|
return -1;
|
|
}
|
|
- cfg->autoShutdownTryShutdown = autoShutdownVal;
|
|
+ cfg->autoShutdown.tryShutdown = autoShutdownVal;
|
|
}
|
|
|
|
if (virConfGetValueString(conf, "auto_shutdown_poweroff", &autoShutdownPoweroff) < 0)
|
|
@@ -754,16 +754,16 @@ virQEMUDriverConfigLoadSaveEntry(virQEMUDriverConfig *cfg,
|
|
autoShutdownPoweroff);
|
|
return -1;
|
|
}
|
|
- cfg->autoShutdownPoweroff = autoShutdownVal;
|
|
+ cfg->autoShutdown.poweroff = autoShutdownVal;
|
|
}
|
|
|
|
if (virConfGetValueUInt(conf, "auto_shutdown_wait",
|
|
- &cfg->autoShutdownWait) < 0)
|
|
+ &cfg->autoShutdown.waitShutdownSecs) < 0)
|
|
return -1;
|
|
- if (virConfGetValueBool(conf, "auto_shutdown_restore", &cfg->autoShutdownRestore) < 0)
|
|
+ if (virConfGetValueBool(conf, "auto_shutdown_restore", &cfg->autoShutdown.autoRestore) < 0)
|
|
return -1;
|
|
if (virConfGetValueBool(conf, "auto_save_bypass_cache",
|
|
- &cfg->autoSaveBypassCache) < 0)
|
|
+ &cfg->autoShutdown.saveBypassCache) < 0)
|
|
return -1;
|
|
|
|
return 0;
|
|
diff --git a/src/qemu/qemu_conf.h b/src/qemu/qemu_conf.h
|
|
index 1ce9dbe4a8..ff376aed4d 100644
|
|
--- a/src/qemu/qemu_conf.h
|
|
+++ b/src/qemu/qemu_conf.h
|
|
@@ -208,12 +208,7 @@ struct _virQEMUDriverConfig {
|
|
bool autoDumpBypassCache;
|
|
bool autoStartBypassCache;
|
|
unsigned int autoStartDelayMS;
|
|
- virDomainDriverAutoShutdownScope autoShutdownTrySave;
|
|
- virDomainDriverAutoShutdownScope autoShutdownTryShutdown;
|
|
- virDomainDriverAutoShutdownScope autoShutdownPoweroff;
|
|
- unsigned int autoShutdownWait;
|
|
- bool autoShutdownRestore;
|
|
- bool autoSaveBypassCache;
|
|
+ virDomainDriverAutoShutdownConfig autoShutdown;
|
|
|
|
char *lockManagerName;
|
|
|
|
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
|
|
index 9b583ad7aa..4dbd5ec2fc 100644
|
|
--- a/src/qemu/qemu_driver.c
|
|
+++ b/src/qemu/qemu_driver.c
|
|
@@ -964,15 +964,9 @@ static int
|
|
qemuStateStop(void)
|
|
{
|
|
g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(qemu_driver);
|
|
- virDomainDriverAutoShutdownConfig ascfg = {
|
|
- .uri = cfg->uri,
|
|
- .trySave = cfg->autoShutdownTrySave,
|
|
- .tryShutdown = cfg->autoShutdownTryShutdown,
|
|
- .poweroff = cfg->autoShutdownPoweroff,
|
|
- .waitShutdownSecs = cfg->autoShutdownWait,
|
|
- .saveBypassCache = cfg->autoSaveBypassCache,
|
|
- .autoRestore = cfg->autoShutdownRestore,
|
|
- };
|
|
+ virDomainDriverAutoShutdownConfig ascfg = cfg->autoShutdown;
|
|
+
|
|
+ ascfg.uri = cfg->uri;
|
|
|
|
virDomainDriverAutoShutdown(&ascfg);
|
|
|
|
--
|
|
2.50.1
|