From: Peter Krempa <pkrempa@redhat.com> Refactor the code to use the new helper for validating migration params and making them later available for introspection. Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- 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