Skip to content

Instantly share code, notes, and snippets.

@kellymclaughlin
Last active August 29, 2015 14:01
Show Gist options
  • Select an option

  • Save kellymclaughlin/1d1ee22fe5d14e038ec0 to your computer and use it in GitHub Desktop.

Select an option

Save kellymclaughlin/1d1ee22fe5d14e038ec0 to your computer and use it in GitHub Desktop.

Revisions

  1. kellymclaughlin revised this gist May 27, 2014. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion user_upgrade.escript
    Original file line number Diff line number Diff line change
    @@ -1,6 +1,6 @@
    #!/usr/bin/env escript
    %% -*- coding: utf-8 -*-
    %%! -pa /usr/lib64/riak-cs/lib/riakc-1.4.1/ebin /usr/lib64/riak-cs/lib/riak_pb-1.4.4.0/ebin /usr/lib64/riak-cs/lib/protobuffs-0.8.1/ebin /usr/lib64/riak-cs/lib/riak_cs-1.4.5 /usr/lib/riak-cs/lib/riakc-1.4.1/ebin /usr/lib/riak-cs/lib/riak_pb-1.4.4.0/ebin /usr/lib/riak-cs/lib/protobuffs-0.8.1/ebin /usr/lib/riak-cs/lib/riak_cs-1.4.5
    %%! -pa /usr/lib64/riak-cs/lib/riakc-1.4.1/ebin /usr/lib64/riak-cs/lib/riak_pb-1.4.4.0/ebin /usr/lib64/riak-cs/lib/protobuffs-0.8.1/ebin /usr/lib64/riak-cs/lib/riak_cs-1.4.5/ebin /usr/lib/riak-cs/lib/riakc-1.4.1/ebin /usr/lib/riak-cs/lib/riak_pb-1.4.4.0/ebin /usr/lib/riak-cs/lib/protobuffs-0.8.1/ebin /usr/lib/riak-cs/lib/riak_cs-1.4.5/ebin
    %%! -pa /usr/lib64/riak-cs/lib/riakc-1.3.1.1/ebin /usr/lib64/riak-cs/lib/riak_pb-1.3.0/ebin /usr/lib64/riak-cs/lib/protobuffs-0.8.0/ebin /usr/lib/riak-cs/lib/riakc-1.3.1.1/ebin /usr/lib/riak-cs/lib/riak_pb-1.3.0/ebin /usr/lib/riak-cs/lib/protobuffs-0.8.0/ebin /usr/lib/riak-cs/ebin
    %%! -pa /Users/kelly/basho/repos/riak_cs/deps/riakc/ebin /Users/kelly/basho/repos/riak_cs/deps/riak_pb/ebin /Users/kelly/basho/repos/riak_cs/deps/protobuffs/ebin /Users/kelly/basho/repos/riak_cs/deps/riakc/ebin /Users/kelly/basho/repos/riak_cs/deps/riak_pb/ebin /Users/kelly/basho/repos/riak_cs/deps/protobuffs/ebin /Users/kelly/basho/repos/riak_cs/deps/mochiweb/ebin /Users/kelly/basho/repos/riak_cs/ebin

  2. kellymclaughlin revised this gist May 27, 2014. 1 changed file with 1 addition and 2 deletions.
    3 changes: 1 addition & 2 deletions user_upgrade.escript
    Original file line number Diff line number Diff line change
    @@ -1,7 +1,6 @@
    #!/usr/bin/env escript
    %% -*- coding: utf-8 -*-
    %%! -pa /usr/lib64/riak-cs/lib/riakc-1.4.1/ebin /usr/lib64/riak-cs/lib/riak_pb-1.4.4.0/ebin /usr/lib64/riak-cs/lib/protobuffs-0.8.1/ebin /usr/lib64/riak-cs/lib/riak_cs-1.4.5 /usr/lib/riak-cs/lib/riakc-1.4.1/ebin /usr/lib/riak-cs/lib/riak_pb-1.4.4.0/ebin /usr/lib/riak-cs/lib/protobu\
    ffs-0.8.1/ebin /usr/lib/riak-cs/lib/riak_cs-1.4.5
    %%! -pa /usr/lib64/riak-cs/lib/riakc-1.4.1/ebin /usr/lib64/riak-cs/lib/riak_pb-1.4.4.0/ebin /usr/lib64/riak-cs/lib/protobuffs-0.8.1/ebin /usr/lib64/riak-cs/lib/riak_cs-1.4.5 /usr/lib/riak-cs/lib/riakc-1.4.1/ebin /usr/lib/riak-cs/lib/riak_pb-1.4.4.0/ebin /usr/lib/riak-cs/lib/protobuffs-0.8.1/ebin /usr/lib/riak-cs/lib/riak_cs-1.4.5
    %%! -pa /usr/lib64/riak-cs/lib/riakc-1.3.1.1/ebin /usr/lib64/riak-cs/lib/riak_pb-1.3.0/ebin /usr/lib64/riak-cs/lib/protobuffs-0.8.0/ebin /usr/lib/riak-cs/lib/riakc-1.3.1.1/ebin /usr/lib/riak-cs/lib/riak_pb-1.3.0/ebin /usr/lib/riak-cs/lib/protobuffs-0.8.0/ebin /usr/lib/riak-cs/ebin
    %%! -pa /Users/kelly/basho/repos/riak_cs/deps/riakc/ebin /Users/kelly/basho/repos/riak_cs/deps/riak_pb/ebin /Users/kelly/basho/repos/riak_cs/deps/protobuffs/ebin /Users/kelly/basho/repos/riak_cs/deps/riakc/ebin /Users/kelly/basho/repos/riak_cs/deps/riak_pb/ebin /Users/kelly/basho/repos/riak_cs/deps/protobuffs/ebin /Users/kelly/basho/repos/riak_cs/deps/mochiweb/ebin /Users/kelly/basho/repos/riak_cs/ebin

  3. kellymclaughlin revised this gist May 27, 2014. 1 changed file with 2 additions and 0 deletions.
    2 changes: 2 additions & 0 deletions user_upgrade.escript
    Original file line number Diff line number Diff line change
    @@ -1,5 +1,7 @@
    #!/usr/bin/env escript
    %% -*- coding: utf-8 -*-
    %%! -pa /usr/lib64/riak-cs/lib/riakc-1.4.1/ebin /usr/lib64/riak-cs/lib/riak_pb-1.4.4.0/ebin /usr/lib64/riak-cs/lib/protobuffs-0.8.1/ebin /usr/lib64/riak-cs/lib/riak_cs-1.4.5 /usr/lib/riak-cs/lib/riakc-1.4.1/ebin /usr/lib/riak-cs/lib/riak_pb-1.4.4.0/ebin /usr/lib/riak-cs/lib/protobu\
    ffs-0.8.1/ebin /usr/lib/riak-cs/lib/riak_cs-1.4.5
    %%! -pa /usr/lib64/riak-cs/lib/riakc-1.3.1.1/ebin /usr/lib64/riak-cs/lib/riak_pb-1.3.0/ebin /usr/lib64/riak-cs/lib/protobuffs-0.8.0/ebin /usr/lib/riak-cs/lib/riakc-1.3.1.1/ebin /usr/lib/riak-cs/lib/riak_pb-1.3.0/ebin /usr/lib/riak-cs/lib/protobuffs-0.8.0/ebin /usr/lib/riak-cs/ebin
    %%! -pa /Users/kelly/basho/repos/riak_cs/deps/riakc/ebin /Users/kelly/basho/repos/riak_cs/deps/riak_pb/ebin /Users/kelly/basho/repos/riak_cs/deps/protobuffs/ebin /Users/kelly/basho/repos/riak_cs/deps/riakc/ebin /Users/kelly/basho/repos/riak_cs/deps/riak_pb/ebin /Users/kelly/basho/repos/riak_cs/deps/protobuffs/ebin /Users/kelly/basho/repos/riak_cs/deps/mochiweb/ebin /Users/kelly/basho/repos/riak_cs/ebin

  4. kellymclaughlin created this gist May 23, 2014.
    51 changes: 51 additions & 0 deletions user_upgrade.escript
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,51 @@
    #!/usr/bin/env escript
    %% -*- coding: utf-8 -*-
    %%! -pa /usr/lib64/riak-cs/lib/riakc-1.3.1.1/ebin /usr/lib64/riak-cs/lib/riak_pb-1.3.0/ebin /usr/lib64/riak-cs/lib/protobuffs-0.8.0/ebin /usr/lib/riak-cs/lib/riakc-1.3.1.1/ebin /usr/lib/riak-cs/lib/riak_pb-1.3.0/ebin /usr/lib/riak-cs/lib/protobuffs-0.8.0/ebin /usr/lib/riak-cs/ebin
    %%! -pa /Users/kelly/basho/repos/riak_cs/deps/riakc/ebin /Users/kelly/basho/repos/riak_cs/deps/riak_pb/ebin /Users/kelly/basho/repos/riak_cs/deps/protobuffs/ebin /Users/kelly/basho/repos/riak_cs/deps/riakc/ebin /Users/kelly/basho/repos/riak_cs/deps/riak_pb/ebin /Users/kelly/basho/repos/riak_cs/deps/protobuffs/ebin /Users/kelly/basho/repos/riak_cs/deps/mochiweb/ebin /Users/kelly/basho/repos/riak_cs/ebin

    -include_lib("riak_cs/include/riak_cs.hrl").

    -define(USERS_BUCKET, <<"moss.users">>).

    usage() ->
    io:format("Usage: ./user_upgrade.escript [<RiakIP>] [<RiakPort>]~n").

    main(Args) when length(Args) =/= 2 ->
    usage();
    main(Args) when length(Args) =:= 2 ->
    [RiakHost, Port] = Args,
    RiakPort = format_port(Port),
    {ok, Pid} = riakc_pb_socket:start(RiakHost, RiakPort),
    {ok, UserIds} = riakc_pb_socket:list_keys(Pid, ?USERS_BUCKET),
    [begin
    UserId = binary_to_list(UserIdBin),
    {Record, Object} = get_user(UserId, Pid),
    case is_record(Record, moss_user_v1) of
    true ->
    riak_cs_utils:save_user(update_user_record(Record), Object, Pid),
    io:format("User record for ~p updated~n", [UserId]);
    false ->
    ok
    end
    end || UserIdBin <- UserIds],
    riakc_pb_socket:stop(Pid).

    get_user(Id, Pid) ->
    {ok, Obj} = riakc_pb_socket:get(Pid, ?USERS_BUCKET, Id),
    Record = binary_to_term(riakc_obj:get_value(Obj)),
    {Record, Obj}.

    update_user_record(UserRecord) ->
    #rcs_user_v2{name=UserRecord#moss_user_v1.name,
    display_name=UserRecord#moss_user_v1.display_name,
    email=UserRecord#moss_user_v1.email,
    key_id=UserRecord#moss_user_v1.key_id,
    key_secret=UserRecord#moss_user_v1.key_secret,
    canonical_id=UserRecord#moss_user_v1.canonical_id,
    buckets=UserRecord#moss_user_v1.buckets,
    status=enabled}.

    format_port(Port) when is_integer(Port) ->
    Port;
    format_port(Port) when is_list(Port) ->
    list_to_integer(Port).