mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-22 11:22:23 +00:00
qemu: Add support for job completed event
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
This commit is contained in:
parent
f289300181
commit
cf091094a4
@ -149,6 +149,30 @@ void qemuDomainEventQueue(virQEMUDriverPtr driver,
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
qemuDomainEventEmitJobCompleted(virQEMUDriverPtr driver,
|
||||
virDomainObjPtr vm)
|
||||
{
|
||||
qemuDomainObjPrivatePtr priv = vm->privateData;
|
||||
virObjectEventPtr event;
|
||||
virTypedParameterPtr params = NULL;
|
||||
int nparams = 0;
|
||||
int type;
|
||||
|
||||
if (!priv->job.completed)
|
||||
return;
|
||||
|
||||
if (qemuDomainJobInfoToParams(priv->job.completed, &type,
|
||||
¶ms, &nparams) < 0) {
|
||||
VIR_WARN("Could not get stats for completed job; domain %s",
|
||||
vm->def->name);
|
||||
}
|
||||
|
||||
event = virDomainEventJobCompletedNewFromObj(vm, params, nparams);
|
||||
qemuDomainEventQueue(driver, event);
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
qemuDomainObjInitJob(qemuDomainObjPrivatePtr priv)
|
||||
{
|
||||
|
@ -265,6 +265,8 @@ void qemuDomainEventFlush(int timer, void *opaque);
|
||||
|
||||
void qemuDomainEventQueue(virQEMUDriverPtr driver,
|
||||
virObjectEventPtr event);
|
||||
void qemuDomainEventEmitJobCompleted(virQEMUDriverPtr driver,
|
||||
virDomainObjPtr vm);
|
||||
|
||||
int qemuDomainObjBeginJob(virQEMUDriverPtr driver,
|
||||
virDomainObjPtr obj,
|
||||
|
@ -3866,7 +3866,7 @@ qemuMigrationConfirmPhase(virQEMUDriverPtr driver,
|
||||
int retcode)
|
||||
{
|
||||
qemuMigrationCookiePtr mig;
|
||||
virObjectEventPtr event = NULL;
|
||||
virObjectEventPtr event;
|
||||
int rv = -1;
|
||||
virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
|
||||
qemuDomainObjPrivatePtr priv = vm->privateData;
|
||||
@ -3921,6 +3921,8 @@ qemuMigrationConfirmPhase(virQEMUDriverPtr driver,
|
||||
event = virDomainEventLifecycleNewFromObj(vm,
|
||||
VIR_DOMAIN_EVENT_STOPPED,
|
||||
VIR_DOMAIN_EVENT_STOPPED_MIGRATED);
|
||||
qemuDomainEventQueue(driver, event);
|
||||
qemuDomainEventEmitJobCompleted(driver, vm);
|
||||
} else {
|
||||
virErrorPtr orig_err = virSaveLastError();
|
||||
|
||||
@ -3935,6 +3937,7 @@ qemuMigrationConfirmPhase(virQEMUDriverPtr driver,
|
||||
event = virDomainEventLifecycleNewFromObj(vm,
|
||||
VIR_DOMAIN_EVENT_RESUMED,
|
||||
VIR_DOMAIN_EVENT_RESUMED_MIGRATED);
|
||||
qemuDomainEventQueue(driver, event);
|
||||
}
|
||||
|
||||
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
|
||||
@ -3946,7 +3949,6 @@ qemuMigrationConfirmPhase(virQEMUDriverPtr driver,
|
||||
rv = 0;
|
||||
|
||||
cleanup:
|
||||
qemuDomainEventQueue(driver, event);
|
||||
virObjectUnref(cfg);
|
||||
return rv;
|
||||
}
|
||||
@ -6071,6 +6073,7 @@ qemuMigrationToFile(virQEMUDriverPtr driver, virDomainObjPtr vm,
|
||||
if (cmd && virCommandWait(cmd, NULL) < 0)
|
||||
goto cleanup;
|
||||
|
||||
qemuDomainEventEmitJobCompleted(driver, vm);
|
||||
ret = 0;
|
||||
|
||||
cleanup:
|
||||
|
Loading…
x
Reference in New Issue
Block a user