On 09/10/2015 09:20 AM, Nikolay Shirokovskiy wrote: > Let's put main functionality into params version of virDomainMigrateUnmanaged > as a preparation step for merging it with virDomainMigratePeer2PeerParams. > virDomainMigrateUnmanaged then does nothing more then just adapting arguments. > > Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy@xxxxxxxxxxxxx> > --- > src/libvirt-domain.c | 90 ++++++++++++++++++++++++++++++++----------------- > 1 files changed, 59 insertions(+), 31 deletions(-) > This patch introduces virDomainMigrateUnmanagedParams and makes virDomainMigrateUnmanaged a shim to make the call. Things seem reasonable here w/r/t code motion. Here Coverity is "OK" with the NULL in dconnuri because it's directly tied to the same "if (flags & VIR_MIGRATE_PEER2PEER)" check. John > diff --git a/src/libvirt-domain.c b/src/libvirt-domain.c > index 1631944..79ed9f8 100644 > --- a/src/libvirt-domain.c > +++ b/src/libvirt-domain.c > @@ -3339,21 +3339,32 @@ virDomainMigratePeer2PeerParams(virDomainPtr domain, > } > > static int > -virDomainMigrateUnmanaged(virDomainPtr domain, > - const char *xmlin, > - unsigned int flags, > - const char *dname, > - const char *dconnuri, > - const char *miguri, > - unsigned long long bandwidth) > +virDomainMigrateUnmanagedParams(virDomainPtr domain, > + const char *dconnuri, > + virTypedParameterPtr params, > + int nparams, > + unsigned int flags) > { > const char *uri = NULL; > + const char *miguri = NULL; > + const char *dname = NULL; > + const char *xmlin = NULL; > + unsigned long long bandwidth = 0; > > - VIR_DOMAIN_DEBUG(domain, > - "dconnuri=%s, xmlin=%s, dname=%s, miguri=%s, bandwidth=%llu " > - "flags=%x", > - dconnuri, NULLSTR(xmlin), NULLSTR(dname), NULLSTR(miguri), > - bandwidth, flags); > + if (virTypedParamsGetString(params, nparams, > + VIR_MIGRATE_PARAM_URI, &miguri) < 0 || > + virTypedParamsGetString(params, nparams, > + VIR_MIGRATE_PARAM_DEST_NAME, &dname) < 0 || > + virTypedParamsGetString(params, nparams, > + VIR_MIGRATE_PARAM_DEST_XML, &xmlin) < 0 || > + virTypedParamsGetULLong(params, nparams, > + VIR_MIGRATE_PARAM_BANDWIDTH, &bandwidth) < 0) { > + return -1; > + } > + > + VIR_DOMAIN_DEBUG(domain, "dconnuri=%s, params=%p, nparams=%d, flags=%x", > + dconnuri, params, nparams, flags); > + VIR_TYPED_PARAMS_DEBUG(params, nparams); > > if ((flags & VIR_MIGRATE_PEER2PEER) && virDomainMigrateCheckNotLocal(dconnuri) < 0) > return -1; > @@ -3395,6 +3406,38 @@ virDomainMigrateUnmanaged(virDomainPtr domain, > } > } > > +static int > +virDomainMigrateUnmanaged(virDomainPtr domain, > + const char *xmlin, > + unsigned int flags, > + const char *dname, > + const char *dconnuri, > + const char *miguri, > + unsigned long long bandwidth) > +{ > + int ret = -1; > + virTypedParameterPtr params = NULL; > + int nparams = 0; > + int maxparams = 0; > + > + if (virTypedParamsAddString(¶ms, &nparams, &maxparams, > + VIR_MIGRATE_PARAM_URI, miguri) < 0 || > + virTypedParamsAddString(¶ms, &nparams, &maxparams, > + VIR_MIGRATE_PARAM_DEST_NAME, dname) < 0 || > + virTypedParamsAddString(¶ms, &nparams, &maxparams, > + VIR_MIGRATE_PARAM_DEST_XML, xmlin) < 0 || > + virTypedParamsAddULLong(¶ms, &nparams, &maxparams, > + VIR_MIGRATE_PARAM_BANDWIDTH, bandwidth) < 0) > + goto cleanup; > + > + ret = virDomainMigrateUnmanagedParams(domain, dconnuri, params, nparams, flags); > + > + cleanup: > + virTypedParamsFree(params, nparams); > + > + return ret; > +} > + > /** > * virDomainMigrate: > * @domain: a domain object > @@ -4361,10 +4404,6 @@ virDomainMigrateToURI3(virDomainPtr domain, > VIR_MIGRATE_PARAM_DEST_NAME, > VIR_MIGRATE_PARAM_DEST_XML, > VIR_MIGRATE_PARAM_BANDWIDTH }; > - const char *uri = NULL; > - const char *dname = NULL; > - const char *dxml = NULL; > - unsigned long long bandwidth = 0; > > VIR_DOMAIN_DEBUG(domain, "dconnuri=%s, params=%p, nparms=%u flags=%x", > NULLSTR(dconnuri), params, nparams, flags); > @@ -4383,17 +4422,6 @@ virDomainMigrateToURI3(virDomainPtr domain, > compat = virTypedParamsCheck(params, nparams, compatParams, > ARRAY_CARDINALITY(compatParams)); > > - if (virTypedParamsGetString(params, nparams, > - VIR_MIGRATE_PARAM_URI, &uri) < 0 || > - virTypedParamsGetString(params, nparams, > - VIR_MIGRATE_PARAM_DEST_NAME, &dname) < 0 || > - virTypedParamsGetString(params, nparams, > - VIR_MIGRATE_PARAM_DEST_XML, &dxml) < 0 || > - virTypedParamsGetULLong(params, nparams, > - VIR_MIGRATE_PARAM_BANDWIDTH, &bandwidth) < 0) { > - goto error; > - } > - > if (flags & VIR_MIGRATE_PEER2PEER) { > if (!VIR_DRV_SUPPORTS_FEATURE(domain->conn->driver, domain->conn, > VIR_DRV_FEATURE_MIGRATION_P2P)) { > @@ -4411,8 +4439,8 @@ virDomainMigrateToURI3(virDomainPtr domain, > goto error; > } else if (compat) { > VIR_DEBUG("Using peer2peer migration"); > - if (virDomainMigrateUnmanaged(domain, dxml, flags, dname, > - dconnuri, uri, bandwidth) < 0) > + if (virDomainMigrateUnmanagedParams(domain, dconnuri, params, > + nparams, flags) < 0) > goto error; > } else { > virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED, "%s", > @@ -4439,8 +4467,8 @@ virDomainMigrateToURI3(virDomainPtr domain, > } > > VIR_DEBUG("Using direct migration"); > - if (virDomainMigrateUnmanaged(domain, dxml, flags, > - dname, NULL, uri, bandwidth) < 0) > + if (virDomainMigrateUnmanagedParams(domain, NULL, params, > + nparams, flags) < 0) > goto error; > } > > -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list