anchor.diff:          _  -> Req:respond({401, [], []})
       end.
   
  +%% waits till only one node is left in cluster
  +do_eject_myself_rec(0, _) ->
  +    exit(self_eject_failed);
  +do_eject_myself_rec(IterationsLeft, Period) ->
  +    MySelf = node(),
  +    case ns_node_disco:nodes_actual_proper() of
  +        [MySelf] -> ok;
  +        _ -> 
  +            timer:sleep(Period),
  +            do_eject_myself_rec(IterationsLeft-1, Period)
  +    end.
  +
  +do_eject_myself() ->
  +    %% using cast because I don't expect our node to be able
  +    %% to respond after being ejected and trying all nodes,
  +    %% because we don't know who of them are actually alife
  +    OtherNodes = lists:subtract(ns_node_disco:nodes_actual_proper(), [node()]),
  +    lists:foreach(fun (Node) ->
  +                          rpc:cast(Node, ns_cluster, leave, [node()])
  +                          end, OtherNodes),
  +    do_eject_myself_rec(10, 250).
  +
   handle_eject_post(Req) ->
       PostArgs = Req:parse_post(),
       %
  
positive.code:     %
      case proplists:get_value("otpNode", PostArgs) of
          undefined -> Req:respond({400, [], "Bad Request\n"});
          OtpNodeStr ->
              OtpNode = list_to_atom(OtpNodeStr),
              case OtpNode =:= node() of
  
negative.code:               {nodes, Nodes},
                {buckets, BucketsInfo},
                {controllers, {struct,
                               [{ejectNode, {struct, [{uri,
                                                       "/controller/ejectNode"}]}},
                                {testWorkload, {struct,
                                               [{uri,
                                                 list_to_binary("/pools/" ++ Id ++ "/controller/testWorkload")}]}}]}},
                %%
  