"dconn=%p, flags=0x%lx, dname=%s, uri=%s, bandwidth=%lu",
dconn, flags, NULLSTR(dname), NULLSTR(uri), bandwidth);
+ virCheckNonEmptyOptStringArgReturn(dname, NULL);
+
ret = virDomainGetInfo(domain, &info);
if (ret == 0 && info.state == VIR_DOMAIN_PAUSED)
flags |= VIR_MIGRATE_PAUSED;
"dconn=%p, flags=0x%lx, dname=%s, uri=%s, bandwidth=%lu",
dconn, flags, NULLSTR(dname), NULLSTR(uri), bandwidth);
+ virCheckNonEmptyOptStringArgReturn(dname, NULL);
+
/* Prepare the migration.
*
* The destination host may return a cookie, or leave cookie as
bandwidth, params, nparams, useParams, flags);
VIR_TYPED_PARAMS_DEBUG(params, nparams);
+ virCheckNonEmptyOptStringArgReturn(dname, NULL);
+
if ((!useParams &&
(!domain->conn->driver->domainMigrateBegin3 ||
!domain->conn->driver->domainMigratePerform3 ||
return -1;
}
+ virCheckNonEmptyOptStringArgReturn(dname, -1);
+
if (flags & VIR_MIGRATE_PEER2PEER) {
if (miguri) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
return -1;
}
+ virCheckNonEmptyOptStringArgReturn(dname, -1);
+
return domain->conn->driver->domainMigratePerform3
(domain, xmlin, NULL, 0, NULL, NULL, dconnuri,
miguri, flags, dname, bandwidth);
virCheckConnectGoto(dconn, error);
virCheckReadOnlyGoto(dconn->flags, error);
+ virCheckNonEmptyOptStringArgReturn(dname, NULL);
+
VIR_EXCLUSIVE_FLAGS_GOTO(VIR_MIGRATE_NON_SHARED_DISK,
VIR_MIGRATE_NON_SHARED_INC,
error);
virCheckConnectGoto(dconn, error);
virCheckReadOnlyGoto(dconn->flags, error);
+ virCheckNonEmptyOptStringArgReturn(dname, NULL);
+
VIR_EXCLUSIVE_FLAGS_GOTO(VIR_MIGRATE_NON_SHARED_DISK,
VIR_MIGRATE_NON_SHARED_INC,
error);
goto error;
}
+ 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;
+ }
+
+ virCheckNonEmptyOptStringArgReturn(dname, NULL);
+
if (flags & VIR_MIGRATE_OFFLINE) {
rc = VIR_DRV_SUPPORTS_FEATURE(domain->conn->driver, domain->conn,
VIR_DRV_FEATURE_MIGRATION_OFFLINE);
goto error;
}
- 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;
- }
-
rc_src = VIR_DRV_SUPPORTS_FEATURE(domain->conn->driver, domain->conn,
VIR_DRV_FEATURE_MIGRATION_V3);
if (rc_src < 0)
virCheckDomainReturn(domain, -1);
virCheckReadOnlyGoto(domain->conn->flags, error);
virCheckNonNullArgGoto(duri, error);
+ virCheckNonEmptyOptStringArgGoto(dname, error);
VIR_EXCLUSIVE_FLAGS_GOTO(VIR_MIGRATE_TUNNELLED,
VIR_MIGRATE_PARALLEL,
virCheckDomainReturn(domain, -1);
virCheckReadOnlyGoto(domain->conn->flags, error);
+ virCheckNonEmptyOptStringArgGoto(dname, error);
+
VIR_EXCLUSIVE_FLAGS_GOTO(VIR_MIGRATE_TUNNELLED,
VIR_MIGRATE_PARALLEL,
error);
virCheckConnectReturn(dconn, -1);
virCheckReadOnlyGoto(dconn->flags, error);
+ virCheckNonEmptyOptStringArgGoto(dname, error);
if (dconn->driver->domainMigratePrepare) {
int ret;
conn = domain->conn;
virCheckReadOnlyGoto(conn->flags, error);
+ virCheckNonEmptyOptStringArgGoto(dname, error);
if (conn->driver->domainMigratePerform) {
int ret;
virCheckConnectReturn(dconn, NULL);
virCheckReadOnlyGoto(dconn->flags, error);
+ virCheckNonEmptyOptStringArgGoto(dname, error);
if (dconn->driver->domainMigrateFinish) {
virDomainPtr ret;
virCheckConnectReturn(dconn, -1);
virCheckReadOnlyGoto(dconn->flags, error);
+ virCheckNonEmptyOptStringArgGoto(dname, error);
if (dconn->driver->domainMigratePrepare2) {
int ret;
virCheckConnectReturn(dconn, NULL);
virCheckReadOnlyGoto(dconn->flags, error);
+ virCheckNonEmptyOptStringArgGoto(dname, error);
if (dconn->driver->domainMigrateFinish2) {
virDomainPtr ret;
virCheckConnectReturn(conn, -1);
virCheckReadOnlyGoto(conn->flags, error);
+ virCheckNonEmptyOptStringArgGoto(dname, error);
if (conn != st->conn) {
virReportInvalidArg(conn, "%s",
conn = domain->conn;
virCheckReadOnlyGoto(conn->flags, error);
+ virCheckNonEmptyOptStringArgGoto(dname, error);
if (conn->driver->domainMigrateBegin3) {
char *xml;
virCheckConnectReturn(dconn, -1);
virCheckReadOnlyGoto(dconn->flags, error);
+ virCheckNonEmptyOptStringArgGoto(dname, error);
if (dconn->driver->domainMigratePrepare3) {
int ret;
virCheckConnectReturn(conn, -1);
virCheckReadOnlyGoto(conn->flags, error);
+ virCheckNonEmptyOptStringArgGoto(dname, error);
if (conn != st->conn) {
virReportInvalidArg(conn, "%s",
conn = domain->conn;
virCheckReadOnlyGoto(conn->flags, error);
+ virCheckNonEmptyOptStringArgGoto(dname, error);
if (conn->driver->domainMigratePerform3) {
int ret;
virCheckConnectReturn(dconn, NULL);
virCheckReadOnlyGoto(dconn->flags, error);
+ virCheckNonEmptyOptStringArgGoto(dname, error);
if (dconn->driver->domainMigrateFinish3) {
virDomainPtr ret;
unsigned int flags)
{
virConnectPtr conn;
+ const char *dname = NULL;
VIR_DOMAIN_DEBUG(domain, "params=%p, nparams=%d, "
"cookieout=%p, cookieoutlen=%p, flags=0x%x",
virCheckReadOnlyGoto(conn->flags, error);
+ if (virTypedParamsGetString(params, nparams,
+ VIR_MIGRATE_PARAM_DEST_NAME, &dname) < 0)
+ goto error;
+
+ virCheckNonEmptyOptStringArgGoto(dname, error);
+
if (conn->driver->domainMigrateBegin3Params) {
char *xml;
xml = conn->driver->domainMigrateBegin3Params(domain, params, nparams,
char **uri_out,
unsigned int flags)
{
+ const char *dname = NULL;
+
VIR_DEBUG("dconn=%p, params=%p, nparams=%d, cookiein=%p, cookieinlen=%d, "
"cookieout=%p, cookieoutlen=%p, uri_out=%p, flags=0x%x",
dconn, params, nparams, cookiein, cookieinlen,
virCheckConnectReturn(dconn, -1);
virCheckReadOnlyGoto(dconn->flags, error);
+ if (virTypedParamsGetString(params, nparams,
+ VIR_MIGRATE_PARAM_DEST_NAME, &dname) < 0)
+ goto error;
+
+ virCheckNonEmptyOptStringArgGoto(dname, error);
+
if (dconn->driver->domainMigratePrepare3Params) {
int ret;
ret = dconn->driver->domainMigratePrepare3Params(dconn, params, nparams,
int *cookieoutlen,
unsigned int flags)
{
+ const char *dname = NULL;
+
VIR_DEBUG("conn=%p, stream=%p, params=%p, nparams=%d, cookiein=%p, "
"cookieinlen=%d, cookieout=%p, cookieoutlen=%p, flags=0x%x",
conn, st, params, nparams, cookiein, cookieinlen,
goto error;
}
+ if (virTypedParamsGetString(params, nparams,
+ VIR_MIGRATE_PARAM_DEST_NAME, &dname) < 0)
+ goto error;
+
+ virCheckNonEmptyOptStringArgGoto(dname, error);
+
if (conn->driver->domainMigratePrepareTunnel3Params) {
int rv;
rv = conn->driver->domainMigratePrepareTunnel3Params(
unsigned int flags)
{
virConnectPtr conn;
+ const char *dname = NULL;
VIR_DOMAIN_DEBUG(domain, "dconnuri=%s, params=%p, nparams=%d, cookiein=%p, "
"cookieinlen=%d, cookieout=%p, cookieoutlen=%p, flags=0x%x",
virCheckReadOnlyGoto(conn->flags, error);
+ if (virTypedParamsGetString(params, nparams,
+ VIR_MIGRATE_PARAM_DEST_NAME, &dname) < 0)
+ goto error;
+
+ virCheckNonEmptyOptStringArgGoto(dname, error);
+
if (conn->driver->domainMigratePerform3Params) {
int ret;
ret = conn->driver->domainMigratePerform3Params(
unsigned int flags,
int cancelled)
{
+ const char *dname = NULL;
+
VIR_DEBUG("dconn=%p, params=%p, nparams=%d, cookiein=%p, cookieinlen=%d, "
"cookieout=%p, cookieoutlen=%p, flags=0x%x, cancelled=%d",
dconn, params, nparams, cookiein, cookieinlen, cookieout,
virCheckConnectReturn(dconn, NULL);
virCheckReadOnlyGoto(dconn->flags, error);
+ if (virTypedParamsGetString(params, nparams,
+ VIR_MIGRATE_PARAM_DEST_NAME, &dname) < 0)
+ goto error;
+
+ virCheckNonEmptyOptStringArgGoto(dname, error);
+
if (dconn->driver->domainMigrateFinish3Params) {
virDomainPtr ret;
ret = dconn->driver->domainMigrateFinish3Params(
int cancelled)
{
virConnectPtr conn;
+ const char *dname = NULL;
VIR_DOMAIN_DEBUG(domain, "params=%p, nparams=%d, cookiein=%p, "
"cookieinlen=%d, flags=0x%x, cancelled=%d",
virCheckReadOnlyGoto(conn->flags, error);
+ if (virTypedParamsGetString(params, nparams,
+ VIR_MIGRATE_PARAM_DEST_NAME, &dname) < 0)
+ goto error;
+
+ virCheckNonEmptyOptStringArgGoto(dname, error);
+
if (conn->driver->domainMigrateConfirm3Params) {
int ret;
ret = conn->driver->domainMigrateConfirm3Params(