This series changes the way we handle migration parameters and capabilities with several goals: - make it all consistent and avoid storing the same parameters in several structs - reduce the number of QMP commands we use for setting migration capabilities - concentrate the logic in a separate file and make the code for migration parameters and capabilities in qemu_migration.c less complicated - reset all parameters and capabilities at the end of migration - make adding new parameters and capabilities easier Jiri Denemark (68): qemu: Move qemuDomainCheckMigrationCapabilities qemu: Rename qemuMigrationAnyCapsGet as qemuMigrationCapsGet qemu: Rename qemuMigrationParams qemu: New file for all APIs related to migration parameters qemu: Reindent qemuMigrationParamsSetEmptyTLS qemu: Make qemuMigrationParamsFree follow common pattern qemu: Allocate struct for migration parameters qemu: Drop qemuMigrationParamsClear qemu: Move qemuMigrationCompression struct qemu: Introduce qemuMigrationParams struct qemu: Reset migration parameters in qemuMigrationSrcCleanup qemu: Store original migration params in job qemu: Typedef struct qemuDomainJobObj qemu: Pass job object to qemuProcessRecoverMigration{In,Out} qemu: Reset all migration parameters qemu: Drop qemuMigrationParamsCheckSetupTLS qemu: Drop qemuMigrationParamsCheckTLSCreds qemu: Rename qemuMigrationParamsSetEmptyTLS qemu: Rename qemuMigrationParamsAddTLSObjects qemu: Set tlsHostname inside qemuMigrationParamsEnableTLS qemu: Hide cfg inside qemuMigrationParamsEnableTLS qemu: Rename qemuMigrationParamsSet qemu: Hide internals of qemuMigrationParams struct qemu: Introduce qemuMonitorSetMigrationCapabilities qemu: Set migration caps via migration params APIs qemu: Do not use qemuMonitorSetMigrationCapability qemu: Drop unused qemuMonitorSetMigrationCapability qemu: Add support for xbzrle-cache-size migration parameter qemu: Set XBZRLE cache size via migration parameters qemu: Move ParamsCheck closer to ParamsApply on Dst side qemu: Move ParamsCheck closer to ParamsApply on Src side qemu: Check supported caps in qemuMigrationParamsCheck qemu: Introduce qemuMigrationParty enum qemu: Use qemuMigrationParamsFromFlags everywhere qemu: Hide qemuMigrationParamsNew qemu: Drop qemuMigrationParamsSetPostCopy qemu: Set always-on migration caps in ParamsCheck qemu: Set migration capabilities automatically qemu: Call qemuMigrationAnyCompressionParse only from driver qemu: Generalize macro for getting VIR_MIGRATE_* typed params qemu: Drop qemuMigrationParamsSetCapability qemu: Move qemuMigrationParamsSetCompression qemu: Move qemuMigrationAnyCompression* qemu: Hide qemuMigrationParamsSetCompression qemu: Replace qemuMigrationAnyCompressionDump qemu: Drop qemuMigrationCompression structure qemu: Introduce qemuMigrationParamsFetch qemu: Limit usage of qemuMonitorMigrationParams qemumonitorjsontest: Drop migration params test util: Introduce virJSONValueObjectStealObject qemu: Move migration parameters JSON parsing qemu: Move migration parameters JSON formatting qemu: Move qemuMonitorMigrationParams structure qemu: Refactor qemuMigrationParams qemu: Generalize qemuMigrationParamsGetDowntimeLimit qemu: Set migration parameters automatically qemu: Properly reset migration params when libvirtd restarts qemu: Export qemuMigrationParams{To,From}JSON for tests tests: Add tests for QEMU migration parameters qemumigparamstest: Add basic test data qemumigparamstest: Add test data for TLS parameters qemu: Store API flags for async jobs in qemuDomainJobObj qemu: Properly avoid cancelling memory-only dump qemu: Drop priv->job.dump_memory_only bool qemu: Drop priv->job.postcopyEnabled bool qemu: Store API flags for async jobs in status XML qemu: Don't delete TLS objects unless TLS migration was requested qemuxml2xmltest: Add status XML tests for migration params po/POTFILES.in | 1 + src/libvirt_private.syms | 1 + src/qemu/Makefile.inc.am | 3 + src/qemu/qemu_domain.c | 110 +- src/qemu/qemu_domain.h | 25 +- src/qemu/qemu_driver.c | 175 +-- src/qemu/qemu_migration.c | 965 +++----------- src/qemu/qemu_migration.h | 72 +- src/qemu/qemu_migration_params.c | 1139 +++++++++++++++++ src/qemu/qemu_migration_params.h | 130 ++ src/qemu/qemu_migration_paramspriv.h | 31 + src/qemu/qemu_monitor.c | 64 +- src/qemu/qemu_monitor.h | 43 +- src/qemu/qemu_monitor_json.c | 153 +-- src/qemu/qemu_monitor_json.h | 10 +- src/qemu/qemu_process.c | 30 +- src/qemu/qemu_process.h | 3 +- src/util/virjson.c | 8 + src/util/virjson.h | 2 + tests/Makefile.am | 12 + tests/qemumigparamsdata/basic.json | 9 + tests/qemumigparamsdata/basic.reply | 12 + tests/qemumigparamsdata/basic.xml | 11 + tests/qemumigparamsdata/empty.json | 3 + tests/qemumigparamsdata/empty.reply | 5 + tests/qemumigparamsdata/empty.xml | 4 + tests/qemumigparamsdata/tls-enabled.json | 11 + tests/qemumigparamsdata/tls-enabled.reply | 14 + tests/qemumigparamsdata/tls-enabled.xml | 13 + tests/qemumigparamsdata/tls-hostname.json | 11 + tests/qemumigparamsdata/tls-hostname.reply | 14 + tests/qemumigparamsdata/tls-hostname.xml | 13 + tests/qemumigparamsdata/tls.json | 11 + tests/qemumigparamsdata/tls.reply | 14 + tests/qemumigparamsdata/tls.xml | 13 + tests/qemumigparamsdata/unsupported.json | 3 + tests/qemumigparamsdata/unsupported.reply | 7 + tests/qemumigparamsdata/unsupported.xml | 4 + tests/qemumigparamstest.c | 242 ++++ tests/qemumonitorjsontest.c | 113 +- .../migration-in-params-in.xml | 400 ++++++ .../migration-in-params-out.xml | 1 + .../migration-out-nbd-out.xml | 450 ++++++- .../migration-out-params-in.xml | 414 ++++++ .../migration-out-params-out.xml | 1 + tests/qemuxml2xmltest.c | 2 + 46 files changed, 3456 insertions(+), 1316 deletions(-) create mode 100644 src/qemu/qemu_migration_params.c create mode 100644 src/qemu/qemu_migration_params.h create mode 100644 src/qemu/qemu_migration_paramspriv.h create mode 100644 tests/qemumigparamsdata/basic.json create mode 100644 tests/qemumigparamsdata/basic.reply create mode 100644 tests/qemumigparamsdata/basic.xml create mode 100644 tests/qemumigparamsdata/empty.json create mode 100644 tests/qemumigparamsdata/empty.reply create mode 100644 tests/qemumigparamsdata/empty.xml create mode 100644 tests/qemumigparamsdata/tls-enabled.json create mode 100644 tests/qemumigparamsdata/tls-enabled.reply create mode 100644 tests/qemumigparamsdata/tls-enabled.xml create mode 100644 tests/qemumigparamsdata/tls-hostname.json create mode 100644 tests/qemumigparamsdata/tls-hostname.reply create mode 100644 tests/qemumigparamsdata/tls-hostname.xml create mode 100644 tests/qemumigparamsdata/tls.json create mode 100644 tests/qemumigparamsdata/tls.reply create mode 100644 tests/qemumigparamsdata/tls.xml create mode 100644 tests/qemumigparamsdata/unsupported.json create mode 100644 tests/qemumigparamsdata/unsupported.reply create mode 100644 tests/qemumigparamsdata/unsupported.xml create mode 100644 tests/qemumigparamstest.c create mode 100644 tests/qemustatusxml2xmldata/migration-in-params-in.xml create mode 120000 tests/qemustatusxml2xmldata/migration-in-params-out.xml mode change 120000 => 100644 tests/qemustatusxml2xmldata/migration-out-nbd-out.xml create mode 100644 tests/qemustatusxml2xmldata/migration-out-params-in.xml create mode 120000 tests/qemustatusxml2xmldata/migration-out-params-out.xml -- 2.17.0 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list