mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
qemu: monitor: Remove infrastructure for BLOCK_JOB_* events
We no longer need it as we use the more modern job events. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Pavel Hrdina <phrdina@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
7e405d9f5c
commit
de1289b46e
@ -1210,20 +1210,6 @@ qemuMonitorEmitPMSuspendDisk(qemuMonitor *mon)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
|
||||||
qemuMonitorEmitBlockJob(qemuMonitor *mon,
|
|
||||||
const char *diskAlias,
|
|
||||||
int type,
|
|
||||||
int status,
|
|
||||||
const char *error)
|
|
||||||
{
|
|
||||||
VIR_DEBUG("mon=%p", mon);
|
|
||||||
|
|
||||||
QEMU_MONITOR_CALLBACK(mon, domainBlockJob, mon->vm,
|
|
||||||
diskAlias, type, status, error);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
qemuMonitorEmitJobStatusChange(qemuMonitor *mon,
|
qemuMonitorEmitJobStatusChange(qemuMonitor *mon,
|
||||||
const char *jobname,
|
const char *jobname,
|
||||||
|
@ -222,12 +222,6 @@ typedef void (*qemuMonitorDomainGraphicsCallback)(qemuMonitor *mon,
|
|||||||
const char *authScheme,
|
const char *authScheme,
|
||||||
const char *x509dname,
|
const char *x509dname,
|
||||||
const char *saslUsername);
|
const char *saslUsername);
|
||||||
typedef void (*qemuMonitorDomainBlockJobCallback)(qemuMonitor *mon,
|
|
||||||
virDomainObj *vm,
|
|
||||||
const char *diskAlias,
|
|
||||||
int type,
|
|
||||||
int status,
|
|
||||||
const char *error);
|
|
||||||
typedef void (*qemuMonitorDomainJobStatusChangeCallback)(qemuMonitor *mon,
|
typedef void (*qemuMonitorDomainJobStatusChangeCallback)(qemuMonitor *mon,
|
||||||
virDomainObj *vm,
|
virDomainObj *vm,
|
||||||
const char *jobname,
|
const char *jobname,
|
||||||
@ -381,7 +375,6 @@ struct _qemuMonitorCallbacks {
|
|||||||
qemuMonitorDomainWatchdogCallback domainWatchdog;
|
qemuMonitorDomainWatchdogCallback domainWatchdog;
|
||||||
qemuMonitorDomainIOErrorCallback domainIOError;
|
qemuMonitorDomainIOErrorCallback domainIOError;
|
||||||
qemuMonitorDomainGraphicsCallback domainGraphics;
|
qemuMonitorDomainGraphicsCallback domainGraphics;
|
||||||
qemuMonitorDomainBlockJobCallback domainBlockJob;
|
|
||||||
qemuMonitorDomainJobStatusChangeCallback jobStatusChange;
|
qemuMonitorDomainJobStatusChangeCallback jobStatusChange;
|
||||||
qemuMonitorDomainTrayChangeCallback domainTrayChange;
|
qemuMonitorDomainTrayChangeCallback domainTrayChange;
|
||||||
qemuMonitorDomainPMWakeupCallback domainPMWakeup;
|
qemuMonitorDomainPMWakeupCallback domainPMWakeup;
|
||||||
@ -474,11 +467,6 @@ void qemuMonitorEmitTrayChange(qemuMonitor *mon,
|
|||||||
int reason);
|
int reason);
|
||||||
void qemuMonitorEmitPMWakeup(qemuMonitor *mon);
|
void qemuMonitorEmitPMWakeup(qemuMonitor *mon);
|
||||||
void qemuMonitorEmitPMSuspend(qemuMonitor *mon);
|
void qemuMonitorEmitPMSuspend(qemuMonitor *mon);
|
||||||
void qemuMonitorEmitBlockJob(qemuMonitor *mon,
|
|
||||||
const char *diskAlias,
|
|
||||||
int type,
|
|
||||||
int status,
|
|
||||||
const char *error);
|
|
||||||
void qemuMonitorEmitJobStatusChange(qemuMonitor *mon,
|
void qemuMonitorEmitJobStatusChange(qemuMonitor *mon,
|
||||||
const char *jobname,
|
const char *jobname,
|
||||||
qemuMonitorJobStatus status);
|
qemuMonitorJobStatus status);
|
||||||
|
@ -65,9 +65,6 @@ static void qemuMonitorJSONHandleSPICEDisconnect(qemuMonitor *mon, virJSONValue
|
|||||||
static void qemuMonitorJSONHandleTrayChange(qemuMonitor *mon, virJSONValue *data);
|
static void qemuMonitorJSONHandleTrayChange(qemuMonitor *mon, virJSONValue *data);
|
||||||
static void qemuMonitorJSONHandlePMWakeup(qemuMonitor *mon, virJSONValue *data);
|
static void qemuMonitorJSONHandlePMWakeup(qemuMonitor *mon, virJSONValue *data);
|
||||||
static void qemuMonitorJSONHandlePMSuspend(qemuMonitor *mon, virJSONValue *data);
|
static void qemuMonitorJSONHandlePMSuspend(qemuMonitor *mon, virJSONValue *data);
|
||||||
static void qemuMonitorJSONHandleBlockJobCompleted(qemuMonitor *mon, virJSONValue *data);
|
|
||||||
static void qemuMonitorJSONHandleBlockJobCanceled(qemuMonitor *mon, virJSONValue *data);
|
|
||||||
static void qemuMonitorJSONHandleBlockJobReady(qemuMonitor *mon, virJSONValue *data);
|
|
||||||
static void qemuMonitorJSONHandleJobStatusChange(qemuMonitor *mon, virJSONValue *data);
|
static void qemuMonitorJSONHandleJobStatusChange(qemuMonitor *mon, virJSONValue *data);
|
||||||
static void qemuMonitorJSONHandleBalloonChange(qemuMonitor *mon, virJSONValue *data);
|
static void qemuMonitorJSONHandleBalloonChange(qemuMonitor *mon, virJSONValue *data);
|
||||||
static void qemuMonitorJSONHandlePMSuspendDisk(qemuMonitor *mon, virJSONValue *data);
|
static void qemuMonitorJSONHandlePMSuspendDisk(qemuMonitor *mon, virJSONValue *data);
|
||||||
@ -97,9 +94,6 @@ static qemuEventHandler eventHandlers[] = {
|
|||||||
{ "ACPI_DEVICE_OST", qemuMonitorJSONHandleAcpiOstInfo, },
|
{ "ACPI_DEVICE_OST", qemuMonitorJSONHandleAcpiOstInfo, },
|
||||||
{ "BALLOON_CHANGE", qemuMonitorJSONHandleBalloonChange, },
|
{ "BALLOON_CHANGE", qemuMonitorJSONHandleBalloonChange, },
|
||||||
{ "BLOCK_IO_ERROR", qemuMonitorJSONHandleIOError, },
|
{ "BLOCK_IO_ERROR", qemuMonitorJSONHandleIOError, },
|
||||||
{ "BLOCK_JOB_CANCELLED", qemuMonitorJSONHandleBlockJobCanceled, },
|
|
||||||
{ "BLOCK_JOB_COMPLETED", qemuMonitorJSONHandleBlockJobCompleted, },
|
|
||||||
{ "BLOCK_JOB_READY", qemuMonitorJSONHandleBlockJobReady, },
|
|
||||||
{ "BLOCK_WRITE_THRESHOLD", qemuMonitorJSONHandleBlockThreshold, },
|
{ "BLOCK_WRITE_THRESHOLD", qemuMonitorJSONHandleBlockThreshold, },
|
||||||
{ "DEVICE_DELETED", qemuMonitorJSONHandleDeviceDeleted, },
|
{ "DEVICE_DELETED", qemuMonitorJSONHandleDeviceDeleted, },
|
||||||
{ "DEVICE_TRAY_MOVED", qemuMonitorJSONHandleTrayChange, },
|
{ "DEVICE_TRAY_MOVED", qemuMonitorJSONHandleTrayChange, },
|
||||||
@ -895,67 +889,6 @@ static void qemuMonitorJSONHandleSPICEDisconnect(qemuMonitor *mon, virJSONValue
|
|||||||
qemuMonitorJSONHandleGraphicsSPICE(mon, data, VIR_DOMAIN_EVENT_GRAPHICS_DISCONNECT);
|
qemuMonitorJSONHandleGraphicsSPICE(mon, data, VIR_DOMAIN_EVENT_GRAPHICS_DISCONNECT);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
qemuMonitorJSONHandleBlockJobImpl(qemuMonitor *mon,
|
|
||||||
virJSONValue *data,
|
|
||||||
int event)
|
|
||||||
{
|
|
||||||
const char *device;
|
|
||||||
const char *type_str;
|
|
||||||
const char *error = NULL;
|
|
||||||
int type = VIR_DOMAIN_BLOCK_JOB_TYPE_UNKNOWN;
|
|
||||||
unsigned long long offset, len;
|
|
||||||
|
|
||||||
if ((device = virJSONValueObjectGetString(data, "device")) == NULL) {
|
|
||||||
VIR_WARN("missing device in block job event");
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (virJSONValueObjectGetNumberUlong(data, "offset", &offset) < 0) {
|
|
||||||
VIR_WARN("missing offset in block job event");
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (virJSONValueObjectGetNumberUlong(data, "len", &len) < 0) {
|
|
||||||
VIR_WARN("missing len in block job event");
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((type_str = virJSONValueObjectGetString(data, "type")) == NULL) {
|
|
||||||
VIR_WARN("missing type in block job event");
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (STREQ(type_str, "stream"))
|
|
||||||
type = VIR_DOMAIN_BLOCK_JOB_TYPE_PULL;
|
|
||||||
else if (STREQ(type_str, "commit"))
|
|
||||||
type = VIR_DOMAIN_BLOCK_JOB_TYPE_COMMIT;
|
|
||||||
else if (STREQ(type_str, "mirror"))
|
|
||||||
type = VIR_DOMAIN_BLOCK_JOB_TYPE_COPY;
|
|
||||||
else if (STREQ(type_str, "backup"))
|
|
||||||
type = VIR_DOMAIN_BLOCK_JOB_TYPE_BACKUP;
|
|
||||||
|
|
||||||
switch ((virConnectDomainEventBlockJobStatus) event) {
|
|
||||||
case VIR_DOMAIN_BLOCK_JOB_COMPLETED:
|
|
||||||
error = virJSONValueObjectGetString(data, "error");
|
|
||||||
/* Make sure the whole device has been processed */
|
|
||||||
if (offset != len || error)
|
|
||||||
event = VIR_DOMAIN_BLOCK_JOB_FAILED;
|
|
||||||
break;
|
|
||||||
case VIR_DOMAIN_BLOCK_JOB_CANCELED:
|
|
||||||
case VIR_DOMAIN_BLOCK_JOB_READY:
|
|
||||||
break;
|
|
||||||
case VIR_DOMAIN_BLOCK_JOB_FAILED:
|
|
||||||
case VIR_DOMAIN_BLOCK_JOB_LAST:
|
|
||||||
VIR_DEBUG("should not get here");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
out:
|
|
||||||
qemuMonitorEmitBlockJob(mon, device, type, event, error);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
qemuMonitorJSONHandleJobStatusChange(qemuMonitor *mon,
|
qemuMonitorJSONHandleJobStatusChange(qemuMonitor *mon,
|
||||||
virJSONValue *data)
|
virJSONValue *data)
|
||||||
@ -1024,29 +957,6 @@ qemuMonitorJSONHandlePMSuspend(qemuMonitor *mon,
|
|||||||
qemuMonitorEmitPMSuspend(mon);
|
qemuMonitorEmitPMSuspend(mon);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
qemuMonitorJSONHandleBlockJobCompleted(qemuMonitor *mon,
|
|
||||||
virJSONValue *data)
|
|
||||||
{
|
|
||||||
qemuMonitorJSONHandleBlockJobImpl(mon, data,
|
|
||||||
VIR_DOMAIN_BLOCK_JOB_COMPLETED);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
qemuMonitorJSONHandleBlockJobCanceled(qemuMonitor *mon,
|
|
||||||
virJSONValue *data)
|
|
||||||
{
|
|
||||||
qemuMonitorJSONHandleBlockJobImpl(mon, data,
|
|
||||||
VIR_DOMAIN_BLOCK_JOB_CANCELED);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
qemuMonitorJSONHandleBlockJobReady(qemuMonitor *mon,
|
|
||||||
virJSONValue *data)
|
|
||||||
{
|
|
||||||
qemuMonitorJSONHandleBlockJobImpl(mon, data,
|
|
||||||
VIR_DOMAIN_BLOCK_JOB_READY);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
qemuMonitorJSONHandleBalloonChange(qemuMonitor *mon,
|
qemuMonitorJSONHandleBalloonChange(qemuMonitor *mon,
|
||||||
|
Loading…
Reference in New Issue
Block a user