if (virDomainMigratePrepareTunnelEnsureACL(dconn, def) < 0)
goto cleanup;
- ret = qemuMigrationPrepareTunnel(driver, dconn,
+ ret = qemuMigrationPrepareTunnel(driver,
NULL, 0, NULL, NULL, /* No cookies in v2 */
st, &def, origname, flags);
* length was not sufficiently large, causing failures
* migrating between old & new libvirtd
*/
- ret = qemuMigrationPrepareDirect(driver, dconn,
+ ret = qemuMigrationPrepareDirect(driver,
NULL, 0, NULL, NULL, /* No cookies */
uri_in, uri_out,
&def, origname, NULL, 0, NULL, 0,
if (virDomainMigratePrepare3EnsureACL(dconn, def) < 0)
goto cleanup;
- ret = qemuMigrationPrepareDirect(driver, dconn,
+ ret = qemuMigrationPrepareDirect(driver,
cookiein, cookieinlen,
cookieout, cookieoutlen,
uri_in, uri_out,
if (virDomainMigratePrepare3ParamsEnsureACL(dconn, def) < 0)
goto cleanup;
- ret = qemuMigrationPrepareDirect(driver, dconn,
+ ret = qemuMigrationPrepareDirect(driver,
cookiein, cookieinlen,
cookieout, cookieoutlen,
uri_in, uri_out,
if (virDomainMigratePrepareTunnel3EnsureACL(dconn, def) < 0)
goto cleanup;
- ret = qemuMigrationPrepareTunnel(driver, dconn,
+ ret = qemuMigrationPrepareTunnel(driver,
cookiein, cookieinlen,
cookieout, cookieoutlen,
st, &def, origname, flags);
if (virDomainMigratePrepareTunnel3ParamsEnsureACL(dconn, def) < 0)
goto cleanup;
- ret = qemuMigrationPrepareTunnel(driver, dconn,
+ ret = qemuMigrationPrepareTunnel(driver,
cookiein, cookieinlen,
cookieout, cookieoutlen,
st, &def, origname, flags);
return -1;
}
- return qemuMigrationConfirm(domain->conn, vm, cookiein, cookieinlen,
+ return qemuMigrationConfirm(domain->conn->privateData, vm, cookiein, cookieinlen,
flags, cancelled);
}
return -1;
}
- return qemuMigrationConfirm(domain->conn, vm, cookiein, cookieinlen,
+ return qemuMigrationConfirm(domain->conn->privateData, vm, cookiein, cookieinlen,
flags, cancelled);
}
/* Returns true if the domain was resumed, false otherwise */
static bool
-qemuMigrationRestoreDomainState(virConnectPtr conn, virDomainObjPtr vm)
+qemuMigrationRestoreDomainState(virQEMUDriverPtr driver, virDomainObjPtr vm)
{
- virQEMUDriverPtr driver = conn->privateData;
qemuDomainObjPrivatePtr priv = vm->privateData;
int reason;
virDomainState state = virDomainObjGetState(vm, &reason);
static int
-qemuMigrationPrecreateStorage(virConnectPtr conn,
- virQEMUDriverPtr driver ATTRIBUTE_UNUSED,
- virDomainObjPtr vm,
+qemuMigrationPrecreateStorage(virDomainObjPtr vm,
qemuMigrationCookieNBDPtr nbd,
size_t nmigrate_disks,
const char **migrate_disks,
{
int ret = -1;
size_t i = 0;
+ virConnectPtr conn;
if (!nbd || !nbd->ndisks)
return 0;
+ if (!(conn = virGetConnectStorage()))
+ return -1;
+
for (i = 0; i < nbd->ndisks; i++) {
virDomainDiskDefPtr disk;
const char *diskSrcPath;
ret = 0;
cleanup:
+ virObjectUnref(conn);
return ret;
}
static int
qemuMigrationPrepareAny(virQEMUDriverPtr driver,
- virConnectPtr dconn,
const char *cookiein,
int cookieinlen,
char **cookieout,
goto cleanup;
}
- if (qemuMigrationPrecreateStorage(dconn, driver, vm, mig->nbd,
+ if (qemuMigrationPrecreateStorage(vm, mig->nbd,
nmigrate_disks, migrate_disks,
!!(flags & VIR_MIGRATE_NON_SHARED_INC)) < 0)
goto cleanup;
if (qemuProcessPrepareHost(driver, vm, startFlags) < 0)
goto stopjob;
- rv = qemuProcessLaunch(dconn, driver, vm, QEMU_ASYNC_JOB_MIGRATION_IN,
+ rv = qemuProcessLaunch(NULL, driver, vm, QEMU_ASYNC_JOB_MIGRATION_IN,
incoming, NULL,
VIR_NETDEV_VPORT_PROFILE_OP_MIGRATE_IN_START,
startFlags);
*/
int
qemuMigrationPrepareTunnel(virQEMUDriverPtr driver,
- virConnectPtr dconn,
const char *cookiein,
int cookieinlen,
char **cookieout,
qemuMigrationCompressionPtr compression = NULL;
int ret;
- VIR_DEBUG("driver=%p, dconn=%p, cookiein=%s, cookieinlen=%d, "
+ VIR_DEBUG("driver=%p, cookiein=%s, cookieinlen=%d, "
"cookieout=%p, cookieoutlen=%p, st=%p, def=%p, "
"origname=%s, flags=0x%lx",
- driver, dconn, NULLSTR(cookiein), cookieinlen,
+ driver, NULLSTR(cookiein), cookieinlen,
cookieout, cookieoutlen, st, *def, origname, flags);
if (st == NULL) {
if (!(compression = qemuMigrationCompressionParse(NULL, 0, flags)))
return -1;
- ret = qemuMigrationPrepareAny(driver, dconn, cookiein, cookieinlen,
+ ret = qemuMigrationPrepareAny(driver, cookiein, cookieinlen,
cookieout, cookieoutlen, def, origname,
st, NULL, 0, false, NULL, 0, NULL, 0,
compression, flags);
int
qemuMigrationPrepareDirect(virQEMUDriverPtr driver,
- virConnectPtr dconn,
const char *cookiein,
int cookieinlen,
char **cookieout,
virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
const char *migrateHost = cfg->migrateHost;
- VIR_DEBUG("driver=%p, dconn=%p, cookiein=%s, cookieinlen=%d, "
+ VIR_DEBUG("driver=%p, cookiein=%s, cookieinlen=%d, "
"cookieout=%p, cookieoutlen=%p, uri_in=%s, uri_out=%p, "
"def=%p, origname=%s, listenAddress=%s, "
"nmigrate_disks=%zu, migrate_disks=%p, nbdPort=%d, flags=0x%lx",
- driver, dconn, NULLSTR(cookiein), cookieinlen,
+ driver, NULLSTR(cookiein), cookieinlen,
cookieout, cookieoutlen, NULLSTR(uri_in), uri_out,
*def, origname, NULLSTR(listenAddress),
nmigrate_disks, migrate_disks, nbdPort, flags);
if (*uri_out)
VIR_DEBUG("Generated uri_out=%s", *uri_out);
- ret = qemuMigrationPrepareAny(driver, dconn, cookiein, cookieinlen,
+ ret = qemuMigrationPrepareAny(driver, cookiein, cookieinlen,
cookieout, cookieoutlen, def, origname,
NULL, uri ? uri->scheme : "tcp",
port, autoPort, listenAddress,
static int
qemuMigrationConfirmPhase(virQEMUDriverPtr driver,
- virConnectPtr conn,
virDomainObjPtr vm,
const char *cookiein,
int cookieinlen,
qemuDomainObjPrivatePtr priv = vm->privateData;
qemuDomainJobInfoPtr jobInfo = NULL;
- VIR_DEBUG("driver=%p, conn=%p, vm=%p, cookiein=%s, cookieinlen=%d, "
+ VIR_DEBUG("driver=%p, vm=%p, cookiein=%s, cookieinlen=%d, "
"flags=0x%x, retcode=%d",
- driver, conn, vm, NULLSTR(cookiein), cookieinlen,
+ driver, vm, NULLSTR(cookiein), cookieinlen,
flags, retcode);
virCheckFlags(QEMU_MIGRATION_FLAGS, -1);
if (virDomainObjGetState(vm, &reason) == VIR_DOMAIN_PAUSED &&
reason == VIR_DOMAIN_PAUSED_POSTCOPY) {
qemuMigrationPostcopyFailed(driver, vm);
- } else if (qemuMigrationRestoreDomainState(conn, vm)) {
+ } else if (qemuMigrationRestoreDomainState(driver, vm)) {
event = virDomainEventLifecycleNewFromObj(vm,
VIR_DOMAIN_EVENT_RESUMED,
VIR_DOMAIN_EVENT_RESUMED_MIGRATED);
}
int
-qemuMigrationConfirm(virConnectPtr conn,
+qemuMigrationConfirm(virQEMUDriverPtr driver,
virDomainObjPtr vm,
const char *cookiein,
int cookieinlen,
unsigned int flags,
int cancelled)
{
- virQEMUDriverPtr driver = conn->privateData;
qemuMigrationJobPhase phase;
virQEMUDriverConfigPtr cfg = NULL;
int ret = -1;
virCloseCallbacksUnset(driver->closeCallbacks, vm,
qemuMigrationCleanup);
- ret = qemuMigrationConfirmPhase(driver, conn, vm,
+ ret = qemuMigrationConfirmPhase(driver, vm,
cookiein, cookieinlen,
flags, cancelled);
* instead of client app context & also adding in tunnel
* handling */
static int doPeer2PeerMigrate2(virQEMUDriverPtr driver,
- virConnectPtr sconn ATTRIBUTE_UNUSED,
+ virConnectPtr sconn,
virConnectPtr dconn,
virDomainObjPtr vm,
const char *dconnuri,
cookieinlen = cookieoutlen;
cookieout = NULL;
cookieoutlen = 0;
- ret = qemuMigrationConfirmPhase(driver, sconn, vm,
+ ret = qemuMigrationConfirmPhase(driver, vm,
cookiein, cookieinlen,
flags, cancelled);
/* If Confirm3 returns -1, there's nothing more we can
if (!v3proto && ret < 0)
qemuMigrationReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT);
- if (qemuMigrationRestoreDomainState(conn, vm)) {
+ if (qemuMigrationRestoreDomainState(driver, vm)) {
event = virDomainEventLifecycleNewFromObj(vm,
VIR_DOMAIN_EVENT_RESUMED,
VIR_DOMAIN_EVENT_RESUMED_MIGRATED);
nmigrate_disks, migrate_disks, compression, migParams);
if (ret < 0) {
- if (qemuMigrationRestoreDomainState(conn, vm)) {
+ if (qemuMigrationRestoreDomainState(driver, vm)) {
event = virDomainEventLifecycleNewFromObj(vm,
VIR_DOMAIN_EVENT_RESUMED,
VIR_DOMAIN_EVENT_RESUMED_MIGRATED);