{
priv->nodenameindex = 0;
}
+
+
+virDomainEventResumedDetailType
+qemuDomainRunningReasonToResumeEvent(virDomainRunningReason reason)
+{
+ switch (reason) {
+ case VIR_DOMAIN_RUNNING_RESTORED:
+ case VIR_DOMAIN_RUNNING_FROM_SNAPSHOT:
+ return VIR_DOMAIN_EVENT_RESUMED_FROM_SNAPSHOT;
+
+ case VIR_DOMAIN_RUNNING_MIGRATED:
+ case VIR_DOMAIN_RUNNING_MIGRATION_CANCELED:
+ return VIR_DOMAIN_EVENT_RESUMED_MIGRATED;
+
+ case VIR_DOMAIN_RUNNING_POSTCOPY:
+ return VIR_DOMAIN_EVENT_RESUMED_POSTCOPY;
+
+ case VIR_DOMAIN_RUNNING_UNKNOWN:
+ case VIR_DOMAIN_RUNNING_SAVE_CANCELED:
+ case VIR_DOMAIN_RUNNING_BOOTED:
+ case VIR_DOMAIN_RUNNING_UNPAUSED:
+ case VIR_DOMAIN_RUNNING_WAKEUP:
+ case VIR_DOMAIN_RUNNING_CRASHED:
+ case VIR_DOMAIN_RUNNING_LAST:
+ break;
+ }
+
+ return VIR_DOMAIN_EVENT_RESUMED_UNPAUSED;
+}
unsigned int qemuDomainStorageIdNew(qemuDomainObjPrivatePtr priv);
void qemuDomainStorageIdReset(qemuDomainObjPrivatePtr priv);
+virDomainEventResumedDetailType
+qemuDomainRunningReasonToResumeEvent(virDomainRunningReason reason);
+
#endif /* __QEMU_DOMAIN_H__ */
virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
qemuDomainObjPrivatePtr priv;
virDomainRunningReason reason = VIR_DOMAIN_RUNNING_UNPAUSED;
+ virDomainEventResumedDetailType eventDetail;
virObjectLock(vm);
goto unlock;
}
+ eventDetail = qemuDomainRunningReasonToResumeEvent(reason);
VIR_DEBUG("Transitioned guest %s out of paused into resumed state, "
- "reason '%s'",
- vm->def->name, virDomainRunningReasonTypeToString(reason));
+ "reason '%s', event detail %d",
+ vm->def->name, virDomainRunningReasonTypeToString(reason),
+ eventDetail);
virDomainObjSetState(vm, VIR_DOMAIN_RUNNING, reason);
event = virDomainEventLifecycleNewFromObj(vm,
- VIR_DOMAIN_EVENT_RESUMED,
- VIR_DOMAIN_EVENT_RESUMED_UNPAUSED);
+ VIR_DOMAIN_EVENT_RESUMED,
+ eventDetail);
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0) {
VIR_WARN("Unable to save status on vm %s after state change",