From 02f015990b2d077f304e19c9ff11728d4480bee8 Mon Sep 17 00:00:00 2001 From: Peter Rajnoha Date: Thu, 4 Aug 2022 15:06:58 +0200 Subject: libdm: report: add DM_REPORT_GROUP_JSON_STD group The original JSON formatting will be still available using the original DM_REPORT_GROUP_JSON identifier. Subsequent patches will add enhancements to JSON formatting code so that it adheres more to JSON standard - this will be identified by new DM_REPORT_GROUP_JSON_STD identifier. --- libdm/libdevmapper.h | 3 ++- libdm/libdm-report.c | 13 +++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) (limited to 'libdm') diff --git a/libdm/libdevmapper.h b/libdm/libdevmapper.h index e9412da7d..c1c6cb40e 100644 --- a/libdm/libdevmapper.h +++ b/libdm/libdevmapper.h @@ -3170,7 +3170,8 @@ struct dm_report_group; typedef enum dm_report_group_type_e { DM_REPORT_GROUP_SINGLE, DM_REPORT_GROUP_BASIC, - DM_REPORT_GROUP_JSON + DM_REPORT_GROUP_JSON, + DM_REPORT_GROUP_JSON_STD } dm_report_group_type_t; struct dm_report_group *dm_report_group_create(dm_report_group_type_t type, void *data); diff --git a/libdm/libdm-report.c b/libdm/libdm-report.c index f3bf628a5..b43ac4298 100644 --- a/libdm/libdm-report.c +++ b/libdm/libdm-report.c @@ -4368,10 +4368,17 @@ static int _is_basic_report(struct dm_report *rh) (rh->group_item->group->type == DM_REPORT_GROUP_BASIC); } +static int _is_json_std_report(struct dm_report *rh) +{ + return rh->group_item && + rh->group_item->group->type == DM_REPORT_GROUP_JSON_STD; +} + static int _is_json_report(struct dm_report *rh) { return rh->group_item && - (rh->group_item->group->type == DM_REPORT_GROUP_JSON); + (rh->group_item->group->type == DM_REPORT_GROUP_JSON || + rh->group_item->group->type == DM_REPORT_GROUP_JSON_STD); } /* @@ -4982,6 +4989,7 @@ int dm_report_group_push(struct dm_report_group *group, struct dm_report *report goto_bad; break; case DM_REPORT_GROUP_JSON: + case DM_REPORT_GROUP_JSON_STD: if (!_report_group_push_json(item, data)) goto_bad; break; @@ -5045,6 +5053,7 @@ int dm_report_group_pop(struct dm_report_group *group) return_0; break; case DM_REPORT_GROUP_JSON: + case DM_REPORT_GROUP_JSON_STD: if (!_report_group_pop_json(item)) return_0; break; @@ -5081,7 +5090,7 @@ int dm_report_group_output_and_pop_all(struct dm_report_group *group) return_0; } - if (group->type == DM_REPORT_GROUP_JSON) { + if (group->type == DM_REPORT_GROUP_JSON || group->type == DM_REPORT_GROUP_JSON_STD) { _json_output_start(group); log_print(JSON_OBJECT_END); group->indent -= JSON_INDENT_UNIT; -- cgit v1.2.1