Message ID | 1482831516-21862-3-git-send-email-zhangchen.fnst@cn.fujitsu.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 12/27/2016 03:38 AM, Zhang Chen wrote: > We can call this qmp command to do checkpoint outside of qemu. > Like Xen colo need this function. That sentence is awkward; maybe: Xen colo will need this function. > > Signed-off-by: Zhang Chen <zhangchen.fnst@cn.fujitsu.com> > Signed-off-by: Wen Congyang <wencongyang@gmail.com> > --- > docs/qmp-commands.txt | 24 ++++++++++++++++++++++++ > migration/colo.c | 17 +++++++++++++++++ > qapi-schema.json | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ > 3 files changed, 91 insertions(+) > > diff --git a/docs/qmp-commands.txt b/docs/qmp-commands.txt > index d182147..a146745 100644 > --- a/docs/qmp-commands.txt > +++ b/docs/qmp-commands.txt > @@ -450,6 +450,30 @@ Example: > "arguments": {"enable": true, "primary": false} } > <- { "return": {} } > > +query-xen-replication-status > +---------------------------- > + > +Query replication status when vm is running. > + > +Arguments: None. > + > +Example: > + > +-> { "execute": "query-xen-replication-status" } > +<- { "return": { "status": "normal" } } > + > +xen-do-checkpoint > +----------------- > + > +Xen use this command to notify replication to do checkpoint. s/use/uses/ s/do/trigger a/ > + > +Arguments: None. > + > +Example: > + > +-> { "execute": "xen-do-checkpoint" } > +<- { "return": {} } > + > migrate > ------- > > diff --git a/migration/colo.c b/migration/colo.c > index 6fc2ade..7fc9f8a 100644 > --- a/migration/colo.c > +++ b/migration/colo.c > @@ -127,6 +127,23 @@ void qmp_xen_set_replication(bool enable, bool primary, > } > } > > +ReplicationErrorResult *qmp_query_xen_replication_status(Error **errp) > +{ > + Error *err = NULL; > + ReplicationErrorResult *result = g_new0(ReplicationErrorResult, 1); > + replication_get_error_all(&err); > + result->status = err ? > + REPLICATION_ERROR_STATUS_ERROR : > + REPLICATION_ERROR_STATUS_NORMAL; > + error_free(err); > + return result; > +} > + > +void qmp_xen_do_checkpoint(Error **errp) > +{ > + replication_do_checkpoint_all(errp); > +} > + > static void colo_send_message(QEMUFile *f, COLOMessage msg, > Error **errp) > { > diff --git a/qapi-schema.json b/qapi-schema.json > index 78802f4..6c162a5 100644 > --- a/qapi-schema.json > +++ b/qapi-schema.json > @@ -4695,6 +4695,56 @@ > 'data': { 'enable': 'bool', 'primary': 'bool', '*failover' : 'bool' } } > > ## > +# @ReplicationErrorStatus > +# > +# Describe the status of replication error. > +# > +# @error: Replication have a error. s/have a/has an/ > +# > +# @normal: Replication running normal. s/running normal/is running normally/ > +# > +# Since 2.9 > +## > +{ 'enum': 'ReplicationErrorStatus', > + 'data': [ 'error', 'normal' ] } > + > +## > +# @ReplicationErrorResult The name of this struct is misleading (but harmless, since struct names are not part of the API). Better might be: ReplicationStatus > +# > +# The result format for 'xen-get-replication-error'. Wrong name; you renamed the command 'query-xen-replication-status'. > +# > +# @status: enum of @ReplicationErrorStatus, which shows current > +# replication error status > +# > +# Since 2.9 > +## > +{ 'struct': 'ReplicationErrorResult', > + 'data': { 'status': 'ReplicationErrorStatus'} } > + > +## > +# @query-xen-replication-status > +# > +# Query replication error that occurs when the vm is running. Since you might extend this in the future, I'd just leave it at: Query replication status while the vm is running. > +# > +# Returns: A @ReplicationErrorResult objects showing the status. > +# > +# Since: 2.9 > +## > +{ 'command': 'query-xen-replication-status', > + 'returns': 'ReplicationErrorResult' } Again, the struct name is misleading. > + > +## > +# @xen-do-checkpoint > +# > +# Xen use this command to notify replication to do checkpoint. s/use/uses/ > +# > +# Returns: nothing. > +# > +# Since: 2.9 > +## > +{ 'command': 'xen-do-checkpoint' } > + > +## > # @GICCapability: > # > # The struct describes capability for a specific GIC (Generic > Getting closer!
Hi~~ Eric: I have send the V6 to fix the issues below, Have any comments? Thanks Zhang Chen On 01/05/2017 04:40 AM, Eric Blake wrote: > On 12/27/2016 03:38 AM, Zhang Chen wrote: >> We can call this qmp command to do checkpoint outside of qemu. >> Like Xen colo need this function. > That sentence is awkward; maybe: > > Xen colo will need this function. > >> Signed-off-by: Zhang Chen <zhangchen.fnst@cn.fujitsu.com> >> Signed-off-by: Wen Congyang <wencongyang@gmail.com> >> --- >> docs/qmp-commands.txt | 24 ++++++++++++++++++++++++ >> migration/colo.c | 17 +++++++++++++++++ >> qapi-schema.json | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ >> 3 files changed, 91 insertions(+) >> >> diff --git a/docs/qmp-commands.txt b/docs/qmp-commands.txt >> index d182147..a146745 100644 >> --- a/docs/qmp-commands.txt >> +++ b/docs/qmp-commands.txt >> @@ -450,6 +450,30 @@ Example: >> "arguments": {"enable": true, "primary": false} } >> <- { "return": {} } >> >> +query-xen-replication-status >> +---------------------------- >> + >> +Query replication status when vm is running. >> + >> +Arguments: None. >> + >> +Example: >> + >> +-> { "execute": "query-xen-replication-status" } >> +<- { "return": { "status": "normal" } } >> + >> +xen-do-checkpoint >> +----------------- >> + >> +Xen use this command to notify replication to do checkpoint. > s/use/uses/ > s/do/trigger a/ > >> + >> +Arguments: None. >> + >> +Example: >> + >> +-> { "execute": "xen-do-checkpoint" } >> +<- { "return": {} } >> + >> migrate >> ------- >> >> diff --git a/migration/colo.c b/migration/colo.c >> index 6fc2ade..7fc9f8a 100644 >> --- a/migration/colo.c >> +++ b/migration/colo.c >> @@ -127,6 +127,23 @@ void qmp_xen_set_replication(bool enable, bool primary, >> } >> } >> >> +ReplicationErrorResult *qmp_query_xen_replication_status(Error **errp) >> +{ >> + Error *err = NULL; >> + ReplicationErrorResult *result = g_new0(ReplicationErrorResult, 1); >> + replication_get_error_all(&err); >> + result->status = err ? >> + REPLICATION_ERROR_STATUS_ERROR : >> + REPLICATION_ERROR_STATUS_NORMAL; >> + error_free(err); >> + return result; >> +} >> + >> +void qmp_xen_do_checkpoint(Error **errp) >> +{ >> + replication_do_checkpoint_all(errp); >> +} >> + >> static void colo_send_message(QEMUFile *f, COLOMessage msg, >> Error **errp) >> { >> diff --git a/qapi-schema.json b/qapi-schema.json >> index 78802f4..6c162a5 100644 >> --- a/qapi-schema.json >> +++ b/qapi-schema.json >> @@ -4695,6 +4695,56 @@ >> 'data': { 'enable': 'bool', 'primary': 'bool', '*failover' : 'bool' } } >> >> ## >> +# @ReplicationErrorStatus >> +# >> +# Describe the status of replication error. >> +# >> +# @error: Replication have a error. > s/have a/has an/ > >> +# >> +# @normal: Replication running normal. > s/running normal/is running normally/ > >> +# >> +# Since 2.9 >> +## >> +{ 'enum': 'ReplicationErrorStatus', >> + 'data': [ 'error', 'normal' ] } >> + >> +## >> +# @ReplicationErrorResult > The name of this struct is misleading (but harmless, since struct names > are not part of the API). Better might be: ReplicationStatus > >> +# >> +# The result format for 'xen-get-replication-error'. > Wrong name; you renamed the command 'query-xen-replication-status'. > >> +# >> +# @status: enum of @ReplicationErrorStatus, which shows current >> +# replication error status >> +# >> +# Since 2.9 >> +## >> +{ 'struct': 'ReplicationErrorResult', >> + 'data': { 'status': 'ReplicationErrorStatus'} } >> + >> +## >> +# @query-xen-replication-status >> +# >> +# Query replication error that occurs when the vm is running. > Since you might extend this in the future, I'd just leave it at: > > Query replication status while the vm is running. > >> +# >> +# Returns: A @ReplicationErrorResult objects showing the status. >> +# >> +# Since: 2.9 >> +## >> +{ 'command': 'query-xen-replication-status', >> + 'returns': 'ReplicationErrorResult' } > Again, the struct name is misleading. > >> + >> +## >> +# @xen-do-checkpoint >> +# >> +# Xen use this command to notify replication to do checkpoint. > s/use/uses/ > >> +# >> +# Returns: nothing. >> +# >> +# Since: 2.9 >> +## >> +{ 'command': 'xen-do-checkpoint' } >> + >> +## >> # @GICCapability: >> # >> # The struct describes capability for a specific GIC (Generic >> > Getting closer! >
diff --git a/docs/qmp-commands.txt b/docs/qmp-commands.txt index d182147..a146745 100644 --- a/docs/qmp-commands.txt +++ b/docs/qmp-commands.txt @@ -450,6 +450,30 @@ Example: "arguments": {"enable": true, "primary": false} } <- { "return": {} } +query-xen-replication-status +---------------------------- + +Query replication status when vm is running. + +Arguments: None. + +Example: + +-> { "execute": "query-xen-replication-status" } +<- { "return": { "status": "normal" } } + +xen-do-checkpoint +----------------- + +Xen use this command to notify replication to do checkpoint. + +Arguments: None. + +Example: + +-> { "execute": "xen-do-checkpoint" } +<- { "return": {} } + migrate ------- diff --git a/migration/colo.c b/migration/colo.c index 6fc2ade..7fc9f8a 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -127,6 +127,23 @@ void qmp_xen_set_replication(bool enable, bool primary, } } +ReplicationErrorResult *qmp_query_xen_replication_status(Error **errp) +{ + Error *err = NULL; + ReplicationErrorResult *result = g_new0(ReplicationErrorResult, 1); + replication_get_error_all(&err); + result->status = err ? + REPLICATION_ERROR_STATUS_ERROR : + REPLICATION_ERROR_STATUS_NORMAL; + error_free(err); + return result; +} + +void qmp_xen_do_checkpoint(Error **errp) +{ + replication_do_checkpoint_all(errp); +} + static void colo_send_message(QEMUFile *f, COLOMessage msg, Error **errp) { diff --git a/qapi-schema.json b/qapi-schema.json index 78802f4..6c162a5 100644 --- a/qapi-schema.json +++ b/qapi-schema.json @@ -4695,6 +4695,56 @@ 'data': { 'enable': 'bool', 'primary': 'bool', '*failover' : 'bool' } } ## +# @ReplicationErrorStatus +# +# Describe the status of replication error. +# +# @error: Replication have a error. +# +# @normal: Replication running normal. +# +# Since 2.9 +## +{ 'enum': 'ReplicationErrorStatus', + 'data': [ 'error', 'normal' ] } + +## +# @ReplicationErrorResult +# +# The result format for 'xen-get-replication-error'. +# +# @status: enum of @ReplicationErrorStatus, which shows current +# replication error status +# +# Since 2.9 +## +{ 'struct': 'ReplicationErrorResult', + 'data': { 'status': 'ReplicationErrorStatus'} } + +## +# @query-xen-replication-status +# +# Query replication error that occurs when the vm is running. +# +# Returns: A @ReplicationErrorResult objects showing the status. +# +# Since: 2.9 +## +{ 'command': 'query-xen-replication-status', + 'returns': 'ReplicationErrorResult' } + +## +# @xen-do-checkpoint +# +# Xen use this command to notify replication to do checkpoint. +# +# Returns: nothing. +# +# Since: 2.9 +## +{ 'command': 'xen-do-checkpoint' } + +## # @GICCapability: # # The struct describes capability for a specific GIC (Generic