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é <berra...@redhat.com>
> ---
>  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,
 };
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

Reply via email to