mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-21 13:34:40 +03:00
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.
This commit is contained in:
parent
2fc52b6c41
commit
02f015990b
@ -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);
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user