anchor.diff:  migrate(Pid) ->
       gen_fsm:send_event(Pid, go).
   
  -%% S = node_mover:connect("localhost", 8484).
  -%% Config = [{org_name, <<"userprimary">>}, {org_id, <<"60d3ed4da757402ea5dd6da9131baeef">>}, {batch_size, 3}, {chef_otto, S}].
   %% {S, Config} = node_mover:setup().
   %% {ok, Pid} = node_mover_worker:start_link(Config).
   %% node_mover_worker:migrate(Pid).
  
positive.code:     %% this is where we'd call chef_db:create_node(S, Node) shortcut
      %% will be to pass 'ignore' for first arg since not needed for
      %% emysql backed node creation.
      io:format("migrating: ~p ~n", [Node]),
      file:write_file(<<OrgId/binary, "_nodes_complete.txt">>, 
                      iolist_to_binary([Name, <<"\t">>, OrigId, <<"\t">>,
                                        Node#chef_node.id, "\n"]),
                      [append]),
      write_nodes_to_sql(OrgId, Rest);
  write_nodes_to_sql(OrgId, [{error, _NodeData}|Rest]) ->
      %% FIXME: how should we track errors of this sort if they occur?
      %% This is a case where we found node json, but no matching mixlib
      %% or authz data.
      write_nodes_to_sql(OrgId, Rest);
  write_nodes_to_sql(_, []) ->
      ok.
  
  fetch_node_meta_data(S, OrgName, OrgId, Name, Id) ->
  
negative.code: %% Internal Function Definitions
  %% ------------------------------------------------------------------
  
  write_nodes_to_sql(S, OrgId, [{#node_cache{}=MetaData, NodeData} | Rest]) ->
      #node_cache{name = Name, authz_id = AuthzId,
                  id = OrigId,
                  requestor_id = RequestorId} = MetaData,
  