diff options
author | Peter Rajnoha <prajnoha@redhat.com> | 2022-08-04 15:06:58 +0200 |
---|---|---|
committer | Peter Rajnoha <prajnoha@redhat.com> | 2022-08-11 11:10:11 +0200 |
commit | 02f015990b2d077f304e19c9ff11728d4480bee8 (patch) | |
tree | 41641ef488f553df69d4dfd3e2535e6b7b35536c /device_mapper | |
parent | 2fc52b6c41172fc4ae15e736fae095aa681ff03a (diff) | |
download | lvm2-02f015990b2d077f304e19c9ff11728d4480bee8.tar.gz |
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.
Diffstat (limited to 'device_mapper')
-rw-r--r-- | device_mapper/all.h | 3 | ||||
-rw-r--r-- | device_mapper/libdm-report.c | 13 |
2 files changed, 13 insertions, 3 deletions
diff --git a/device_mapper/all.h b/device_mapper/all.h index 34d65885e..b70a8f29c 100644 --- a/device_mapper/all.h +++ b/device_mapper/all.h @@ -1983,7 +1983,8 @@ struct dm_report_group; typedef enum { 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/device_mapper/libdm-report.c b/device_mapper/libdm-report.c index 13a8e46b1..2e1f443f6 100644 --- a/device_mapper/libdm-report.c +++ b/device_mapper/libdm-report.c @@ -4369,10 +4369,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); } /* @@ -4983,6 +4990,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; @@ -5046,6 +5054,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; @@ -5082,7 +5091,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; |