From: Peter Krempa <[email protected]>

Refactor the code to use the new helper for validating migration params
and making them later available for introspection.

Signed-off-by: Peter Krempa <[email protected]>
---
 src/qemu/qemu_driver.c    | 12 ++++++------
 src/qemu/qemu_migration.c | 29 +++++++++++++++++++++++++++++
 src/qemu/qemu_migration.h | 32 +-------------------------------
 3 files changed, 36 insertions(+), 37 deletions(-)

diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 38f87a4bff..f01146655e 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -11143,7 +11143,7 @@ qemuDomainMigrateBegin3Params(virDomainPtr domain,
     virDomainObj *vm;

     virCheckFlags(QEMU_MIGRATION_FLAGS, NULL);
-    if (virTypedParamsValidate(params, nparams, QEMU_MIGRATION_PARAMETERS) < 0)
+    if (virTypedParamsValidateTemplate(params, nparams, 
qemuMigrationParametersValidation) < 0)
         return NULL;

     if (virTypedParamsGetString(params, nparams,
@@ -11252,7 +11252,7 @@ qemuDomainMigratePrepare3Params(virConnectPtr dconn,
     const char *nbdURI = NULL;

     virCheckFlags(QEMU_MIGRATION_FLAGS, -1);
-    if (virTypedParamsValidate(params, nparams, QEMU_MIGRATION_PARAMETERS) < 0)
+    if (virTypedParamsValidateTemplate(params, nparams, 
qemuMigrationParametersValidation) < 0)
         return -1;

     if (virTypedParamsGetString(params, nparams,
@@ -11390,7 +11390,7 @@ qemuDomainMigratePrepareTunnel3Params(virConnectPtr 
dconn,
     g_autoptr(qemuMigrationParams) migParams = NULL;

     virCheckFlags(QEMU_MIGRATION_FLAGS, -1);
-    if (virTypedParamsValidate(params, nparams, QEMU_MIGRATION_PARAMETERS) < 0)
+    if (virTypedParamsValidateTemplate(params, nparams, 
qemuMigrationParametersValidation) < 0)
         return -1;

     if (virTypedParamsGetString(params, nparams,
@@ -11494,7 +11494,7 @@ qemuDomainMigratePerform3Params(virDomainPtr dom,
     int ret = -1;

     virCheckFlags(QEMU_MIGRATION_FLAGS, -1);
-    if (virTypedParamsValidate(params, nparams, QEMU_MIGRATION_PARAMETERS) < 0)
+    if (virTypedParamsValidateTemplate(params, nparams, 
qemuMigrationParametersValidation) < 0)
         return ret;

     if (virTypedParamsGetString(params, nparams,
@@ -11640,7 +11640,7 @@ qemuDomainMigrateFinish3Params(virConnectPtr dconn,
     const char *dname = NULL;

     virCheckFlags(QEMU_MIGRATION_FLAGS, NULL);
-    if (virTypedParamsValidate(params, nparams, QEMU_MIGRATION_PARAMETERS) < 0)
+    if (virTypedParamsValidateTemplate(params, nparams, 
qemuMigrationParametersValidation) < 0)
         return NULL;

     if (virTypedParamsGetString(params, nparams,
@@ -11709,7 +11709,7 @@ qemuDomainMigrateConfirm3Params(virDomainPtr domain,

     virCheckFlags(QEMU_MIGRATION_FLAGS, -1);

-    if (virTypedParamsValidate(params, nparams, QEMU_MIGRATION_PARAMETERS) < 0)
+    if (virTypedParamsValidateTemplate(params, nparams, 
qemuMigrationParametersValidation) < 0)
         return -1;

     if (!(vm = qemuDomainObjFromDomain(domain)))
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index ffffeea75c..bc06a100e4 100644
--- a/src/qemu/qemu_migration.c
+++ b/src/qemu/qemu_migration.c
@@ -84,6 +84,35 @@ VIR_ENUM_IMPL(qemuMigrationJobPhase,
               "finish_resume",
 );

+const virTypedParamValidationTemplate qemuMigrationParametersValidation[] = {
+    { VIR_MIGRATE_PARAM_URI, VIR_TYPED_PARAM_STRING },
+    { VIR_MIGRATE_PARAM_DEST_NAME, VIR_TYPED_PARAM_STRING },
+    { VIR_MIGRATE_PARAM_DEST_XML, VIR_TYPED_PARAM_STRING },
+    { VIR_MIGRATE_PARAM_BANDWIDTH, VIR_TYPED_PARAM_ULLONG },
+    { VIR_MIGRATE_PARAM_GRAPHICS_URI, VIR_TYPED_PARAM_STRING },
+    { VIR_MIGRATE_PARAM_LISTEN_ADDRESS, VIR_TYPED_PARAM_STRING },
+    { VIR_MIGRATE_PARAM_MIGRATE_DISKS, VIR_TYPED_PARAM_STRING | 
VIR_TYPED_PARAM_MULTIPLE },
+    { VIR_MIGRATE_PARAM_MIGRATE_DISKS_DETECT_ZEROES, VIR_TYPED_PARAM_STRING | 
VIR_TYPED_PARAM_MULTIPLE },
+    { VIR_MIGRATE_PARAM_MIGRATE_DISKS_TARGET_ZERO, VIR_TYPED_PARAM_STRING | 
VIR_TYPED_PARAM_MULTIPLE },
+    { VIR_MIGRATE_PARAM_DISKS_PORT, VIR_TYPED_PARAM_INT },
+    { VIR_MIGRATE_PARAM_COMPRESSION, VIR_TYPED_PARAM_STRING | 
VIR_TYPED_PARAM_MULTIPLE },
+    { VIR_MIGRATE_PARAM_COMPRESSION_MT_LEVEL, VIR_TYPED_PARAM_INT },
+    { VIR_MIGRATE_PARAM_COMPRESSION_MT_THREADS, VIR_TYPED_PARAM_INT },
+    { VIR_MIGRATE_PARAM_COMPRESSION_MT_DTHREADS, VIR_TYPED_PARAM_INT },
+    { VIR_MIGRATE_PARAM_COMPRESSION_XBZRLE_CACHE, VIR_TYPED_PARAM_ULLONG },
+    { VIR_MIGRATE_PARAM_PERSIST_XML, VIR_TYPED_PARAM_STRING },
+    { VIR_MIGRATE_PARAM_AUTO_CONVERGE_INITIAL, VIR_TYPED_PARAM_INT },
+    { VIR_MIGRATE_PARAM_AUTO_CONVERGE_INCREMENT, VIR_TYPED_PARAM_INT },
+    { VIR_MIGRATE_PARAM_BANDWIDTH_POSTCOPY, VIR_TYPED_PARAM_ULLONG },
+    { VIR_MIGRATE_PARAM_PARALLEL_CONNECTIONS, VIR_TYPED_PARAM_INT },
+    { VIR_MIGRATE_PARAM_COMPRESSION_ZLIB_LEVEL, VIR_TYPED_PARAM_INT },
+    { VIR_MIGRATE_PARAM_COMPRESSION_ZSTD_LEVEL, VIR_TYPED_PARAM_INT },
+    { VIR_MIGRATE_PARAM_TLS_DESTINATION, VIR_TYPED_PARAM_STRING },
+    { VIR_MIGRATE_PARAM_DISKS_URI, VIR_TYPED_PARAM_STRING },
+    { VIR_MIGRATE_PARAM_BANDWIDTH_AVAIL_SWITCHOVER, VIR_TYPED_PARAM_ULLONG },
+    { "", 0 }
+};
+

 static bool ATTRIBUTE_NONNULL(1)
 qemuMigrationJobIsAllowed(virDomainObj *vm)
diff --git a/src/qemu/qemu_migration.h b/src/qemu/qemu_migration.h
index 59f32d2ebf..7e9410e1f7 100644
--- a/src/qemu/qemu_migration.h
+++ b/src/qemu/qemu_migration.h
@@ -65,38 +65,8 @@
      0)

 /* All supported migration parameters and their types. */
-#define QEMU_MIGRATION_PARAMETERS \
-    VIR_MIGRATE_PARAM_URI,              VIR_TYPED_PARAM_STRING, \
-    VIR_MIGRATE_PARAM_DEST_NAME,        VIR_TYPED_PARAM_STRING, \
-    VIR_MIGRATE_PARAM_DEST_XML,         VIR_TYPED_PARAM_STRING, \
-    VIR_MIGRATE_PARAM_BANDWIDTH,        VIR_TYPED_PARAM_ULLONG, \
-    VIR_MIGRATE_PARAM_GRAPHICS_URI,     VIR_TYPED_PARAM_STRING, \
-    VIR_MIGRATE_PARAM_LISTEN_ADDRESS,   VIR_TYPED_PARAM_STRING, \
-    VIR_MIGRATE_PARAM_MIGRATE_DISKS,    VIR_TYPED_PARAM_STRING | \
-                                        VIR_TYPED_PARAM_MULTIPLE, \
-    VIR_MIGRATE_PARAM_MIGRATE_DISKS_DETECT_ZEROES, VIR_TYPED_PARAM_STRING | \
-                                                   VIR_TYPED_PARAM_MULTIPLE, \
-    VIR_MIGRATE_PARAM_MIGRATE_DISKS_TARGET_ZERO, VIR_TYPED_PARAM_STRING | \
-                                                   VIR_TYPED_PARAM_MULTIPLE, \
-    VIR_MIGRATE_PARAM_DISKS_PORT,       VIR_TYPED_PARAM_INT, \
-    VIR_MIGRATE_PARAM_COMPRESSION,      VIR_TYPED_PARAM_STRING | \
-                                        VIR_TYPED_PARAM_MULTIPLE, \
-    VIR_MIGRATE_PARAM_COMPRESSION_MT_LEVEL,         VIR_TYPED_PARAM_INT, \
-    VIR_MIGRATE_PARAM_COMPRESSION_MT_THREADS,       VIR_TYPED_PARAM_INT, \
-    VIR_MIGRATE_PARAM_COMPRESSION_MT_DTHREADS,      VIR_TYPED_PARAM_INT, \
-    VIR_MIGRATE_PARAM_COMPRESSION_XBZRLE_CACHE,     VIR_TYPED_PARAM_ULLONG, \
-    VIR_MIGRATE_PARAM_PERSIST_XML,      VIR_TYPED_PARAM_STRING, \
-    VIR_MIGRATE_PARAM_AUTO_CONVERGE_INITIAL,        VIR_TYPED_PARAM_INT, \
-    VIR_MIGRATE_PARAM_AUTO_CONVERGE_INCREMENT,      VIR_TYPED_PARAM_INT, \
-    VIR_MIGRATE_PARAM_BANDWIDTH_POSTCOPY, VIR_TYPED_PARAM_ULLONG, \
-    VIR_MIGRATE_PARAM_PARALLEL_CONNECTIONS, VIR_TYPED_PARAM_INT, \
-    VIR_MIGRATE_PARAM_COMPRESSION_ZLIB_LEVEL, VIR_TYPED_PARAM_INT, \
-    VIR_MIGRATE_PARAM_COMPRESSION_ZSTD_LEVEL, VIR_TYPED_PARAM_INT, \
-    VIR_MIGRATE_PARAM_TLS_DESTINATION, VIR_TYPED_PARAM_STRING, \
-    VIR_MIGRATE_PARAM_DISKS_URI,     VIR_TYPED_PARAM_STRING, \
-    VIR_MIGRATE_PARAM_BANDWIDTH_AVAIL_SWITCHOVER, VIR_TYPED_PARAM_ULLONG, \
-    NULL

+extern const virTypedParamValidationTemplate 
qemuMigrationParametersValidation[];

 typedef enum {
     QEMU_MIGRATION_PHASE_NONE = 0,
-- 
2.54.0

Reply via email to