anchor.diff:              {reply, ok, State#state{rebalancer={Pid, Ref}, progress=[]}}
       end;
   handle_call({start_rebalance, _, _}, _From, State) ->
  -    error_logger:info_msg("ns_orchestrator not rebalancing because in_progress~n", []),
  +    ns_log:log(?MODULE, ?REBALANCE_NOT_STARTED,
  +               "Not rebalancing because rebalance is already in progress.~n"),
       {reply, in_progress, State};
   handle_call(stop_rebalance, _From, State = #state{rebalancer={Pid, _Ref}}) ->
       Pid ! stop,
  
positive.code:         %% Push out the config with the new map in case this node is being removed
          ns_config_rep:push(),
          maybe_stop(),
          ns_cluster_membership:deactivate(EjectNodes),
          %% Leave myself last
          LeaveNodes = lists:delete(node(), EvacuateNodes),
          lists:foreach(fun (N) -> ns_cluster:leave(N) end, LeaveNodes),
          case lists:member(node(), EvacuateNodes) of
              true ->
                  ns_cluster:leave();
              false ->
                  ok
  
negative.code: handle_cast({remaining_moves, M}, #state{moves=Moves, progress=Progress} =
                  State) ->
      P = [{Node, 1.0 - N / dict:fetch(Node, Moves)} || {Node, N} <- M],
      {noreply, State#state{progress=lists:ukeymerge(1, P, Progress)}};
  handle_cast({starting_moves, M}, State) ->
      {noreply, State#state{moves=dict:from_list(M)}}.
  