anchor.diff:              ?log_error("Failed to setup some replications:~n~p", [Bad]),
               {error, {setup_replications_failed, Bad}}
       end.
  +
  +get_producer_nodes(Bucket) ->
  +    gen_server:call(server_name(Bucket), get_producer_nodes, infinity).
  +
  +manage_replicators(Bucket, NeededNodes) ->
  +    ok = gen_server:call(server_name(Bucket),
  +                         {manage_replicators, NeededNodes}, infinity).
   
   code_change(_OldVsn, State, _Extra) ->
       {ok, State}.
  
positive.code: 
  set_desired_replications(Bucket, DesiredReps) ->
      NeededNodes = [Node || {Node, [_|_]} <- DesiredReps],
      gen_server:call(server_name(Bucket), {manage_replicators, NeededNodes}, infinity),
  
      Rs = [{Node, dcp_replicator:setup_replication(Node, Bucket, Partitions)}
            || {Node, [_|_] = Partitions} <- DesiredReps],
      Bad = [Pair || {_, R} = Pair <- Rs, R =/= ok],
  
      case Bad of
          [] ->
  
negative.code:     ?rebalance_warning("Unexpected handle_info(~p, ~p)", [Msg, State]),
      {noreply, State}.
  
  handle_call(get_producer_nodes, _From, Bucket) ->
      ProducerNodes = [N || {N, _, _, _} <- dcp_sup:get_children(Bucket)],
      {reply, ProducerNodes, Bucket};
  handle_call({manage_replicators, NeededNodes}, _From, Bucket) ->
      dcp_sup:manage_replicators(Bucket, NeededNodes),
      {reply, ok, Bucket};
  