Expose new size values
diff --git a/src/fabric_db_info.erl b/src/fabric_db_info.erl
index 8a41cde..ab93e47 100644
--- a/src/fabric_db_info.erl
+++ b/src/fabric_db_info.erl
@@ -94,9 +94,13 @@
[{purge_seq, lists:sum(X)} | Acc];
(compact_running, X, Acc) ->
[{compact_running, lists:member(true, X)} | Acc];
- (disk_size, X, Acc) ->
+ (disk_size, X, Acc) -> % legacy
[{disk_size, lists:sum(X)} | Acc];
- (other, X, Acc) ->
+ (data_size, X, Acc) -> % legacy
+ [{data_size, lists:sum(X)} | Acc];
+ (sizes, X, Acc) ->
+ [{sizes, {merge_object(X)}} | Acc];
+ (other, X, Acc) -> % legacy
[{other, {merge_other_results(X)}} | Acc];
(disk_format_version, X, Acc) ->
[{disk_format_version, lists:max(X)} | Acc];
@@ -114,3 +118,12 @@
(_, _, Acc) ->
Acc
end, [], Dict).
+
+merge_object(Objects) ->
+ Dict = lists:foldl(fun({Props}, D) ->
+ lists:foldl(fun({K,V},D0) -> orddict:append(K,V,D0) end, D, Props)
+ end, orddict:new(), Objects),
+ orddict:fold(fun
+ (Key, X, Acc) ->
+ [{Key, lists:sum(X)} | Acc]
+ end, [], Dict).
diff --git a/src/fabric_group_info.erl b/src/fabric_group_info.erl
index b5ee2b2..85719b6 100644
--- a/src/fabric_group_info.erl
+++ b/src/fabric_group_info.erl
@@ -81,10 +81,12 @@
[{signature, X} | Acc];
(language, [X|_], Acc) ->
[{language, X} | Acc];
- (disk_size, X, Acc) ->
+ (disk_size, X, Acc) -> % legacy
[{disk_size, lists:sum(X)} | Acc];
- (data_size, X, Acc) ->
+ (data_size, X, Acc) -> % legacy
[{data_size, lists:sum(X)} | Acc];
+ (sizes, X, Acc) ->
+ [{sizes, {merge_object(X)}} | Acc];
(compact_running, X, Acc) ->
[{compact_running, lists:member(true, X)} | Acc];
(updater_running, X, Acc) ->
@@ -100,3 +102,12 @@
(_, _, Acc) ->
Acc
end, [], Dict).
+
+merge_object(Objects) ->
+ Dict = lists:foldl(fun({Props}, D) ->
+ lists:foldl(fun({K,V},D0) -> orddict:append(K,V,D0) end, D, Props)
+ end, orddict:new(), Objects),
+ orddict:fold(fun
+ (Key, X, Acc) ->
+ [{Key, lists:sum(X)} | Acc]
+ end, [], Dict).