• Andrea Spadaccini's avatar
    Make migration RPC non-blocking · 6a1434d7
    Andrea Spadaccini authored
    To add status reporting for the KVM migration, the instance_migrate RPC
    must be non-blocking. Moreover, there must be a way to represent the
    migration status and a way to fetch it.
    * constants.py:
      - add constants representing the migration statuses
    * objects.py:
      - add the MigrationStatus object
    * hypervisor/hv_base.py
      - change the FinalizeMigration method name to FinalizeMigrationDst
      - add the FinalizeMigrationSource method
      - add the GetMigrationStatus method
    * hypervisor/hv_kvm.py
      - change the implementation of MigrateInstance to be non-blocking
        (i.e. do not poll the status of the migration)
      - implement the new methods defined in BaseHypervisor
    * backend.py, server/noded.py, rpc.py
      - add methods to call the new hypervisor methods
      - fix documentation of the existing methods to reflect the changes
    * cmdlib.py
      - adapt the logic of TLMigrateInstance._ExecMigration to reflect
        the changes
    Signed-off-by: default avatarAndrea Spadaccini <spadaccio@google.com>
    Reviewed-by: default avatarMichael Hanselmann <hansmi@google.com>