
On Thu, Dec 15, 2011 at 01:59:06PM -0700, Eric Blake wrote:
On 12/15/2011 09:49 AM, Adam Tilghman wrote:
From: Eric Blake <eblake redhat com> Subject: Re: [libvirt-users] Wanted: method for qemu hook script to know if called for migration Date: Mon, 25 Jul 2011 14:17:08 -0600
As a feature suggestion, it would be nice if that fourth input variable, currently "-", was something like "migrate" in this instance.
Yes, that is probably a bug worth fixing.
I would also find it useful for the QEMU "prepare" hook to be told whether it's being called in the context of a migration.
(In our case, we use that hook to manage shared DRBD storage, and only permit Primary/Primary mode in the context of a migration.)
The attached 1-line patch supplies the hook with an additional argument "migration-target" when appropriate.
Submitted as https://bugzilla.redhat.com/show_bug.cgi?id=768054
hookret = virHookCall(VIR_HOOK_DRIVER_QEMU, vm->def->name, - VIR_HOOK_QEMU_OP_PREPARE, VIR_HOOK_SUBOP_BEGIN, NULL, xml); + VIR_HOOK_QEMU_OP_PREPARE, VIR_HOOK_SUBOP_BEGIN, migrateFrom ? "migration-target" : NULL, xml);
The idea is nice, but I don't think it's quite the right implementation. migrateFrom is non-NULL not only for migration, but also for operations like 'virsh restore file' when restoring from a file-based migration stream even though we aren't changing hosts. Rather, we need to thread something through the call chain so that we can tell whether this code was reached from qemu_migrate.c during an actual migration case. In fact, it might be nice to know when 'virsh restore' was in use, separately from migration, separately from a fresh boot, so that we provide more than just '-' or 'migration-target' as the fourth hook argument.
That information is in fact already passed into qemuProcessStart() via the virDomainRunningReason parameter, one of whose possible values is VIR_DOMAIN_RUNNING_MIGRATED Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|