diff options
author | Magnus Ahltorp <map@kth.se> | 2015-07-31 08:18:29 +0200 |
---|---|---|
committer | Magnus Ahltorp <map@kth.se> | 2015-07-31 08:18:29 +0200 |
commit | 0bdd4f5b8e82b9c082db7c7599f5385916d35a64 (patch) | |
tree | 889130e91aed0c9bd47399c8c7b2ace2797e7570 | |
parent | 83d4a5410a8ed97ebe2d193c0703a2c2fa968ec1 (diff) |
Implement merge/setverifiedsize
-rw-r--r-- | src/frontend.erl | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/src/frontend.erl b/src/frontend.erl index 3924fb8..0144041 100644 --- a/src/frontend.erl +++ b/src/frontend.erl @@ -147,13 +147,32 @@ request(post, "catlfish/merge/verifyroot", Input) -> end end; -%% implement setverifiedsize - request(get, "catlfish/merge/verifiedsize", _Query) -> Size = db:verifiedsize(), success({[{result, <<"ok">>}, {size, Size}]}); +request(post, "catlfish/merge/setverifiedsize", Input) -> + case (catch mochijson2:decode(Input)) of + {error, E} -> + html("setverifiedsize: bad input:", E); + {struct, PropList} -> + OldSize = db:verifiedsize(), + Treesize = proplists:get_value(<<"size">>, PropList), + Indexsize = db:indexsize(), + + if + Treesize > Indexsize -> + html("Has too few entries", Indexsize); + OldSize > Treesize -> + success({[{result, <<"ok">>}]}); + true -> + db:set_verifiedsize(Treesize), + success({[{result, <<"ok">>}]}) + end + end; + + request(get, "catlfish/merge/missingentries", _Query) -> Size = db:verifiedsize(), Missing = fetchmissingentries(Size), @@ -192,8 +211,10 @@ check_entries(Entries, Start, End) -> check_entries_noreverse(Entries, Start, End) -> lists:foldl(fun ({Hash, Index}, Acc) -> + lager:info("checking entry ~p", [Index]), case check_entry_noreverse(Hash, Index) of ok -> + lager:info("entry ~p is correct", [Index]), Acc; Error -> [Error | Acc] |