migration: migrate-continue
authorDr. David Alan Gilbert <dgilbert@redhat.com>
Fri, 20 Oct 2017 09:05:53 +0000 (10:05 +0100)
committerJuan Quintela <quintela@redhat.com>
Mon, 23 Oct 2017 16:03:30 +0000 (18:03 +0200)
A new qmp command allows the caller to continue from a given
paused state.

Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
migration/migration.c
qapi/migration.json

index ef84d2c1fb029c1a81cf7dfba5665324ab13a84d..90bfdc3a7c2c17471da425747f860fd94a7e2be1 100644 (file)
@@ -1374,6 +1374,17 @@ void qmp_migrate_cancel(Error **errp)
     migrate_fd_cancel(migrate_get_current());
 }
 
+void qmp_migrate_continue(MigrationStatus state, Error **errp)
+{
+    MigrationState *s = migrate_get_current();
+    if (s->state != state) {
+        error_setg(errp,  "Migration not in expected state: %s",
+                   MigrationStatus_str(s->state));
+        return;
+    }
+    qemu_sem_post(&s->pause_sem);
+}
+
 void qmp_migrate_set_cache_size(int64_t value, Error **errp)
 {
     MigrationState *s = migrate_get_current();
index b56f95db6450ec58858e0777cd173a45d1c1c9b2..272f19155192ab47420df88bca155eb419bd3f90 100644 (file)
 ##
 { 'command': 'migrate_cancel' }
 
+##
+# @migrate-continue:
+#
+# Continue migration when it's in a paused state.
+#
+# @state: The state the migration is currently expected to be in
+#
+# Returns: nothing on success
+# Since: 2.11
+# Example:
+#
+# -> { "execute": "migrate-continue" , "arguments":
+#      { "state": "pre-switchover" } }
+# <- { "return": {} }
+##
+{ 'command': 'migrate-continue', 'data': {'state': 'MigrationStatus'} }
+
 ##
 # @migrate_set_downtime:
 #