From ca573248c7d3e8070722316b168f94b79fd75357 Mon Sep 17 00:00:00 2001 From: "Dr. David Alan Gilbert" Date: Wed, 25 Oct 2017 18:28:36 +0200 Subject: [PATCH 17/19] migrate: HMP migate_continue RH-Author: Dr. David Alan Gilbert Message-id: <20171025182838.31829-6-dgilbert@redhat.com> Patchwork-id: 77440 O-Subject: [RHV-7.5 qemu-kvm-rhev PATCH 5/7] migrate: HMP migate_continue Bugzilla: 1497120 RH-Acked-by: Peter Xu RH-Acked-by: Juan Quintela RH-Acked-by: Miroslav Rezanina From: "Dr. David Alan Gilbert" HMP equivalent to the just added migrate-continue Unpause a migrate paused at a given state. Signed-off-by: Dr. David Alan Gilbert Reviewed-by: Peter Xu Reviewed-by: Juan Quintela Signed-off-by: Juan Quintela (cherry picked from commit 94ae12cba4f18253e3cf5f9a70335e22870053b4) Conflict: Change in qapi_enum_parse parameters Signed-off-by: Miroslav Rezanina --- hmp-commands.hx | 12 ++++++++++++ hmp.c | 14 ++++++++++++++ hmp.h | 1 + 3 files changed, 27 insertions(+) diff --git a/hmp-commands.hx b/hmp-commands.hx index 5b4cf6b..c16d270 100644 --- a/hmp-commands.hx +++ b/hmp-commands.hx @@ -979,7 +979,19 @@ STEXI @item migrate_cancel @findex migrate_cancel Cancel the current VM migration. +ETEXI + { + .name = "migrate_continue", + .args_type = "state:s", + .params = "state", + .help = "Continue migration from the given paused state", + .cmd = hmp_migrate_continue, + }, +STEXI +@item migrate_continue @var{state} +@findex migrate_continue +Continue migration from the paused state @var{state} ETEXI { diff --git a/hmp.c b/hmp.c index 5b6eeba..261c17b 100644 --- a/hmp.c +++ b/hmp.c @@ -1493,6 +1493,20 @@ void hmp_migrate_cancel(Monitor *mon, const QDict *qdict) qmp_migrate_cancel(NULL); } +void hmp_migrate_continue(Monitor *mon, const QDict *qdict) +{ + Error *err = NULL; + const char *state = qdict_get_str(qdict, "state"); + int val = qapi_enum_parse(MigrationStatus_lookup, state, + MIGRATION_STATUS__MAX, -1, &err); + + if (val >= 0) { + qmp_migrate_continue(val, &err); + } + + hmp_handle_error(mon, &err); +} + void hmp_migrate_incoming(Monitor *mon, const QDict *qdict) { Error *err = NULL; diff --git a/hmp.h b/hmp.h index 8d9cb29..8dc865d 100644 --- a/hmp.h +++ b/hmp.h @@ -68,6 +68,7 @@ void hmp_savevm(Monitor *mon, const QDict *qdict); void hmp_delvm(Monitor *mon, const QDict *qdict); void hmp_info_snapshots(Monitor *mon, const QDict *qdict); void hmp_migrate_cancel(Monitor *mon, const QDict *qdict); +void hmp_migrate_continue(Monitor *mon, const QDict *qdict); void hmp_migrate_incoming(Monitor *mon, const QDict *qdict); void hmp_migrate_set_downtime(Monitor *mon, const QDict *qdict); void hmp_migrate_set_speed(Monitor *mon, const QDict *qdict); -- 1.8.3.1