spice: move client_migrate_info command to ui/
It has nothing to do with migration, except for the "migrate" in the name of the command. Move it with the rest of the ui commands. Signed-off-by: Juan Quintela <quintela@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
This commit is contained in:
parent
c938157713
commit
f9e1ef7482
@ -636,23 +636,6 @@ void hmp_migrate_set_parameter(Monitor *mon, const QDict *qdict)
|
|||||||
hmp_handle_error(mon, err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_client_migrate_info(Monitor *mon, const QDict *qdict)
|
|
||||||
{
|
|
||||||
Error *err = NULL;
|
|
||||||
const char *protocol = qdict_get_str(qdict, "protocol");
|
|
||||||
const char *hostname = qdict_get_str(qdict, "hostname");
|
|
||||||
bool has_port = qdict_haskey(qdict, "port");
|
|
||||||
int port = qdict_get_try_int(qdict, "port", -1);
|
|
||||||
bool has_tls_port = qdict_haskey(qdict, "tls-port");
|
|
||||||
int tls_port = qdict_get_try_int(qdict, "tls-port", -1);
|
|
||||||
const char *cert_subject = qdict_get_try_str(qdict, "cert-subject");
|
|
||||||
|
|
||||||
qmp_client_migrate_info(protocol, hostname,
|
|
||||||
has_port, port, has_tls_port, tls_port,
|
|
||||||
cert_subject, &err);
|
|
||||||
hmp_handle_error(mon, err);
|
|
||||||
}
|
|
||||||
|
|
||||||
void hmp_migrate_start_postcopy(Monitor *mon, const QDict *qdict)
|
void hmp_migrate_start_postcopy(Monitor *mon, const QDict *qdict)
|
||||||
{
|
{
|
||||||
Error *err = NULL;
|
Error *err = NULL;
|
||||||
|
@ -63,7 +63,6 @@
|
|||||||
#include "sysemu/cpus.h"
|
#include "sysemu/cpus.h"
|
||||||
#include "yank_functions.h"
|
#include "yank_functions.h"
|
||||||
#include "sysemu/qtest.h"
|
#include "sysemu/qtest.h"
|
||||||
#include "ui/qemu-spice.h"
|
|
||||||
|
|
||||||
#define MAX_THROTTLE (128 << 20) /* Migration transfer speed throttling */
|
#define MAX_THROTTLE (128 << 20) /* Migration transfer speed throttling */
|
||||||
|
|
||||||
@ -1018,35 +1017,6 @@ MigrationParameters *qmp_query_migrate_parameters(Error **errp)
|
|||||||
return params;
|
return params;
|
||||||
}
|
}
|
||||||
|
|
||||||
void qmp_client_migrate_info(const char *protocol, const char *hostname,
|
|
||||||
bool has_port, int64_t port,
|
|
||||||
bool has_tls_port, int64_t tls_port,
|
|
||||||
const char *cert_subject,
|
|
||||||
Error **errp)
|
|
||||||
{
|
|
||||||
if (strcmp(protocol, "spice") == 0) {
|
|
||||||
if (!qemu_using_spice(errp)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!has_port && !has_tls_port) {
|
|
||||||
error_setg(errp, QERR_MISSING_PARAMETER, "port/tls-port");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (qemu_spice.migrate_info(hostname,
|
|
||||||
has_port ? port : -1,
|
|
||||||
has_tls_port ? tls_port : -1,
|
|
||||||
cert_subject)) {
|
|
||||||
error_setg(errp, "Could not set up display for migration");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
error_setg(errp, QERR_INVALID_PARAMETER_VALUE, "protocol", "'spice'");
|
|
||||||
}
|
|
||||||
|
|
||||||
AnnounceParameters *migrate_announce_params(void)
|
AnnounceParameters *migrate_announce_params(void)
|
||||||
{
|
{
|
||||||
static AnnounceParameters ap;
|
static AnnounceParameters ap;
|
||||||
|
@ -1203,34 +1203,6 @@
|
|||||||
{ 'command': 'query-migrate-parameters',
|
{ 'command': 'query-migrate-parameters',
|
||||||
'returns': 'MigrationParameters' }
|
'returns': 'MigrationParameters' }
|
||||||
|
|
||||||
##
|
|
||||||
# @client_migrate_info:
|
|
||||||
#
|
|
||||||
# Set migration information for remote display. This makes the server
|
|
||||||
# ask the client to automatically reconnect using the new parameters
|
|
||||||
# once migration finished successfully. Only implemented for SPICE.
|
|
||||||
#
|
|
||||||
# @protocol: must be "spice"
|
|
||||||
# @hostname: migration target hostname
|
|
||||||
# @port: spice tcp port for plaintext channels
|
|
||||||
# @tls-port: spice tcp port for tls-secured channels
|
|
||||||
# @cert-subject: server certificate subject
|
|
||||||
#
|
|
||||||
# Since: 0.14
|
|
||||||
#
|
|
||||||
# Example:
|
|
||||||
#
|
|
||||||
# -> { "execute": "client_migrate_info",
|
|
||||||
# "arguments": { "protocol": "spice",
|
|
||||||
# "hostname": "virt42.lab.kraxel.org",
|
|
||||||
# "port": 1234 } }
|
|
||||||
# <- { "return": {} }
|
|
||||||
#
|
|
||||||
##
|
|
||||||
{ 'command': 'client_migrate_info',
|
|
||||||
'data': { 'protocol': 'str', 'hostname': 'str', '*port': 'int',
|
|
||||||
'*tls-port': 'int', '*cert-subject': 'str' } }
|
|
||||||
|
|
||||||
##
|
##
|
||||||
# @migrate-start-postcopy:
|
# @migrate-start-postcopy:
|
||||||
#
|
#
|
||||||
|
28
qapi/ui.json
28
qapi/ui.json
@ -1554,3 +1554,31 @@
|
|||||||
{ 'command': 'display-update',
|
{ 'command': 'display-update',
|
||||||
'data': 'DisplayUpdateOptions',
|
'data': 'DisplayUpdateOptions',
|
||||||
'boxed' : true }
|
'boxed' : true }
|
||||||
|
|
||||||
|
##
|
||||||
|
# @client_migrate_info:
|
||||||
|
#
|
||||||
|
# Set migration information for remote display. This makes the server
|
||||||
|
# ask the client to automatically reconnect using the new parameters
|
||||||
|
# once migration finished successfully. Only implemented for SPICE.
|
||||||
|
#
|
||||||
|
# @protocol: must be "spice"
|
||||||
|
# @hostname: migration target hostname
|
||||||
|
# @port: spice tcp port for plaintext channels
|
||||||
|
# @tls-port: spice tcp port for tls-secured channels
|
||||||
|
# @cert-subject: server certificate subject
|
||||||
|
#
|
||||||
|
# Since: 0.14
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
#
|
||||||
|
# -> { "execute": "client_migrate_info",
|
||||||
|
# "arguments": { "protocol": "spice",
|
||||||
|
# "hostname": "virt42.lab.kraxel.org",
|
||||||
|
# "port": 1234 } }
|
||||||
|
# <- { "return": {} }
|
||||||
|
#
|
||||||
|
##
|
||||||
|
{ 'command': 'client_migrate_info',
|
||||||
|
'data': { 'protocol': 'str', 'hostname': 'str', '*port': 'int',
|
||||||
|
'*tls-port': 'int', '*cert-subject': 'str' } }
|
||||||
|
@ -458,3 +458,20 @@ hmp_screendump(Monitor *mon, const QDict *qdict)
|
|||||||
end:
|
end:
|
||||||
hmp_handle_error(mon, err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void hmp_client_migrate_info(Monitor *mon, const QDict *qdict)
|
||||||
|
{
|
||||||
|
Error *err = NULL;
|
||||||
|
const char *protocol = qdict_get_str(qdict, "protocol");
|
||||||
|
const char *hostname = qdict_get_str(qdict, "hostname");
|
||||||
|
bool has_port = qdict_haskey(qdict, "port");
|
||||||
|
int port = qdict_get_try_int(qdict, "port", -1);
|
||||||
|
bool has_tls_port = qdict_haskey(qdict, "tls-port");
|
||||||
|
int tls_port = qdict_get_try_int(qdict, "tls-port", -1);
|
||||||
|
const char *cert_subject = qdict_get_try_str(qdict, "cert-subject");
|
||||||
|
|
||||||
|
qmp_client_migrate_info(protocol, hostname,
|
||||||
|
has_port, port, has_tls_port, tls_port,
|
||||||
|
cert_subject, &err);
|
||||||
|
hmp_handle_error(mon, err);
|
||||||
|
}
|
||||||
|
@ -175,3 +175,32 @@ void qmp_display_update(DisplayUpdateOptions *arg, Error **errp)
|
|||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void qmp_client_migrate_info(const char *protocol, const char *hostname,
|
||||||
|
bool has_port, int64_t port,
|
||||||
|
bool has_tls_port, int64_t tls_port,
|
||||||
|
const char *cert_subject,
|
||||||
|
Error **errp)
|
||||||
|
{
|
||||||
|
if (strcmp(protocol, "spice") == 0) {
|
||||||
|
if (!qemu_using_spice(errp)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!has_port && !has_tls_port) {
|
||||||
|
error_setg(errp, QERR_MISSING_PARAMETER, "port/tls-port");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (qemu_spice.migrate_info(hostname,
|
||||||
|
has_port ? port : -1,
|
||||||
|
has_tls_port ? tls_port : -1,
|
||||||
|
cert_subject)) {
|
||||||
|
error_setg(errp, "Could not set up display for migration");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
error_setg(errp, QERR_INVALID_PARAMETER_VALUE, "protocol", "'spice'");
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user