anchor.diff:      pong.
   
   migrate_all() ->
  +    migrate_all(mover_phase_1_migration_callback).
  +
  +migrate_all(CallbackMod) ->
       % Disable sleep  - for OPC migrations, we are guaranteed no in-flight traffic.
       application:set_env(mover, sleep_time, 0),
   
  
positive.code: partition({Org, {error, org_reset_failed}}, {RF, MF, S}) ->
      {[binary_to_list(Org) | RF], MF, S}.
  
  org_list() ->
      org_list(moser_state_tracker:unmigrated_orgs(mover_phase_1_migration_callback:migration_type())).
  
  org_list(no_orgs_in_state) ->
      [];
  org_list(OrgList) ->
      OrgList.
  
  %% We'll migrate each org  individually so that we are
  %% able to reply with details for each org.
  migrate_next([], Acc) ->
      Acc;
  migrate_next([Org|Rest], Acc) ->
      lager:info([{org_name, Org}], "Requesting migration: ~p~n"),
      case reset_org(Org) of
          ok ->
              do_migrate(Org, Rest, Acc);
          Reason ->
              migrate_next(Rest, [{Org, Reason} | Acc])
      end.
  
  %% An org reset can fail for a number of valid reasons. When we are following the flow
  %% of interactively resetting multiple orgs then continuing, it makes sense to abort up front.
  %% However, in an unattended migration, we'll capture any error and just note that we can't reset the org,
  %% so that we can move on to the next org.
  reset_org(OrgName) ->
      try
          mover_util:reset_org(OrgName),
          ok
      catch
          % Note that details are already captured in the error log - we'll
  
negative.code: 
  -export([ping/0,
           migrate_all/0,
           migrate_all/1,
           wait_for_status/0]).
  
  -define(POLL_SLEEP_MS, 500).
  