On Tue, 02/16 15:51, Peter Xu wrote:
> It will calculate percentage of finished work from completed and
> total.
>
> Signed-off-by: Peter Xu <pet...@redhat.com>
> ---
> hmp-commands-info.hx | 14 ++++++++++++++
> hmp.c | 17 +++++++++++++++++
> hmp.h | 1 +
> 3 files changed, 32 insertions(+)
>
> diff --git a/hmp-commands-info.hx b/hmp-commands-info.hx
> index 9b71351..52539c3 100644
> --- a/hmp-commands-info.hx
> +++ b/hmp-commands-info.hx
> @@ -786,6 +786,20 @@ STEXI
> Display the value of a storage key (s390 only)
> ETEXI
>
> + {
> + .name = "dump",
> + .args_type = "",
> + .params = "",
> + .help = "Display the latest dump status",
> + .mhandler.cmd = hmp_info_dump,
> + },
> +
> +STEXI
> +@item info dump
> +@findex dump
> +Display the latest dump status.
> +ETEXI
> +
> STEXI
> @end table
> ETEXI
> diff --git a/hmp.c b/hmp.c
> index 3a0d9d4..92cf014 100644
> --- a/hmp.c
> +++ b/hmp.c
> @@ -2381,3 +2381,20 @@ void hmp_rocker_of_dpa_groups(Monitor *mon, const
> QDict *qdict)
>
> qapi_free_RockerOfDpaGroupList(list);
> }
> +
> +void hmp_info_dump(Monitor *mon, const QDict *qdict)
> +{
> + DumpQueryResult *result = qmp_query_dump(NULL);
> +
> + assert(result && result->status < DUMP_STATUS_MAX);
> + monitor_printf(mon, "Status: %s\n", DumpStatus_lookup[result->status]);
> +
> + if (result->status == DUMP_STATUS_ACTIVE) {
> + float percent = 0;
> + assert(result->total != 0);
> + percent = 100.0 * result->completed / result->total;
> + monitor_printf(mon, "Finished: %.2f %%\n", percent);
> + }
> +
> + qapi_free_DumpQueryResult(result);
> +}
> diff --git a/hmp.h b/hmp.h
> index a8c5b5a..093d65f 100644
> --- a/hmp.h
> +++ b/hmp.h
> @@ -131,5 +131,6 @@ void hmp_rocker(Monitor *mon, const QDict *qdict);
> void hmp_rocker_ports(Monitor *mon, const QDict *qdict);
> void hmp_rocker_of_dpa_flows(Monitor *mon, const QDict *qdict);
> void hmp_rocker_of_dpa_groups(Monitor *mon, const QDict *qdict);
> +void hmp_info_dump(Monitor *mon, const QDict *qdict);
>
> #endif
> --
> 2.4.3
>
Reviewed-by: Fam Zheng <f...@redhat.com>