Re: [PATCH] Pass shutoff reason to release hook

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

 



On 6/3/24 16:10, Swapnil Ingle wrote:
> Sometimes in release hook it is useful to know if the VM shutdown was graceful
> or not. This is especially useful to do cleanup based on the VM shutdown failure
> reason in release hook. This patch proposes to use the last argument 'extra'
> to pass VM shutoff reason in the call to release hook.
> 
> Signed-off-by: Swapnil Ingle <swapnil.ingle@xxxxxxxxxxx>
> ---
>  docs/hooks.rst          | 24 +++++++++++++++++++++++-
>  src/qemu/qemu_process.c |  2 +-
>  2 files changed, 24 insertions(+), 2 deletions(-)
> 
> diff --git a/docs/hooks.rst b/docs/hooks.rst
> index 1dbc492bd4..e76208021a 100644
> --- a/docs/hooks.rst
> +++ b/docs/hooks.rst
> @@ -312,7 +312,29 @@ operation. There is no specific operation to indicate a "restart" is occurring.
>  
>     ::
>  
> -      /etc/libvirt/hooks/lxc guest_name release end -
> +      /etc/libvirt/hooks/lxc guest_name release end <shutoff-reason>
> +
> +   +-------------------+------------------------------------------------------------------+
> +   | Shutoff reason    | Description                                                      |
> +   +===================+==================================================================+
> +   | unknown           | the reason is unknown                                            |
> +   +-------------------+------------------------------------------------------------------+
> +   | shutdown          | normal shutdown                                                  |
> +   +-------------------+------------------------------------------------------------------+
> +   | destroyed         | forced poweroff                                                  |
> +   +-------------------+------------------------------------------------------------------+
> +   | crashed           | domain crashed                                                   |
> +   +-------------------+------------------------------------------------------------------+
> +   | migrated          | migrated to another host                                         |
> +   +-------------------+------------------------------------------------------------------+
> +   | saved             | saved to a file                                                  |
> +   +-------------------+------------------------------------------------------------------+
> +   | failed            | domain failed to start                                           |
> +   +-------------------+------------------------------------------------------------------+
> +   | from snapshot     | restored from a snapshot which was taken while domain was shutoff|
> +   +-------------------+------------------------------------------------------------------+
> +   | daemon            | daemon decides to kill domain during reconnection processing     |
> +   +-------------------+------------------------------------------------------------------+
>  
>  -  :since:`Since 0.9.13`, the lxc hook script is also called when the libvirtd
>     daemon restarts and reconnects to previously running LXC processes. If the
> diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
> index 7ef7040a85..0a03685ca7 100644
> --- a/src/qemu/qemu_process.c
> +++ b/src/qemu/qemu_process.c
> @@ -8716,7 +8716,7 @@ void qemuProcessStop(virQEMUDriver *driver,
>          /* we can't stop the operation even if the script raised an error */
>          virHookCall(VIR_HOOK_DRIVER_QEMU, vm->def->name,
>                      VIR_HOOK_QEMU_OP_RELEASE, VIR_HOOK_SUBOP_END,
> -                    NULL, xml, NULL);
> +                    virDomainShutoffReasonTypeToString(reason), xml, NULL);
>      }
>  
>      virDomainObjRemoveTransientDef(vm);

Ahh, sorry for letting this slip.
Anyway, you're documenting LXC hook but changing hook calling from QEMU
driver. These are independent of each other, though I believe we can
make the same change to both. Do you mind posting v2?

Michal



[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