Signed-off-by: Jiri Denemark <jdenemar(a)redhat.com>
---
src/qemu/qemu_command.c | 39 ---------------------------------------
src/qemu/qemu_command.h | 5 -----
src/qemu/qemu_migration.c | 40 ++++++++++++++++++++++++++++++++++++++++
src/qemu/qemu_migration.h | 6 ++++++
src/qemu/qemu_process.c | 4 ++--
tests/qemuxml2argvtest.c | 5 +++--
6 files changed, 51 insertions(+), 48 deletions(-)
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 41a212f..d196417 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -9136,45 +9136,6 @@ qemuBuildTPMCommandLine(virDomainDefPtr def,
return 0;
}
-int
-qemuBuildIncomingCheckProtocol(virQEMUCapsPtr qemuCaps,
- const char *migrateFrom)
-{
- if (STRPREFIX(migrateFrom, "rdma")) {
- if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_MIGRATE_RDMA)) {
- virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
- _("incoming RDMA migration is not supported "
- "with this QEMU binary"));
- return -1;
- }
- } else if (!STRPREFIX(migrateFrom, "tcp") &&
- !STRPREFIX(migrateFrom, "exec") &&
- !STRPREFIX(migrateFrom, "fd") &&
- !STRPREFIX(migrateFrom, "unix") &&
- STRNEQ(migrateFrom, "stdio")) {
- virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
- _("unknown migration protocol"));
- return -1;
- }
-
- return 0;
-}
-
-
-char *
-qemuBuildIncomingURI(const char *migrateFrom,
- int migrateFd)
-{
- char *uri = NULL;
-
- if (STREQ(migrateFrom, "stdio"))
- ignore_value(virAsprintf(&uri, "fd:%d", migrateFd));
- else
- ignore_value(VIR_STRDUP(uri, migrateFrom));
-
- return uri;
-}
-
qemuBuildCommandLineCallbacks buildCommandLineCallbacks = {
.qemuGetSCSIDeviceSgName = virSCSIDeviceGetSgName,
diff --git a/src/qemu/qemu_command.h b/src/qemu/qemu_command.h
index 5c65008..7027402 100644
--- a/src/qemu/qemu_command.h
+++ b/src/qemu/qemu_command.h
@@ -321,10 +321,5 @@ bool qemuCheckCCWS390AddressSupport(virDomainDefPtr def,
virDomainDeviceInfo info,
virQEMUCapsPtr qemuCaps,
const char *devicename);
-int qemuBuildIncomingCheckProtocol(virQEMUCapsPtr qemuCaps,
- const char *migrateFrom);
-
-char *qemuBuildIncomingURI(const char *migrateFrom,
- int migrateFd);
#endif /* __QEMU_COMMAND_H__*/
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index e6b3484..4d5b966 100644
--- a/src/qemu/qemu_migration.c
+++ b/src/qemu/qemu_migration.c
@@ -2911,6 +2911,46 @@ qemuDomainMigrateOPDRelocate(virQEMUDriverPtr driver
ATTRIBUTE_UNUSED,
}
+int
+qemuMigrationCheckIncoming(virQEMUCapsPtr qemuCaps,
+ const char *migrateFrom)
+{
+ if (STRPREFIX(migrateFrom, "rdma")) {
+ if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_MIGRATE_RDMA)) {
+ virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
+ _("incoming RDMA migration is not supported "
+ "with this QEMU binary"));
+ return -1;
+ }
+ } else if (!STRPREFIX(migrateFrom, "tcp") &&
+ !STRPREFIX(migrateFrom, "exec") &&
+ !STRPREFIX(migrateFrom, "fd") &&
+ !STRPREFIX(migrateFrom, "unix") &&
+ STRNEQ(migrateFrom, "stdio")) {
+ virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
+ _("unknown migration protocol"));
+ return -1;
+ }
+
+ return 0;
+}
+
+
+char *
+qemuMigrationIncomingURI(const char *migrateFrom,
+ int migrateFd)
+{
+ char *uri = NULL;
+
+ if (STREQ(migrateFrom, "stdio"))
+ ignore_value(virAsprintf(&uri, "fd:%d", migrateFd));
+ else
+ ignore_value(VIR_STRDUP(uri, migrateFrom));
+
+ return uri;
+}
+
+
/* This is called for outgoing non-p2p migrations when a connection to the
* client which initiated the migration was closed but we were waiting for it
* to follow up with the next phase, that is, in between
diff --git a/src/qemu/qemu_migration.h b/src/qemu/qemu_migration.h
index 8175f4b..ff4fe30 100644
--- a/src/qemu/qemu_migration.h
+++ b/src/qemu/qemu_migration.h
@@ -199,4 +199,10 @@ void qemuMigrationErrorSave(virQEMUDriverPtr driver,
void qemuMigrationErrorReport(virQEMUDriverPtr driver,
const char *name);
+int qemuMigrationCheckIncoming(virQEMUCapsPtr qemuCaps,
+ const char *migrateFrom);
+
+char *qemuMigrationIncomingURI(const char *migrateFrom,
+ int migrateFd);
+
#endif /* __QEMU_MIGRATION_H__ */
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 0bafef9..fdd640d 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -4514,10 +4514,10 @@ int qemuProcessStart(virConnectPtr conn,
}
if (migrateFrom) {
- if (qemuBuildIncomingCheckProtocol(priv->qemuCaps, migrateFrom) < 0)
+ if (qemuMigrationCheckIncoming(priv->qemuCaps, migrateFrom) < 0)
goto error;
- if (!(migrateURI = qemuBuildIncomingURI(migrateFrom, stdin_fd)))
+ if (!(migrateURI = qemuMigrationIncomingURI(migrateFrom, stdin_fd)))
goto error;
}
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index 50a7dff..e5c1c4f 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -17,6 +17,7 @@
# include "qemu/qemu_capabilities.h"
# include "qemu/qemu_command.h"
# include "qemu/qemu_domain.h"
+# include "qemu/qemu_migration.h"
# include "datatypes.h"
# include "conf/storage_conf.h"
# include "cpu/cpu_map.h"
@@ -410,8 +411,8 @@ testCompareXMLToArgvHelper(const void *data)
char *migrateURI = NULL;
if (info->migrateFrom &&
- !(migrateURI = qemuBuildIncomingURI(info->migrateFrom,
- info->migrateFd)))
+ !(migrateURI = qemuMigrationIncomingURI(info->migrateFrom,
+ info->migrateFd)))
goto cleanup;
if (virAsprintf(&xml, "%s/qemuxml2argvdata/qemuxml2argv-%s.xml",
--
2.6.3