Skip to content

Commit

Permalink
Change control commands to return error tuples not io:format
Browse files Browse the repository at this point in the history
  • Loading branch information
jtuple committed Aug 10, 2011
1 parent f67f8a1 commit e0d7a19
Showing 1 changed file with 15 additions and 13 deletions.
28 changes: 15 additions & 13 deletions src/riak_core.erl
Expand Up @@ -73,10 +73,12 @@ join(Node) when is_atom(Node) ->

remove(Node) ->
{ok, Ring} = riak_core_ring_manager:get_my_ring(),
case riak_core_ring:member_status(Ring, Node) of
invalid ->
io:format("~p isn't a member of the cluster.~n", [Node]),
ok;
case {riak_core_ring:all_members(Ring),
riak_core_ring:member_status(Ring, Node)} of
{_, invalid} ->
{error, not_member};
{[Node], _} ->
{error, only_member};
_ ->
Ring2 = riak_core_ring:remove_member(node(), Ring, Node),
Ring3 = riak_core_ring:ring_changed(node(), Ring2),
Expand All @@ -93,8 +95,13 @@ remove(Node) ->
leave() ->
Node = node(),
{ok, Ring} = riak_core_ring_manager:get_my_ring(),
case riak_core_ring:member_status(Ring, Node) of
valid ->
case {riak_core_ring:all_members(Ring),
riak_core_ring:member_status(Ring, Node)} of
{_, invalid} ->
{error, not_member};
{[Node], _} ->
{error, only_member};
{_, valid} ->
Ring2 = riak_core_ring:leave_member(Node, Ring, Node),
riak_core_ring_manager:set_my_ring(Ring2),
case riak_core_ring:random_other_node(Ring2) of
Expand All @@ -104,13 +111,8 @@ leave() ->
riak_core_gossip:send_ring(Node, RandomNode),
ok
end;
invalid ->
io:format("~p isn't a member of the cluster.~n", [Node]),
ok;
_ ->
io:format("~p is in the process of leaving the cluster.~n",
[Node]),
ok
{_, _} ->
{error, already_leaving}
end.

%% @spec remove_from_cluster(ExitingNode :: atom()) -> term()
Expand Down

0 comments on commit e0d7a19

Please sign in to comment.