qemu/migration
Markus Armbruster 01fa559826 migration: Use JSON null instead of "" to reset parameter to default
migrate-set-parameters sets migration parameters according to is
arguments like this:

* Present means "set the parameter to this value"

* Absent means "leave the parameter unchanged"

* Except for parameters tls_creds and tls_hostname, "" means "reset
  the parameter to its default value

The first two are perfectly normal: presence of the parameter makes
the command do something.

The third one overloads the parameter with a second meaning.  The
overloading is *implicit*, i.e. it's not visible in the types.  Works
here, because "" is neither a valid TLS credentials ID, nor a valid
host name.

Pressing argument values the schema accepts, but are semantically
invalid, into service to mean "reset to default" is not general, as
suitable invalid values need not exist.  I also find it ugly.

To clean this up, we could add a separate flag argument to ask for
"reset to default", or add a distinct value to @tls_creds and
@tls_hostname.  This commit implements the latter: add JSON null to
the values of @tls_creds and @tls_hostname, deprecate "".

Because we're so close to the 2.10 freeze, implement it in the
stupidest way possible: have qmp_migrate_set_parameters() rewrite null
to "" before anything else can see the null.  The proper way to do it
would be rewriting "" to null, but that requires fixing up code to
work with null.  Add TODO comments for that.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Daniel P. Berrange <berrange@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
2017-07-24 13:35:11 +02:00
..
block.c migration: Rename cleanup() to save_cleanup() 2017-07-10 17:52:21 +01:00
block.h migration: Move include/migration/block.h into migration/ 2017-06-01 18:49:24 +02:00
channel.c migration: Move migration.h to migration/ 2017-06-13 11:00:45 +02:00
channel.h migration: Remove MigrationState from migration_channel_incomming() 2017-06-13 11:00:44 +02:00
colo-comm.c migration: Move migration.h to migration/ 2017-06-13 11:00:45 +02:00
colo-failover.c migration: Remove unneeded includes 2017-06-14 11:10:19 +02:00
colo.c migration: remove check against colo support 2017-07-18 17:36:24 +02:00
exec.c migration: Remove unneeded includes 2017-06-14 11:10:19 +02:00
exec.h migration: Export exec.c functions in its own file 2017-06-01 18:49:22 +02:00
fd.c migration: Remove unneeded includes 2017-06-14 11:10:19 +02:00
fd.h migration: Export fd.c functions in its own file 2017-06-01 18:49:22 +02:00
global_state.c migration: move global_state.optional out 2017-06-28 11:18:38 +02:00
Makefile.objs migration: create global_state.c 2017-06-13 11:00:45 +02:00
migration.c migration: Use JSON null instead of "" to reset parameter to default 2017-07-24 13:35:11 +02:00
migration.h migration: add "return-path" capability 2017-06-28 11:51:10 +02:00
page_cache.c migration: Move page_cache.c to migration/ 2017-05-17 12:04:59 +02:00
page_cache.h migration: Move page_cache.c to migration/ 2017-05-17 12:04:59 +02:00
postcopy-ram.c migration: Remove unneeded includes 2017-06-14 11:10:19 +02:00
postcopy-ram.h migration: Move postcopy stuff to postcopy-ram.c 2017-05-17 12:04:59 +02:00
qemu-file-channel.c migration: Split qemu-file.h 2017-06-01 18:49:22 +02:00
qemu-file-channel.h migration: Export qemu-file-channel.c functions in its own file 2017-05-18 19:20:50 +02:00
qemu-file.c migration: Remove unneeded includes 2017-06-14 11:10:19 +02:00
qemu-file.h migration: ram_control_* are implemented in qemu_file 2017-06-13 11:00:45 +02:00
qjson.c migration: Move qjson.h to migration/ 2017-05-18 19:20:59 +02:00
qjson.h migration: Move qjson.h to migration/ 2017-05-18 19:20:59 +02:00
ram.c migration: Make compression_threads use save/load_setup/cleanup() 2017-07-10 17:52:21 +01:00
ram.h migration: Make compression_threads use save/load_setup/cleanup() 2017-07-10 17:52:21 +01:00
rdma.c migration/rdma: Send error during cancelling 2017-07-18 17:36:18 +02:00
rdma.h migration: Export rdma.c functions in its own file 2017-06-01 18:49:23 +02:00
savevm.c migration: Create load_setup()/cleanup() methods 2017-07-10 17:52:21 +01:00
savevm.h migration: Create load_setup()/cleanup() methods 2017-07-10 17:52:21 +01:00
socket.c migration: Move migration.h to migration/ 2017-06-13 11:00:45 +02:00
socket.h migration: Export socket.c functions in its own file 2017-06-01 18:49:23 +02:00
tls.c migration: Move migration.h to migration/ 2017-06-13 11:00:45 +02:00
tls.h migration: Export tls.c functions in its own file 2017-06-01 18:49:23 +02:00
trace-events migration: Create load_setup()/cleanup() methods 2017-07-10 17:52:21 +01:00
vmstate-types.c vmstate: error hint for failed equal checks 2017-06-28 11:18:44 +02:00
vmstate.c migration: Move migration.h to migration/ 2017-06-13 11:00:45 +02:00
xbzrle.c migration: Create migration/xbzrle.h 2017-05-18 18:04:54 +02:00
xbzrle.h migration: Create migration/xbzrle.h 2017-05-18 18:04:54 +02:00