mirror of
https://github.com/libvirt/libvirt.git
synced 2026-10-02 12:20:06 -05:00
qemu: migration: Use 'virTypedParamsValidateTemplate' for migration params
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> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
1 parent
4561735158
commit
a650af5002
3 files changed
+36
-37
No files matched your search
@@ -11148,7 +11148,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,
|
||||
@@ -11257,7 +11257,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,
|
||||
@@ -11395,7 +11395,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,
|
||||
@@ -11499,7 +11499,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,
|
||||
@@ -11645,7 +11645,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,
|
||||
@@ -11714,7 +11714,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)))
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in new issue
Block a user