Add a new qmp command to do checkpoint, query xen replication status
We can call this qmp command to do checkpoint outside of qemu. Xen colo will need this function. Signed-off-by: Zhang Chen <zhangchen.fnst@cn.fujitsu.com> Signed-off-by: Wen Congyang <wencongyang@gmail.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Stefano Stabellini <sstabellini@kernel.org>
This commit is contained in:
parent
2c9639ecab
commit
daa33c5215
@ -173,6 +173,29 @@ void qmp_xen_set_replication(bool enable, bool primary,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ReplicationStatus *qmp_query_xen_replication_status(Error **errp)
|
||||||
|
{
|
||||||
|
Error *err = NULL;
|
||||||
|
ReplicationStatus *s = g_new0(ReplicationStatus, 1);
|
||||||
|
|
||||||
|
replication_get_error_all(&err);
|
||||||
|
if (err) {
|
||||||
|
s->error = true;
|
||||||
|
s->has_desc = true;
|
||||||
|
s->desc = g_strdup(error_get_pretty(err));
|
||||||
|
} else {
|
||||||
|
s->error = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
error_free(err);
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
void qmp_xen_colo_do_checkpoint(Error **errp)
|
||||||
|
{
|
||||||
|
replication_do_checkpoint_all(errp);
|
||||||
|
}
|
||||||
|
|
||||||
static void colo_send_message(QEMUFile *f, COLOMessage msg,
|
static void colo_send_message(QEMUFile *f, COLOMessage msg,
|
||||||
Error **errp)
|
Error **errp)
|
||||||
{
|
{
|
||||||
|
@ -6014,6 +6014,54 @@
|
|||||||
{ 'command': 'xen-set-replication',
|
{ 'command': 'xen-set-replication',
|
||||||
'data': { 'enable': 'bool', 'primary': 'bool', '*failover' : 'bool' } }
|
'data': { 'enable': 'bool', 'primary': 'bool', '*failover' : 'bool' } }
|
||||||
|
|
||||||
|
##
|
||||||
|
# @ReplicationStatus:
|
||||||
|
#
|
||||||
|
# The result format for 'query-xen-replication-status'.
|
||||||
|
#
|
||||||
|
# @error: true if an error happened, false if replication is normal.
|
||||||
|
#
|
||||||
|
# @desc: #optional the human readable error description string, when
|
||||||
|
# @error is 'true'.
|
||||||
|
#
|
||||||
|
# Since: 2.9
|
||||||
|
##
|
||||||
|
{ 'struct': 'ReplicationStatus',
|
||||||
|
'data': { 'error': 'bool', '*desc': 'str' } }
|
||||||
|
|
||||||
|
##
|
||||||
|
# @query-xen-replication-status:
|
||||||
|
#
|
||||||
|
# Query replication status while the vm is running.
|
||||||
|
#
|
||||||
|
# Returns: A @ReplicationResult object showing the status.
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
#
|
||||||
|
# -> { "execute": "query-xen-replication-status" }
|
||||||
|
# <- { "return": { "error": false } }
|
||||||
|
#
|
||||||
|
# Since: 2.9
|
||||||
|
##
|
||||||
|
{ 'command': 'query-xen-replication-status',
|
||||||
|
'returns': 'ReplicationStatus' }
|
||||||
|
|
||||||
|
##
|
||||||
|
# @xen-colo-do-checkpoint:
|
||||||
|
#
|
||||||
|
# Xen uses this command to notify replication to trigger a checkpoint.
|
||||||
|
#
|
||||||
|
# Returns: nothing.
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
#
|
||||||
|
# -> { "execute": "xen-colo-do-checkpoint" }
|
||||||
|
# <- { "return": {} }
|
||||||
|
#
|
||||||
|
# Since: 2.9
|
||||||
|
##
|
||||||
|
{ 'command': 'xen-colo-do-checkpoint' }
|
||||||
|
|
||||||
##
|
##
|
||||||
# @GICCapability:
|
# @GICCapability:
|
||||||
#
|
#
|
||||||
|
Loading…
Reference in New Issue
Block a user