Commits

Anonymous committed 20e1a57

update riak_demo.escript for binary bucket names an non-doorbell client_connect

Comments (0)

Files changed (1)

riak_demo.escript

 #!/usr/bin/env escript
 %% -*- erlang -*-
-%%! -name riak_demo@127.0.0.1 -pa ebin
+%%! -name riak_demo@127.0.0.1 -pa ebin -setcookie xyzzy
 main([ConfigFile]) ->
     case file:consult(ConfigFile) of
         {ok, Config} ->
-            run_demo(proplists:get_value(riak_hostname, Config),
-                     proplists:get_value(doorbell_port, Config),
+            run_demo(proplists:get_value(riak_nodename, Config),
+                     proplists:get_value(riak_hostname, Config),
                      proplists:get_value(riak_cookie, Config));
         Error ->
             io:format("Error: could not open config file: ~p~n", [Error]),
     io:format("usage: riak_demo.escript CONFIG_FILENAME~n"),
     halt(1).
 
-run_demo(Hostname, Port, Cookie) when is_list(Hostname),
-                                      is_integer(Port),
-                                      is_atom(Cookie) ->
-    io:format("Attempting to connect to ~s:~p with cookie ~p...~n",
-              [Hostname, Port, Cookie]),
-    case riak:client_connect(Hostname, Port, Cookie) of
+run_demo(NodeName, Hostname, Cookie) when is_atom(NodeName),
+                                          is_list(Hostname),
+                                          is_atom(Cookie) ->
+    Node = list_to_atom(atom_to_list(NodeName)++"@"++Hostname),
+    io:format("Attempting to connect to ~p with cookie ~p...~n",
+              [Node, Cookie]),
+    erlang:set_cookie(Node, Cookie),
+    case riak:client_connect(Node) of
         {ok, Client} ->
             io:format("Connected successfully~n"),
             continue_demo(Client);
         Error ->
             io:format("Error: failed to connect to Riak cluster: ~p", [Error])
     end;
-run_demo(Hostname, Port, Cookie) ->
+run_demo(NodeName, Hostname, Cookie) ->
     io:format("Error: invalid configuration file:~n"),
+    if is_list(NodeName) -> ok;
+       true -> io:format("  riak_nodename must be an atom (ex. 'riak')~n")
+    end,
     if is_list(Hostname) -> ok;
        true -> io:format("  riak_hostname must be a list (ex. \"127.0.0.1\")~n")
     end,
-    if is_integer(Port) -> ok;
-       true -> io:format("  doorbell_port must be an integer (ex. 9000)~n")
-    end,
     if is_atom(Cookie) -> ok;
        true -> io:format("  riak_cookie must be an atom (ex. 'riak_cookie')~n")
     end,
     usage().
 
 continue_demo(Client) ->
-    io:format("Looking for pre-existing object at {riak_demo, \"demo\"}...~n"),
+    io:format("Looking for pre-existing object at {<<\"riak_demo\">>, <<\"demo\">>}...~n"),
     WrittenValue =
-        case Client:get(riak_demo, <<"demo">>, 1) of
+        case Client:get(<<"riak_demo">>, <<"demo">>, 1) of
             {error, notfound} ->
                 io:format("  No pre-existing object found, creating new~n"),
-                demo_write(Client, riak_object:new(riak_demo, <<"demo">>, undefined));
+                demo_write(Client, riak_object:new(<<"riak_demo">>, <<"demo">>, undefined));
             {ok, Object} ->
                 io:format("  Pre-existing object found, modifying~n"),
                 demo_write(Client, Object);
             Error ->
-                io:format("Error: request for {riak_demo, \"demo\"} failed: ~p~n",
+                io:format("Error: request for {<<\"riak_demo\">>, <<\"demo\">>} failed: ~p~n",
                           [Error]),
                 halt(1)
         end,
     end.
 
 demo_read(Client, WrittenValue) ->
-    io:format("Fetching object at {riak_demo, \"demo\"}...~n"),
-    case Client:get(riak_demo, <<"demo">>, 1) of
+    io:format("Fetching object at {<<\"riak_demo\">>, <<\"demo\">>}...~n"),
+    case Client:get(<<"riak_demo">>, <<"demo">>, 1) of
         {ok, Object} ->
             io:format("  Fetched successfully~n"),
             case lists:member(WrittenValue, riak_object:get_values(Object)) of
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.