]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/libvirt.git/commitdiff
qemu: Move incoming URI code to qemu_migration
authorJiri Denemark <jdenemar@redhat.com>
Tue, 20 Oct 2015 13:48:33 +0000 (15:48 +0200)
committerJiri Denemark <jdenemar@redhat.com>
Thu, 19 Nov 2015 08:41:23 +0000 (09:41 +0100)
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
src/qemu/qemu_command.c
src/qemu/qemu_command.h
src/qemu/qemu_migration.c
src/qemu/qemu_migration.h
src/qemu/qemu_process.c
tests/qemuxml2argvtest.c

index 9e5cc78a128ff6b2c6ec95b8199a760b0f97856c..91c55cb0a2c68d5e5e81e943bd6282e5f4e332a6 100644 (file)
@@ -9088,45 +9088,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,
index db8204336a09e61d69366ac3d650d9fc3ad00202..3d9f98cb96290b55bfd86d60213a66fe534ebaa9 100644 (file)
@@ -319,10 +319,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__*/
index e6b3484fa3fbf1cfd17c6fb63269d83bbe555c29..4d5b966b2537a4871bbdbef5d9db0d00b60479a4 100644 (file)
@@ -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
index 8175f4bf7fe4f3f60311dc45c88818966e991729..ff4fe30b88f580e66d029a71db749543c3923b06 100644 (file)
@@ -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__ */
index 0bafef927c5a7d276e2c68e9e14197a528920944..fdd640d8de5482b4c2c02b8886e2ed4d6b9f5313 100644 (file)
@@ -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;
     }
 
index e72318fb78754853db895819a7f018bc5f5b2a82..dc8654ed705113e791fe092bb02b3ddfe3305658 100644 (file)
@@ -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",