anchor.diff:      Res = rpc:call(Node, riak_repl_console, del_site, [[Name]]),
       ?assertEqual(ok, Res),
       timer:sleep(timer:seconds(5)).
  -
  -fake_site(Port) ->
  -    lists:flatten(io_lib:format("fake_site_~p", [Port])).
   
   verify_listeners(Listeners) ->
       Strs = [IP ++ ":" ++ integer_to_list(Port) || {IP, Port, _} <- Listeners],
  
positive.code: nodes_with_version(Nodes, Version) ->
      [Node || Node <- Nodes, node_has_version(Node, Version)].
  
  nodes_all_have_version(Nodes, Version) ->
      Nodes == nodes_with_version(Nodes, Version).
  
  client_count(Node) ->
      Clients = rpc:call(Node, supervisor, which_children, [riak_repl_client_sup]),
      length(Clients).
  
  gen_fake_listeners(Num) ->
      Ports = gen_ports(11000, Num),
      IPs = lists:duplicate(Num, "127.0.0.1"),
      Nodes = [fake_node(N) || N <- lists:seq(1, Num)],
      lists:zip3(IPs, Ports, Nodes).
  
  fake_node(Num) ->
      lists:flatten(io_lib:format("fake~p@127.0.0.1", [Num])).
  
  add_fake_sites([Node|_], Listeners) ->
      [add_site(Node, {IP, Port, fake_site(Port)})
       || {IP, Port, _} <- Listeners].
  
  add_site(Node, {IP, Port, Name}) ->
      lager:info("Add site ~p ~p:~p at node ~p", [Name, IP, Port, Node]),
  
negative.code:         [list_to_binary([IP, ":", integer_to_list(Port)]) || {IP, Port, _Node} <-
              Listeners]),
      ?assertEqual(ExpectedIPs, IPs).
  
  start_and_wait_until_fullsync_complete(Node) ->
      Status0 = rpc:call(Node, riak_repl_console, status, [quiet]),
  