summaryrefslogtreecommitdiff
path: root/merge/src/merge_util.erl
diff options
context:
space:
mode:
authorLinus Nordberg <linus@nordu.net>2017-02-07 14:51:24 +0100
committerLinus Nordberg <linus@nordu.net>2017-02-07 14:51:24 +0100
commit1c348ba24f38bed924a45d945c052fb1ccc29780 (patch)
treedffd2095bdc8f7f016235d4a0a4d92eb86d9cca0 /merge/src/merge_util.erl
parent0c50a66694fb55ca39397c6bfa2218597d856c66 (diff)
Parallelised merge, sth phase.
Diffstat (limited to 'merge/src/merge_util.erl')
-rw-r--r--merge/src/merge_util.erl25
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.