[libvirt] [PATCH] Clarify direct migration

When --direct is used when migrating a domain running on a hypervisor that does not support direct migration (such as QEMU), the caller would get the following error message: this function is not supported by the connection driver: virDomainMigrateToURI2 which is a complete nonsense since qemu driver implements virDomainMigrateToURI2. This patch would emit a more sensible error in this case: Requested operation is not valid: direct migration is not supported by the connection driver --- src/libvirt.c | 8 ++++++-- tools/virsh.pod | 3 +++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/libvirt.c b/src/libvirt.c index db6ba15..df78e8a 100644 --- a/src/libvirt.c +++ b/src/libvirt.c @@ -5562,7 +5562,9 @@ virDomainMigrateToURI (virDomainPtr domain, goto error; } else { /* Cannot do a migration with only the perform step */ - virLibConnError(VIR_ERR_NO_SUPPORT, __FUNCTION__); + virLibConnError(VIR_ERR_OPERATION_INVALID, "%s", + _("direct migration is not supported by the" + " connection driver")); goto error; } } @@ -5696,7 +5698,9 @@ virDomainMigrateToURI2(virDomainPtr domain, goto error; } else { /* Cannot do a migration with only the perform step */ - virLibConnError(VIR_ERR_NO_SUPPORT, __FUNCTION__); + virLibConnError(VIR_ERR_OPERATION_INVALID, "%s", + _("direct migration is not supported by the" + " connection driver")); goto error; } } diff --git a/tools/virsh.pod b/tools/virsh.pod index ae00622..4bddf15 100644 --- a/tools/virsh.pod +++ b/tools/virsh.pod @@ -990,6 +990,9 @@ is implicitly enabled when supported by the hypervisor, but can be explicitly used to reject the migration if the hypervisor lacks change protection support. I<--verbose> displays the progress of migration. +B<Note>: Individual hypervisors usually do not support all possible types of +migration. For example, QEMU does not support direct migration. + In some cases libvirt may refuse to migrate the domain because doing so may lead to potential problems such as data corruption, and thus the migration is considered unsafe. For QEMU domain, this may happen if the domain uses disks -- 1.7.11.1

On 07/12/2012 08:23 AM, Jiri Denemark wrote:
When --direct is used when migrating a domain running on a hypervisor that does not support direct migration (such as QEMU), the caller would get the following error message:
this function is not supported by the connection driver: virDomainMigrateToURI2
which is a complete nonsense since qemu driver implements virDomainMigrateToURI2. This patch would emit a more sensible error in this case:
Requested operation is not valid: direct migration is not supported by the connection driver --- src/libvirt.c | 8 ++++++-- tools/virsh.pod | 3 +++ 2 files changed, 9 insertions(+), 2 deletions(-)
ACK. -- Eric Blake eblake@redhat.com +1-919-301-3266 Libvirt virtualization library http://libvirt.org

On Thu, Jul 12, 2012 at 13:43:26 -0600, Eric Blake wrote:
On 07/12/2012 08:23 AM, Jiri Denemark wrote:
When --direct is used when migrating a domain running on a hypervisor that does not support direct migration (such as QEMU), the caller would get the following error message:
this function is not supported by the connection driver: virDomainMigrateToURI2
which is a complete nonsense since qemu driver implements virDomainMigrateToURI2. This patch would emit a more sensible error in this case:
Requested operation is not valid: direct migration is not supported by the connection driver --- src/libvirt.c | 8 ++++++-- tools/virsh.pod | 3 +++ 2 files changed, 9 insertions(+), 2 deletions(-)
ACK.
Thanks, pushed. Jirka
participants (2)
-
Eric Blake
-
Jiri Denemark