]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
hypervisor: domain: Extract logic for auto shutdown to virDomainDriverAutoShutdownActive
authorPeter Krempa <pkrempa@redhat.com>
Fri, 27 Jun 2025 13:22:22 +0000 (15:22 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Tue, 8 Jul 2025 12:51:44 +0000 (14:51 +0200)
Extract the checker that determines whether the daemon auto shutdown
functionality is active to a separate helper
'virDomainDriverAutoShutdownActive'.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
src/hypervisor/domain_driver.c
src/hypervisor/domain_driver.h
src/libvirt_private.syms

index 62bbe176aeab2f77fd3ad6dbcab57ac79269f11d..353b8875ecc062a83a530af78ff46027d9f9f709 100644 (file)
@@ -729,6 +729,15 @@ virDomainDriverAutoStart(virDomainObjList *domains,
 }
 
 
+bool
+virDomainDriverAutoShutdownActive(virDomainDriverAutoShutdownConfig *cfg)
+{
+    return cfg->trySave != VIR_DOMAIN_DRIVER_AUTO_SHUTDOWN_SCOPE_NONE ||
+        cfg->tryShutdown != VIR_DOMAIN_DRIVER_AUTO_SHUTDOWN_SCOPE_NONE ||
+        cfg->poweroff != VIR_DOMAIN_DRIVER_AUTO_SHUTDOWN_SCOPE_NONE;
+}
+
+
 void
 virDomainDriverAutoShutdown(virDomainDriverAutoShutdownConfig *cfg)
 {
@@ -773,9 +782,7 @@ virDomainDriverAutoShutdown(virDomainDriverAutoShutdownConfig *cfg)
     }
 
     /* Short-circuit if all actions are disabled */
-    if (cfg->trySave == VIR_DOMAIN_DRIVER_AUTO_SHUTDOWN_SCOPE_NONE &&
-        cfg->tryShutdown == VIR_DOMAIN_DRIVER_AUTO_SHUTDOWN_SCOPE_NONE &&
-        cfg->poweroff == VIR_DOMAIN_DRIVER_AUTO_SHUTDOWN_SCOPE_NONE)
+    if (!virDomainDriverAutoShutdownActive(cfg))
         return;
 
     if (!(conn = virConnectOpen(cfg->uri)))
index d90466b9420401a9c1f20160c33872f7b4abf867..af1c4eaed62fd0f945e49b0a2238d526c7b772e5 100644 (file)
@@ -116,4 +116,5 @@ typedef struct _virDomainDriverAutoShutdownConfig {
     bool autoRestore;
 } virDomainDriverAutoShutdownConfig;
 
+bool virDomainDriverAutoShutdownActive(virDomainDriverAutoShutdownConfig *cfg);
 void virDomainDriverAutoShutdown(virDomainDriverAutoShutdownConfig *cfg);
index 8f1489ecc8e10738b84bf5586774ae05f7ded537..1b9be478e4c75c92656d628a98f6e7c7a99b6b32 100644 (file)
@@ -1658,6 +1658,7 @@ virDomainCgroupSetupVcpuBW;
 # hypervisor/domain_driver.h
 virDomainDriverAddIOThreadCheck;
 virDomainDriverAutoShutdown;
+virDomainDriverAutoShutdownActive;
 virDomainDriverAutoShutdownScopeTypeFromString;
 virDomainDriverAutoShutdownScopeTypeToString;
 virDomainDriverAutoStart;