anchor.diff:  
   -export([ok/0, error/1, error/2, help/0, version/1, login/2,
            bad_nodes/1, system_info_and_nodes_stat/1, node_stat/1,
  -         du/2, s3_credential/2, s3_users/1, endpoints/1, buckets/1,
  +         compact_status/1, du/2, s3_credential/2, s3_users/1, endpoints/1, buckets/1,
            whereis/1, histories/1
           ]).
  +
  +-define(NULL_DATETIME, "----/--/-- --:--:--").
   
   -define(output_ok(),           gen_json({[{result, <<"OK">>}]})).
   -define(output_error_1(Cause), gen_json({[{error, list_to_binary(Cause)}]})).
  
positive.code: 
  %% @doc Format storage stats
  %%
  -spec(du(summary | detail, {integer(), integer()} | list()) ->
               string()).
  du(summary, {_, Total}) ->
      gen_json({[{<<"total_of_objects">>, Total}]});
  
  du(detail, StatsList) when is_list(StatsList) ->
      JSON = lists:map(fun({ok, #storage_stats{file_path   = FilePath,
                                               total_num   = ObjTotal}}) ->
                               {[{<<"file_path">>,        list_to_binary(FilePath)},
                                 {<<"total_of_objects">>, ObjTotal}
                                ]};
                          (_) ->
                               []
  
negative.code: du(_, _) ->
      gen_json([]).
  
  compact_status({RestPids, InProgPids, LastStart}) ->
      StrLast = case LastStart of
          0 -> ?NULL_DATETIME;
          _ -> leo_date:date_format(LastStart)
      end,
      gen_json({[
                 {last_compaction_start, list_to_binary(StrLast)},
                 {rest_ob_jobs, RestPids},
                 {ongoing_of_jobs, InProgPids}
                ]}).
  
  %% @doc Format s3-gen-key result
  %%
  