qmp: hmp: add migrate "resume" option
It will be used when we want to resume one paused migration. Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Signed-off-by: Peter Xu <peterx@redhat.com> Message-Id: <20180502104740.12123-8-peterx@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com> --- s/2.12/2.13/
This commit is contained in:
		| @@ -897,13 +897,14 @@ ETEXI | |||||||
|  |  | ||||||
|     { |     { | ||||||
|         .name       = "migrate", |         .name       = "migrate", | ||||||
|         .args_type  = "detach:-d,blk:-b,inc:-i,uri:s", |         .args_type  = "detach:-d,blk:-b,inc:-i,resume:-r,uri:s", | ||||||
|         .params     = "[-d] [-b] [-i] uri", |         .params     = "[-d] [-b] [-i] [-r] uri", | ||||||
|         .help       = "migrate to URI (using -d to not wait for completion)" |         .help       = "migrate to URI (using -d to not wait for completion)" | ||||||
| 		      "\n\t\t\t -b for migration without shared storage with" | 		      "\n\t\t\t -b for migration without shared storage with" | ||||||
| 		      " full copy of disk\n\t\t\t -i for migration without " | 		      " full copy of disk\n\t\t\t -i for migration without " | ||||||
| 		      "shared storage with incremental copy of disk " | 		      "shared storage with incremental copy of disk " | ||||||
| 		      "(base image shared between src and destination)", | 		      "(base image shared between src and destination)" | ||||||
|  |                       "\n\t\t\t -r to resume a paused migration", | ||||||
|         .cmd        = hmp_migrate, |         .cmd        = hmp_migrate, | ||||||
|     }, |     }, | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								hmp.c
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								hmp.c
									
									
									
									
									
								
							| @@ -1929,10 +1929,12 @@ void hmp_migrate(Monitor *mon, const QDict *qdict) | |||||||
|     bool detach = qdict_get_try_bool(qdict, "detach", false); |     bool detach = qdict_get_try_bool(qdict, "detach", false); | ||||||
|     bool blk = qdict_get_try_bool(qdict, "blk", false); |     bool blk = qdict_get_try_bool(qdict, "blk", false); | ||||||
|     bool inc = qdict_get_try_bool(qdict, "inc", false); |     bool inc = qdict_get_try_bool(qdict, "inc", false); | ||||||
|  |     bool resume = qdict_get_try_bool(qdict, "resume", false); | ||||||
|     const char *uri = qdict_get_str(qdict, "uri"); |     const char *uri = qdict_get_str(qdict, "uri"); | ||||||
|     Error *err = NULL; |     Error *err = NULL; | ||||||
|  |  | ||||||
|     qmp_migrate(uri, !!blk, blk, !!inc, inc, false, false, &err); |     qmp_migrate(uri, !!blk, blk, !!inc, inc, | ||||||
|  |                 false, false, true, resume, &err); | ||||||
|     if (err) { |     if (err) { | ||||||
|         hmp_handle_error(mon, &err); |         hmp_handle_error(mon, &err); | ||||||
|         return; |         return; | ||||||
|   | |||||||
| @@ -1413,7 +1413,7 @@ bool migration_is_blocked(Error **errp) | |||||||
|  |  | ||||||
| void qmp_migrate(const char *uri, bool has_blk, bool blk, | void qmp_migrate(const char *uri, bool has_blk, bool blk, | ||||||
|                  bool has_inc, bool inc, bool has_detach, bool detach, |                  bool has_inc, bool inc, bool has_detach, bool detach, | ||||||
|                  Error **errp) |                  bool has_resume, bool resume, Error **errp) | ||||||
| { | { | ||||||
|     Error *local_err = NULL; |     Error *local_err = NULL; | ||||||
|     MigrationState *s = migrate_get_current(); |     MigrationState *s = migrate_get_current(); | ||||||
|   | |||||||
| @@ -1031,6 +1031,8 @@ | |||||||
| # @detach: this argument exists only for compatibility reasons and | # @detach: this argument exists only for compatibility reasons and | ||||||
| #          is ignored by QEMU | #          is ignored by QEMU | ||||||
| # | # | ||||||
|  | # @resume: resume one paused migration, default "off". (since 2.13) | ||||||
|  | # | ||||||
| # Returns: nothing on success | # Returns: nothing on success | ||||||
| # | # | ||||||
| # Since: 0.14.0 | # Since: 0.14.0 | ||||||
| @@ -1052,7 +1054,8 @@ | |||||||
| # | # | ||||||
| ## | ## | ||||||
| { 'command': 'migrate', | { 'command': 'migrate', | ||||||
|   'data': {'uri': 'str', '*blk': 'bool', '*inc': 'bool', '*detach': 'bool' } } |   'data': {'uri': 'str', '*blk': 'bool', '*inc': 'bool', | ||||||
|  |            '*detach': 'bool', '*resume': 'bool' } } | ||||||
|  |  | ||||||
| ## | ## | ||||||
| # @migrate-incoming: | # @migrate-incoming: | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user