mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
libxl: send lifecycle event on suspend
Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com> Reviewed-by: Jim Fehlig <jfehlig@suse.com>
This commit is contained in:
parent
a35a47e9f1
commit
d00c77ae45
@ -520,6 +520,18 @@ libxlDomainShutdownThread(void *opaque)
|
||||
case VIR_DOMAIN_LIFECYCLE_ACTION_LAST:
|
||||
goto endjob;
|
||||
}
|
||||
} else if (xl_reason == LIBXL_SHUTDOWN_REASON_SUSPEND) {
|
||||
virDomainObjSetState(vm, VIR_DOMAIN_PMSUSPENDED,
|
||||
VIR_DOMAIN_PMSUSPENDED_UNKNOWN);
|
||||
|
||||
dom_event = virDomainEventLifecycleNewFromObj(vm,
|
||||
VIR_DOMAIN_EVENT_PMSUSPENDED,
|
||||
VIR_DOMAIN_EVENT_PMSUSPENDED_MEMORY);
|
||||
/*
|
||||
* Similar to the xl implementation, ignore SUSPEND. Any actions needed
|
||||
* after calling libxl_domain_suspend() are handled by it's callers.
|
||||
*/
|
||||
goto endjob;
|
||||
} else {
|
||||
VIR_INFO("Unhandled shutdown_reason %d", xl_reason);
|
||||
goto endjob;
|
||||
@ -563,7 +575,6 @@ void
|
||||
libxlDomainEventHandler(void *data, VIR_LIBXL_EVENT_CONST libxl_event *event)
|
||||
{
|
||||
libxlDriverPrivatePtr driver = data;
|
||||
libxl_shutdown_reason xl_reason = event->u.domain_shutdown.shutdown_reason;
|
||||
struct libxlShutdownThreadInfo *shutdown_info = NULL;
|
||||
virThread thread;
|
||||
libxlDriverConfigPtr cfg;
|
||||
@ -573,13 +584,6 @@ libxlDomainEventHandler(void *data, VIR_LIBXL_EVENT_CONST libxl_event *event)
|
||||
goto error;
|
||||
}
|
||||
|
||||
/*
|
||||
* Similar to the xl implementation, ignore SUSPEND. Any actions needed
|
||||
* after calling libxl_domain_suspend() are handled by its callers.
|
||||
*/
|
||||
if (xl_reason == LIBXL_SHUTDOWN_REASON_SUSPEND)
|
||||
goto error;
|
||||
|
||||
/*
|
||||
* Start a thread to handle shutdown. We don't want to be tying up
|
||||
* libxl's event machinery by doing a potentially lengthy shutdown.
|
||||
|
Loading…
x
Reference in New Issue
Block a user