On Fri, Oct 02, 2015 at 10:52:51 +0300, Nikolay Shirokovskiy wrote: > virDomainMigrateUnmanagedParams is not a good candidate for this functionality > as it is used by migrate family functions too and its have its own checks that > are superset of extracted and we don't need to check twice. > > Actually name of the function is slightly misleading as there is also a check > for consistensy of flags parameter alone. So it could be refactored further and > reused by all migrate functions but for now let it be a matter of a different > patchset. > > It is *not* a pure refactoring patch as it introduces offline check for older > versions. Looks like it must be done that way and no one will be broken too. > > Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy@xxxxxxxxxxxxx> > --- > src/libvirt-domain.c | 165 ++++++++++++++++++++----------------------------- > 1 files changed, 67 insertions(+), 98 deletions(-) > > diff --git a/src/libvirt-domain.c b/src/libvirt-domain.c > index 2778a15..35dfa3f 100644 > --- a/src/libvirt-domain.c > +++ b/src/libvirt-domain.c > @@ -4139,6 +4139,46 @@ virDomainMigrate3(virDomainPtr domain, > } > > > +static > +int virDomainMigrateUnmanagedCheckCompat(virDomainPtr domain, > + unsigned int flags) > +{ > + VIR_EXCLUSIVE_FLAGS_RET(VIR_MIGRATE_NON_SHARED_DISK, > + VIR_MIGRATE_NON_SHARED_INC, > + -1); > + > + if (flags & VIR_MIGRATE_OFFLINE && > + !VIR_DRV_SUPPORTS_FEATURE(domain->conn->driver, domain->conn, > + VIR_DRV_FEATURE_MIGRATION_OFFLINE)) { > + virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED, "%s", > + _("offline migration is not supported by " > + "the source host")); > + return -1; > + } > + > + if (flags & VIR_MIGRATE_PEER2PEER) { > + if (!VIR_DRV_SUPPORTS_FEATURE(domain->conn->driver, domain->conn, > + VIR_DRV_FEATURE_MIGRATION_P2P)) { > + virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED, "%s", > + _("p2p migration is not supported by " > + "the source host")); > + return -1; > + } > + } else { > + if (!VIR_DRV_SUPPORTS_FEATURE(domain->conn->driver, domain->conn, > + VIR_DRV_FEATURE_MIGRATION_DIRECT)) { > + virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED, "%s", > + _("direct migration is not supported by " > + "the source host")); > + return -1; > + } > + } > + > + One empty line would be enough :-) > + return 0; > +} Jirka -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list