On 07/13/2011 06:15 AM, Matthias Bolte wrote:
2011/7/8 Eric Blake <eblake(a)redhat.com>:
> Silently ignored flags get in the way of new features that
> use those flags.
>
> @@ -3829,12 +3837,14 @@ esxDomainMigratePrepare(virConnectPtr
dconn,
> int *cookielen ATTRIBUTE_UNUSED,
> const char *uri_in ATTRIBUTE_UNUSED,
> char **uri_out,
> - unsigned long flags ATTRIBUTE_UNUSED,
> + unsigned long flags,
> const char *dname ATTRIBUTE_UNUSED,
> unsigned long resource ATTRIBUTE_UNUSED)
> {
> esxPrivate *priv = dconn->privateData;
>
> + virCheckFlags(0, -1);
> +
Actually this is wrong. This was implemented before libvirt knew about
VIR_MIGRATE_PERSIST_DEST
VIR_MIGRATE_UNDEFINE_SOURCE
But an ESX migration has exactly the semantic implied by those two
flags. So actually those two flags have to be passed always. I should
have fixed that ages ago.
So, do we fix that now, or do we push this patch as-is (with the
semantic change of rejecting the flags that are currently useful) along
with your cleanup as a followup (with requiring the two flags)?
I'm leaning a bit towards the latter (fix the flags to require the bits
that must be present), so I'll post a v2.
Also if the domain is running ESX does a
live migration always, so VIR_MIGRATE_LIVE has to passed too. ESX
supports migration of inactive domains. It seems that migration in
libvirt is only meant for active domains, but this isn't documented
well.
Right now, qemu domains only get migrated if the domain is active, but I
could totally see enhancing that to support migration of persistent but
inactive domains (and it's a lot simpler - dumpxml on the source, and
define on the destination, without having to do any handshaking between
qemu processes). In fact, I'd love that as a feature addition!
--
Eric Blake eblake(a)redhat.com +1-801-349-2682
Libvirt virtualization library
http://libvirt.org