Skip to content

Instantly share code, notes, and snippets.

@shino
Created September 30, 2015 03:31
Show Gist options
  • Save shino/928a3da3bd4afaeb2fd4 to your computer and use it in GitHub Desktop.
Save shino/928a3da3bd4afaeb2fd4 to your computer and use it in GitHub Desktop.

Investigate arbitrary atom creation possibility

Two skeptical functions, one in velvet and one in folsom.

velvet

stanchion_acl_utils:process_grant/2

process_grant([{Name, Value} | RestObjects], Grant) ->
    case Name of
        <<"canonical_id">> ->
            _ = lager:debug("ID value: ~p", [Value]),
            {{DispName, _}, Perms} = Grant,
            UpdGrant = {{DispName, binary_to_list(Value)}, Perms};
        <<"display_name">> ->
            _ = lager:debug("Name value: ~p", [Value]),
            {{_, Id}, Perms} = Grant,
            UpdGrant = {{binary_to_list(Value), Id}, Perms};
        <<"group">> ->
            _ = lager:debug("Group value: ~p", [Value]),
            {_, Perms} = Grant,
            UpdGrant = {list_to_atom(
                          binary_to_list(Value)), Perms};
        ...

called-by tree

  • stanchion_acl_utils:process_grant/2
    • stanchion_acl_utils:process_grant/2 (self call)
    • stanchion_acl_utils:process_grants/2
      • stanchion_acl_utils:process_grants/2 (self call)
      • stanchion_acl_utils:process_acl_contents/2
        • stanchion_acl_utils:process_acl_contents/2 (self call)
        • stanchion_acl_utils:acl_from_json/1 (public)
          • stanchion_acl_utils:acl_from_json_test/0 (test)
          • (no call from riak_cs or other deps/*)

This is a function that is used in stanchion node. Not used in riak-cs node. Should be removed.

folsom

pid_port_fun_to_atom(Term) when is_pid(Term) ->
    erlang:list_to_atom(pid_to_list(Term));

called-by tree

  • folsom_vm_metrics:pid_port_fun_to_atom/1
    • folsom_vm_metrics:get_process_info/0 (public)
    • folsom_vm_metrics:get_port_info/0 (public)
    • folsom_vm_metrics:get_ets_dets_info/2
      • folsom_vm_metrics:get_ets_info/0 (public)
      • folsom_vm_metrics:get_dets_info/0 (public)
    • folsom_vm_metrics:convert_port_info/1
      • folsom_vm_metrics:get_erlang_port_info/1
        • folsom_vm_metrics:get_port_info/1
          • folsom_vm_metrics:get_port_info/0 (public)
    • folsom_vm_metrics:convert_pid_info/1
      • folsom_vm_metrics:get_process_info/1
        • folsom_vm_metrics:get_process_info/0 (public)

Related public functions

  • folsom_vm_metrics:get_process_info/0 (public)
    • [No call from inside of folsom, riak_cs]
  • folsom_vm_metrics:get_port_info/0 (public)
    • [No call from inside of folsom, riak_cs]
  • folsom_vm_metrics:get_ets_info/0 (public)
    • [No call from inside of folsom, riak_cs]
  • folsom_vm_metrics:get_dets_info/0 (public)
    • [No call from inside of folsom, riak_cs]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment