Skip to content

Commit

Permalink
Some cleanup of internal api between ddfs and ddfs_master.
Browse files Browse the repository at this point in the history
  • Loading branch information
pmundkur authored and srobertson committed Oct 7, 2012
1 parent 3427a71 commit 1d65910
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 13 deletions.
20 changes: 10 additions & 10 deletions master/src/ddfs/ddfs.erl
Original file line number Diff line number Diff line change
Expand Up @@ -15,19 +15,19 @@
-> invalid_name | too_many_replicas | {ok, [string()]} | _.
new_blob(Server, Blob, Replicas, Exclude) ->
validate(Blob, fun() ->
Obj = [Blob, "$", ddfs_util:timestamp()],
gen_server:call(Server, {new_blob, Obj, Replicas, Exclude})
end).
Obj = lists:flatten([Blob, "$", ddfs_util:timestamp()]),
ddfs_master:new_blob(Server, Obj, Replicas, Exclude)
end).

-spec tags(server(), binary()) -> {ok, [binary()]}.
tags(Server, Prefix) ->
case gen_server:call(Server, {get_tags, safe}, ?NODEOP_TIMEOUT) of
case ddfs_master:get_tags(Server, safe, ?NODEOP_TIMEOUT) of
{ok, Tags} ->
{ok, if Prefix =:= <<>> ->
Tags;
true ->
[T || T <- Tags, ddfs_util:startswith(T, Prefix)]
end};
Tags;
true ->
[T || T <- Tags, ddfs_util:startswith(T, Prefix)]
end};
E -> E
end.

Expand Down Expand Up @@ -68,8 +68,8 @@ tagop(Server, Tag, Op) ->
tagop(Server, Tag, Op, ?TAG_UPDATE_TIMEOUT).
tagop(Server, Tag, Op, Timeout) ->
validate(Tag, fun() ->
gen_server:call(Server,
{tag, Op, list_to_binary(Tag)}, Timeout)
gen_server:call(Server,
{tag, Op, list_to_binary(Tag)}, Timeout)
end).

-spec validate(nonempty_string(), fun(()-> T)) -> T.
Expand Down
18 changes: 15 additions & 3 deletions master/src/ddfs/ddfs_master.erl
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@
-behaviour(gen_server).

-export([start_link/0]).
-export([get_tags/1,
-export([get_tags/1, get_tags/3,
get_nodeinfo/1,
get_read_nodes/0,
get_hosted_tags/1,
gc_blacklist/0, gc_blacklist/1,
gc_stats/0,
choose_write_nodes/2,
new_blob/3,
new_blob/3, new_blob/4,
safe_gc_blacklist/0, safe_gc_blacklist/1,
refresh_tag_cache/0,
tag_notify/2,
Expand Down Expand Up @@ -105,13 +105,25 @@ choose_write_nodes(K, Exclude) ->
-spec get_tags(gc) -> {ok, [tagname()], [node()]} | too_many_failed_nodes;
(safe) -> {ok, [binary()]} | too_many_failed_nodes.
get_tags(Mode) ->
gen_server:call(?MODULE, {get_tags, Mode}, ?GET_TAG_TIMEOUT).
get_tags(?MODULE, Mode, ?GET_TAG_TIMEOUT).

-spec get_tags(server(), gc, non_neg_integer()) ->
{ok, [tagname()], [node()]} | too_many_failed_nodes;
(server(), safe, non_neg_integer()) ->
{ok, [binary()]} | too_many_failed_nodes.
get_tags(Server, Mode, Timeout) ->
gen_server:call(Server, {get_tags, Mode}, Timeout).

-spec new_blob(string()|object_name(), non_neg_integer(), [node()]) ->
too_many_replicas | {ok, [nonempty_string()]}.
new_blob(Obj, K, Exclude) ->
gen_server:call(?MODULE, {new_blob, Obj, K, Exclude}).

-spec new_blob(server(), string()|object_name(), non_neg_integer(), [node()]) ->
too_many_replicas | {ok, [nonempty_string()]}.
new_blob(Master, Obj, K, Exclude) ->
gen_server:call(Master, {new_blob, Obj, K, Exclude}).

-spec safe_gc_blacklist() -> {ok, [node()]} | {error, term()}.
safe_gc_blacklist() ->
gen_server:call(?MODULE, safe_gc_blacklist).
Expand Down

0 comments on commit 1d65910

Please sign in to comment.