anchor.diff:        {vbuckets, node_vbuckets(Map, N)}] || N <- Nodes].
   
   failover_services(Nodes) ->
  +    failover_services(cluster_compat_mode:is_cluster_41(), Nodes).
  +
  +failover_services(false, _Nodes) ->
  +    [];
  +failover_services(true, Nodes) ->
       Config    = ns_config:get(),
       Services0 = lists:flatmap(
                     ns_cluster_membership:node_services(Config, _), Nodes),
       Services  = lists:usort(Services0) -- [kv],
   
  -    case cluster_compat_mode:is_cluster_41() of
  -        true ->
  -            lists:foreach(failover_service(Config, _, Nodes), Services);
  -        false ->
  -            ok
  -    end.
  +    Results = lists:flatmap(failover_service(Config, _, Nodes), Services),
  +    failover_handle_results(Results).
   
   failover_service(Config, Service, Nodes) ->
       ns_cluster_membership:failover_service_nodes(Config, Service, Nodes),
  
positive.code:     KVs = [{{node, N, failover_vbuckets}, VBs} || {N, VBs} <- FailoverVBuckets],
      ns_config:set(KVs).
  
  failover_bucket(Bucket, BucketConfig, Nodes) ->
      master_activity_events:note_bucket_failover_started(Bucket, Nodes),
  
  
negative.code:         ok ->
              ?log_debug("Failed over service ~p on nodes ~p successfully",
                         [Service, Nodes]);
          _ ->
              ?log_error("Failed to failover service ~p on nodes ~p: ~p",
                         [Service, Nodes, Result])
      end,
  
      [[{node, Node},
        {status, Result},
        {service, Service}] || Node <- Nodes].
  
  get_failover_vbuckets(Config, Node) ->
      ns_config:search(Config, {node, Node, failover_vbuckets}, []).
  