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

Version 2:
- qemuDomainCheckMigrationCapabilities is moved to
  qemu_migration_params.c (rather than to qemu_migration.c)
- supported migration capabilities are sent via migration cookie so that
  some caps may be automatically enabled only when both sides support
  them

Jiri Denemark (73):
  qemu: Rename qemuMigrationAnyCapsGet as qemuMigrationCapsGet
  qemu: Rename qemuMigrationParams
  qemu: New file for all APIs related to migration parameters
  qemu: Move qemuDomainCheckMigrationCapabilities
  qemu: Move qemuMigrationCapsGet
  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: Export qemuMigrationParams{To,From}JSON for tests
  qemu: Move qemuMonitorMigrationParams structure
  qemu: Refactor qemuMigrationParams
  qemu: Move migration capabilities JSON formatting
  qemu: Move qemuMonitorMigrationCaps enum
  qemu: Add support for sending capabilities in migration cookie
  qemu: Check remote caps when enabling always-on capabilities
  qemu: Generalize qemuMigrationParamsGetDowntimeLimit
  qemu: Set migration parameters automatically
  qemu: Properly reset migration params when libvirtd restarts
  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                     |  926 ++---------
 src/qemu/qemu_migration.h                     |   66 +-
 src/qemu/qemu_migration_cookie.c              |  136 +-
 src/qemu/qemu_migration_cookie.h              |   15 +
 src/qemu/qemu_migration_params.c              | 1351 +++++++++++++++++
 src/qemu/qemu_migration_params.h              |  156 ++
 src/qemu/qemu_migration_paramspriv.h          |   35 +
 src/qemu/qemu_monitor.c                       |   76 +-
 src/qemu/qemu_monitor.h                       |   56 +-
 src/qemu/qemu_monitor_json.c                  |  133 +-
 src/qemu/qemu_monitor_json.h                  |    9 +-
 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                   |  123 +-
 .../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 +
 48 files changed, 3766 insertions(+), 1368 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@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to