static void
qemuMigrationUpdateJobType(qemuDomainJobInfoPtr jobInfo)
{
- switch (jobInfo->stats.status) {
+ switch ((qemuMonitorMigrationStatus) jobInfo->stats.status) {
case QEMU_MONITOR_MIGRATION_STATUS_COMPLETED:
jobInfo->type = VIR_DOMAIN_JOB_COMPLETED;
break;
case QEMU_MONITOR_MIGRATION_STATUS_SETUP:
case QEMU_MONITOR_MIGRATION_STATUS_ACTIVE:
case QEMU_MONITOR_MIGRATION_STATUS_CANCELLING:
+ case QEMU_MONITOR_MIGRATION_STATUS_LAST:
break;
}
}
int qemuMonitorSetMigrationCacheSize(qemuMonitorPtr mon,
unsigned long long cacheSize);
-enum {
+typedef enum {
QEMU_MONITOR_MIGRATION_STATUS_INACTIVE,
QEMU_MONITOR_MIGRATION_STATUS_SETUP,
QEMU_MONITOR_MIGRATION_STATUS_ACTIVE,
QEMU_MONITOR_MIGRATION_STATUS_CANCELLED,
QEMU_MONITOR_MIGRATION_STATUS_LAST
-};
+} qemuMonitorMigrationStatus;
VIR_ENUM_DECL(qemuMonitorMigrationStatus)
typedef struct _qemuMonitorMigrationStats qemuMonitorMigrationStats;
typedef qemuMonitorMigrationStats *qemuMonitorMigrationStatsPtr;
struct _qemuMonitorMigrationStats {
- int status;
+ int status; /* qemuMonitorMigrationStatus */
unsigned long long total_time;
/* total or expected depending on status */
bool downtime_set;
qemuMonitorMigrationStatsPtr stats)
{
virJSONValuePtr ret;
+ virJSONValuePtr ram;
+ virJSONValuePtr disk;
+ virJSONValuePtr comp;
const char *statusstr;
int rc;
double mbps;
&stats->setup_time) == 0)
stats->setup_time_set = true;
- if (stats->status == QEMU_MONITOR_MIGRATION_STATUS_ACTIVE ||
- stats->status == QEMU_MONITOR_MIGRATION_STATUS_CANCELLING ||
- stats->status == QEMU_MONITOR_MIGRATION_STATUS_COMPLETED) {
- virJSONValuePtr ram = virJSONValueObjectGetObject(ret, "ram");
+ switch ((qemuMonitorMigrationStatus) stats->status) {
+ case QEMU_MONITOR_MIGRATION_STATUS_INACTIVE:
+ case QEMU_MONITOR_MIGRATION_STATUS_SETUP:
+ case QEMU_MONITOR_MIGRATION_STATUS_ERROR:
+ case QEMU_MONITOR_MIGRATION_STATUS_CANCELLED:
+ case QEMU_MONITOR_MIGRATION_STATUS_LAST:
+ break;
+
+ case QEMU_MONITOR_MIGRATION_STATUS_ACTIVE:
+ case QEMU_MONITOR_MIGRATION_STATUS_COMPLETED:
+ case QEMU_MONITOR_MIGRATION_STATUS_CANCELLING:
+ ram = virJSONValueObjectGetObject(ret, "ram");
if (!ram) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("migration was active, but no RAM info was set"));
ignore_value(virJSONValueObjectGetNumberUlong(ram, "normal-bytes",
&stats->ram_normal_bytes));
- virJSONValuePtr disk = virJSONValueObjectGetObject(ret, "disk");
+ disk = virJSONValueObjectGetObject(ret, "disk");
if (disk) {
rc = virJSONValueObjectGetNumberUlong(disk, "transferred",
&stats->disk_transferred);
}
}
- virJSONValuePtr comp = virJSONValueObjectGetObject(ret, "xbzrle-cache");
+ comp = virJSONValueObjectGetObject(ret, "xbzrle-cache");
if (comp) {
stats->xbzrle_set = true;
rc = virJSONValueObjectGetNumberUlong(comp, "cache-size",
return -1;
}
}
+ break;
}
return 0;