diff options
author | Linus Nordberg <linus@nordu.net> | 2017-02-07 14:51:24 +0100 |
---|---|---|
committer | Linus Nordberg <linus@nordu.net> | 2017-02-07 14:51:24 +0100 |
commit | 1c348ba24f38bed924a45d945c052fb1ccc29780 (patch) | |
tree | dffd2095bdc8f7f016235d4a0a4d92eb86d9cca0 /merge/src/merge_util.erl | |
parent | 0c50a66694fb55ca39397c6bfa2218597d856c66 (diff) |
Parallelised merge, sth phase.
Diffstat (limited to 'merge/src/merge_util.erl')
-rw-r--r-- | merge/src/merge_util.erl | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/merge/src/merge_util.erl b/merge/src/merge_util.erl index a6b3ac9..4a4340d 100644 --- a/merge/src/merge_util.erl +++ b/merge/src/merge_util.erl @@ -4,6 +4,7 @@ -module(merge_util). -export([sendlog/4, sendentries/3]). -export([request/2, request/4]). +-export([readfile/1, verify_logorder_and_fetched_consistency/2]). request(DebugTag, URL) -> request(DebugTag, URL, [], <<>>). @@ -72,3 +73,27 @@ sendentries_request(NodeAddress, HashesAndEntries) -> Err -> throw({request_error, result, DebugTag, Err}) end. + +readfile(FileInConfig) -> + case application:get_env(plop, FileInConfig) of + {ok, File} -> + case atomic:readfile(File) of + noentry -> + noentry; + Contents -> + mochijson2:decode(Contents) + end; + undefined -> + noentry + end. + +verify_logorder_and_fetched_consistency(Index, Hash) -> + HashString = binary_to_list(Hash), + case hex:bin_to_hexstr(index:get(logorder, Index)) of + HashString -> + ok; + Mismatch -> + lager:error("fetched file hash=~p doesn't match logorder[~B]=~p", + [HashString, Index, Mismatch]), + fetched_mismatch + end. |