anchor.diff:  prepare_new_urls(NewIps) ->
       NewIpsSorted = lists:sort(NewIps),
       OldUrls = lists:sort([binary_to_list(Url)
  -                          || Url <- redis_helper:shard_urls()]),
  +                          || Url <- urls()]),
       length(OldUrls) =:= length(NewIpsSorted)
           orelse erlang:error({invalid_ip_list, different_length_to_existing}),
       NewUrls = [ update_redis_host(OldUrl, NewIp)
  
positive.code: %%--------------------------------------------------------------------
  %%% Internal functions
  %%--------------------------------------------------------------------
  lookup_urls() ->
      URLs = case os:getenv("LOGPLEX_SHARD_URLS") of
                 [] ->
                     case os:getenv("LOGPLEX_CONFIG_REDIS_URL") of
  
negative.code: -export([start_link/0, init/1, handle_call/3, handle_cast/2,
           handle_info/2, terminate/2, code_change/3]).
  
  -export([lookup/3
           ,logs_redis_urls/0
           ,urls/0
           ,redis_sort/1]).
  
  %% Redis Migration API
  