Re: [PATCH 24/26] admin: add 'daemon-shutdown' command

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jan 08, 2025 at 19:42:57 +0000, Daniel P. Berrangé wrote:
> The daemons are wired up to shutdown in responsible to UNIX process
> signals, as well as in response to login1 dbus signals, or loss of
> desktop session. The latter two options can optionally preserve state
> (ie running VMs).
> 
> In non-systemd environments, as well as for testing, it would be useful
> to have a way to trigger shutdown with state preservation more directly.
> 
> Thus a new admin protocol API is introduced
> 
>   virAdmConnectDaemonShutdown
> 
> which will trigger a daemon shutdown, and preserve running VMs if the
> VIR_DAEMON_SHUTDOWN_PRESERVE flag is set.
> 
> It has a corresponding 'virt-admin daemon-shutdown [--preserve]' command
> binding.
> 
> Signed-off-by: Daniel P. Berrangé <berrange@xxxxxxxxxx>
> ---
>  include/libvirt/libvirt-admin.h     | 13 +++++++++
>  src/admin/admin_protocol.x          | 11 +++++++-
>  src/admin/admin_server_dispatch.c   | 13 +++++++++
>  src/admin/libvirt-admin.c           | 33 +++++++++++++++++++++++
>  src/admin/libvirt_admin_public.syms |  5 ++++
>  src/rpc/virnetdaemon.c              |  4 +++
>  tools/virt-admin.c                  | 41 +++++++++++++++++++++++++++++
>  7 files changed, 119 insertions(+), 1 deletion(-)

Test failure after this patch (and also present at the end of the
series):

 ASAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1 LC_CTYPE=en_US.UTF-8 UBSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 LC_ALL='' MSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 LANG=C MALLOC_PERTURB_=118 MESON_TEST_ITERATION=1 /bin/python3 /home/pipo/libvirt/scripts/check-remote-protocol.py admin_protocol virt_admin_driver /home/pipo/build/libvirt/gcc/src/admin/libvirt_admin_driver.a /bin/pdwtags /home/pipo/build/libvirt/gcc/../../../libvirt/src/admin_protocol-structs
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― ✀  ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
--- /home/pipo/build/libvirt/gcc/../../../libvirt/src/admin_protocol-structs	2024-11-15 08:32:02.517209576 +0100
+++ -	2025-01-30 10:34:46.127808492 +0100
@@ -148,6 +148,9 @@
         u_int                      timeout;
         u_int                      flags;
 };
+struct admin_connect_daemon_shutdown_args {
+        u_int                      flags;
+};
 enum admin_procedure {
         ADMIN_PROC_CONNECT_OPEN = 1,
         ADMIN_PROC_CONNECT_CLOSE = 2,
@@ -168,4 +171,5 @@
         ADMIN_PROC_CONNECT_SET_LOGGING_FILTERS = 17,
         ADMIN_PROC_SERVER_UPDATE_TLS_FILES = 18,
         ADMIN_PROC_CONNECT_SET_DAEMON_TIMEOUT       = 19,
+        ADMIN_PROC_CONNECT_DAEMON_SHUTDOWN          = 20,
 };
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――





[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux