From: =?UTF-8?q?Andreas=20Bie=C3=9Fmann?= Date: Thu, 18 Mar 2010 13:05:59 +0100 Subject: [PATCH] patch qemuMonitorTextGetMigrationStatus to intercept unknown command 'info migrate' Debian package kvm up to version 72 has not implemented the command 'info migrate'. This command interface returns help page of info commands and looks like this: ---8<--- info version -- show the version of qemu info network -- show the network state info block -- show the block devices info blockstats -- show block device statistics info registers -- show the cpu registers info cpus -- show infos for each CPU info history -- show the command line history info irq -- show the interrupts statistics (if available) info pic -- show i8259 (PIC) state info pci -- show PCI info info tlb -- show virtual to physical memory mappings info mem -- show the active virtual memory mappings info jit -- show dynamic compiler info info kqemu -- show kqemu information info kvm -- show kvm information info usb -- show guest USB devices info usbhost -- show host USB devices info profile -- show profiling information info capture -- show capture information info snapshots -- show the currently saved VM snapshots info pcmcia -- show guest PCMCIA status info mice -- show which guest mouse is receiving events info vnc -- show the vnc server status info name -- show the current VM name info slirp -- show SLIRP statistics info migration -- show migration information --->8--- This patch triggers for 'info migration' in reply to 'info migrate' command to savely detect that the command 'info migrate' is not implemented. --- src/qemu/qemu_monitor_text.c | 10 +++++++++- 1 files changed, 9 insertions(+), 1 deletions(-) diff --git a/src/qemu/qemu_monitor_text.c b/src/qemu/qemu_monitor_text.c index 69971a6..ff9641c 100644 --- a/src/qemu/qemu_monitor_text.c +++ b/src/qemu/qemu_monitor_text.c @@ -1124,7 +1124,15 @@ int qemuMonitorTextGetMigrationStatus(qemuMonitorPtr mon, *total *= 1024; } - } + } else if (strstr(reply, "info migration") != NULL) { + /* 'info migrate' returned help for info commands and the help page + * advertises 'info migration' command. Therefore we have an old + * command implementation installed and this must be kvm 72 on debian */ + qemuReportError(VIR_ERR_INTERNAL_ERROR, + _("command 'info migrate' is not implemented in kvm," + " please update to qemu-kvm")); + goto cleanup; + } done: ret = 0; --