78 lines
2.9 KiB
Diff
78 lines
2.9 KiB
Diff
From 8ebd4e7c38291929f8a6c481b768a4d8355ea19c Mon Sep 17 00:00:00 2001
|
|
Message-ID: <8ebd4e7c38291929f8a6c481b768a4d8355ea19c.1752837271.git.jdenemar@redhat.com>
|
|
From: Peter Krempa <pkrempa@redhat.com>
|
|
Date: Fri, 27 Jun 2025 15:22:22 +0200
|
|
Subject: [PATCH] hypervisor: domain: Extract logic for auto shutdown to
|
|
virDomainDriverAutoShutdownActive
|
|
|
|
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>
|
|
(cherry picked from commit bb51963bb173b28dacb6a1374712b1344e9a61c2)
|
|
|
|
https://issues.redhat.com/browse/RHEL-95361
|
|
---
|
|
src/hypervisor/domain_driver.c | 13 ++++++++++---
|
|
src/hypervisor/domain_driver.h | 1 +
|
|
src/libvirt_private.syms | 1 +
|
|
3 files changed, 12 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/src/hypervisor/domain_driver.c b/src/hypervisor/domain_driver.c
|
|
index 62bbe176ae..353b8875ec 100644
|
|
--- a/src/hypervisor/domain_driver.c
|
|
+++ b/src/hypervisor/domain_driver.c
|
|
@@ -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)))
|
|
diff --git a/src/hypervisor/domain_driver.h b/src/hypervisor/domain_driver.h
|
|
index d90466b942..af1c4eaed6 100644
|
|
--- a/src/hypervisor/domain_driver.h
|
|
+++ b/src/hypervisor/domain_driver.h
|
|
@@ -116,4 +116,5 @@ typedef struct _virDomainDriverAutoShutdownConfig {
|
|
bool autoRestore;
|
|
} virDomainDriverAutoShutdownConfig;
|
|
|
|
+bool virDomainDriverAutoShutdownActive(virDomainDriverAutoShutdownConfig *cfg);
|
|
void virDomainDriverAutoShutdown(virDomainDriverAutoShutdownConfig *cfg);
|
|
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
|
|
index 8f1489ecc8..1b9be478e4 100644
|
|
--- a/src/libvirt_private.syms
|
|
+++ b/src/libvirt_private.syms
|
|
@@ -1658,6 +1658,7 @@ virDomainCgroupSetupVcpuBW;
|
|
# hypervisor/domain_driver.h
|
|
virDomainDriverAddIOThreadCheck;
|
|
virDomainDriverAutoShutdown;
|
|
+virDomainDriverAutoShutdownActive;
|
|
virDomainDriverAutoShutdownScopeTypeFromString;
|
|
virDomainDriverAutoShutdownScopeTypeToString;
|
|
virDomainDriverAutoStart;
|
|
--
|
|
2.50.1
|