diff --git a/apps/riak/src/riak.app.src b/apps/riak/src/riak.app.src index 093911f8..8d915f56 100644 --- a/apps/riak/src/riak.app.src +++ b/apps/riak/src/riak.app.src @@ -15,6 +15,7 @@ runtime_tools, cluster_info, riak_kv, + riak_admin_api, riak_auth_mods ]}, {env, []} diff --git a/rebar.config b/rebar.config index 3bd14c1e..ab5d0d36 100644 --- a/rebar.config +++ b/rebar.config @@ -9,7 +9,8 @@ {deps, [ {riak_logger, {git, "https://github.com/OpenRiak/riak_logger", {branch, "openriak-3.4"}}}, {riak_kv, {git, "https://github.com/OpenRiak/riak_kv", {branch, "openriak-4.0"}}}, - {riak_auth_mods, {git, "https://github.com/OpenRiak/riak_auth_mods", {branch, "openriak-3.4"}}} + {riak_auth_mods, {git, "https://github.com/OpenRiak/riak_auth_mods", {branch, "openriak-3.4"}}}, + {riak_admin_api, {git, "https://github.com/TI-Tokyo/riak_admin_api", {branch, "openriak-4.0"}}} ]}. {project_plugins, [ @@ -33,7 +34,8 @@ eleveldb_multi, leveled, leveled_multi, - multi_backend + multi_backend, + riak_admin_api ]} ]}. @@ -49,14 +51,13 @@ observer, runtime_tools, xmerl, - mochiweb, - webmachine, basho_stats, bitcask, clique, riak_core, riak_kv, riak_api, + riak_admin_api, cluster_info, riak_auth_mods, riak_logger]}, @@ -77,6 +78,7 @@ {template, "rel/files/riak-chkconfig", "bin/riak-chkconfig"}, {template, "rel/files/riak-repl", "bin/riak-repl"}, {template, "rel/files/riak", "usr/bin/riak"}, + {template, "rel/files/riak-deadmanshand", "bin/riak-deadmanshand"}, {copy, "rel/files/hooks/check_ulimit", "bin/hooks/check_ulimit"}, {copy, "rel/files/hooks/erl_codeloadingmode","bin/hooks/erl_codeloadingmode"}, diff --git a/rebar.lock b/rebar.lock deleted file mode 100644 index e1b0012d..00000000 --- a/rebar.lock +++ /dev/null @@ -1,145 +0,0 @@ -[{<<"basho_stats">>, - {git,"https://github.com/OpenRiak/basho_stats.git", - {ref,"189e194515f50dc00989d1cc8fe7ae440ffc0f03"}}, - 2}, - {<<"bitcask">>, - {git,"https://github.com/OpenRiak/bitcask.git", - {ref,"8c12bc5e920846ff01f72cb2d115483b8825181d"}}, - 1}, - {<<"canola">>, - {git,"https://github.com/OpenRiak/canola", - {ref,"5603a336cc5b2736730ae84946fa9170ce05ca4c"}}, - 1}, - {<<"clique">>, - {git,"https://github.com/OpenRiak/clique.git", - {ref,"90d72664ea7e7550403d44f3f03204839194eb93"}}, - 2}, - {<<"cluster_info">>, - {git,"https://github.com/OpenRiak/cluster_info.git", - {ref,"605991c54396de8d79db2dce3dd5bcb99a941a4b"}}, - 2}, - {<<"cuttlefish">>, - {git,"https://github.com/OpenRiak/cuttlefish.git", - {ref,"3d66fbdc6f1fe4fa551a86b25d28e8eb31e34122"}}, - 3}, - {<<"eleveldb">>, - {git,"https://github.com/OpenRiak/eleveldb.git", - {ref,"cd6b813950e6c635daee51f397b88411dbbd8608"}}, - 2}, - {<<"eqwalizer_support">>, - {git_subdir,"https://github.com/OpenRiak/eqwalizer.git", - {ref,"759af3c1ab1062bcafbc4a528634f958d85a69f0"}, - "eqwalizer_support"}, - 2}, - {<<"exometer_core">>, - {git,"https://github.com/OpenRiak/exometer_core.git", - {ref,"85db7687a3e43e6a451bf0778860a547caa2faa0"}}, - 2}, - {<<"ezstd">>, - {git,"https://github.com/OpenRiak/zstd-erlang", - {ref,"c55be8e288949ab19067c0aa9f7d098fd4119468"}}, - 3}, - {<<"getopt">>, - {git,"https://github.com/OpenRiak/getopt.git", - {ref,"7beaebb83f0118284e32177b734d72a7a6ce4ed1"}}, - 4}, - {<<"hut">>, - {git,"https://github.com/OpenRiak/hut.git", - {ref,"d1e1b4851f4efd1e7b45fdfe4b9a7d089c032442"}}, - 3}, - {<<"ibrowse">>, - {git,"https://github.com/OpenRiak/ibrowse.git", - {ref,"3fd17dd33c474800a4d02ad4e5ae9d4db45e0335"}}, - 2}, - {<<"kv_index_tictactree">>, - {git,"https://github.com/OpenRiak/kv_index_tictactree.git", - {ref,"c534c9f915edda6d8d1d35d9f965b18aab18ed15"}}, - 1}, - {<<"leveled">>, - {git,"https://github.com/OpenRiak/leveled.git", - {ref,"c5122b9b0be9edd32acd4a1f8c3ac12a8aabeb59"}}, - 2}, - {<<"lz4">>, - {git,"https://github.com/OpenRiak/erlang-lz4", - {ref,"29d286efa361b3338846aa2113d142d993cc6138"}}, - 3}, - {<<"mochiweb">>, - {git,"https://github.com/OpenRiak/mochiweb.git", - {ref,"b5ffed149b27174bb9b28644ae2cf2892837341e"}}, - 2}, - {<<"parse_trans">>, - {git,"https://github.com/OpenRiak/parse_trans.git", - {ref,"160498e19878fd383fac25e72b8565dee3aeffa7"}}, - 3}, - {<<"pbkdf2">>, - {git,"https://github.com/OpenRiak/erlang-pbkdf2.git", - {ref,"901468ec21f8f256c7cdf78a2de41d76b26753b2"}}, - 2}, - {<<"poolboy">>, - {git,"https://github.com/OpenRiak/poolboy.git", - {ref,"05648efcb96a58cafdeadeb4072cb6c3ada0ac66"}}, - 2}, - {<<"recon">>, - {git,"https://github.com/OpenRiak/recon", - {ref,"36590aa24784d13f4ae967e5715249c82956e95a"}}, - 1}, - {<<"redbug">>, - {git,"https://github.com/OpenRiak/redbug", - {ref,"838ff3bdfa05cb2974b512a5cffc8d730b45cc44"}}, - 1}, - {<<"rhc">>, - {git,"https://github.com/OpenRiak/riak-erlang-http-client", - {ref,"4123962bea52240afed6a8f48cf87a3ada30363c"}}, - 1}, - {<<"riak_api">>, - {git,"https://github.com/OpenRiak/riak_api.git", - {ref,"87e8b88248b2e7e586b1f5bc003f51080b8c6a69"}}, - 1}, - {<<"riak_auth_mods">>, - {git,"https://github.com/OpenRiak/riak_auth_mods", - {ref,"bd867256b10dca3831241b2b46a54a6627b52b51"}}, - 0}, - {<<"riak_core">>, - {git,"https://github.com/OpenRiak/riak_core.git", - {ref,"35958f66579e4611a3817ab009adeb707cc12e4f"}}, - 1}, - {<<"riak_dt">>, - {git,"https://github.com/OpenRiak/riak_dt.git", - {ref,"72b9bce98623a15a4d5dec73fd5be17de73a55b7"}}, - 1}, - {<<"riak_kv">>, - {git,"https://github.com/OpenRiak/riak_kv", - {ref,"222cdb88bc3dcd8f4ef08f93b0a7bc56e84d923f"}}, - 0}, - {<<"riak_logger">>, - {git,"https://github.com/OpenRiak/riak_logger", - {ref,"7e48e4f693b49495f47016a7756c9b132869b082"}}, - 0}, - {<<"riak_pb">>, - {git,"https://github.com/OpenRiak/riak_pb.git", - {ref,"5f6e994cd45db5bdb254a515babb48d38ead485a"}}, - 1}, - {<<"riak_sysmon">>, - {git,"https://github.com/OpenRiak/riak_sysmon.git", - {ref,"5b8b5469781de784b82a471f27dbfc6296b89ca8"}}, - 2}, - {<<"riakc">>, - {git,"https://github.com/OpenRiak/riak-erlang-client", - {ref,"69c8d51857cc5705f594143912264d32fe2b9a8a"}}, - 2}, - {<<"setup">>, - {git,"https://github.com/OpenRiak/setup.git", - {ref,"76133196bfe9903f8b7914ce3a85d9cffff5dfc1"}}, - 3}, - {<<"sext">>, - {git,"https://github.com/OpenRiak/sext.git", - {ref,"ab06f84bdd97eb9354553ab64270988b60e09ad6"}}, - 1}, - {<<"sidejob">>, - {git,"https://github.com/OpenRiak/sidejob.git", - {ref,"3b247f5f8fb67d6b27bd0abed00a1135b416aaca"}}, - 1}, - {<<"webmachine">>, - {git,"https://github.com/OpenRiak/webmachine.git", - {ref,"1a0c47adacc84fe1e3b28afb991b60832afae343"}}, - 2}]. diff --git a/rel/files/riak-admin b/rel/files/riak-admin index 8b67e82a..cd3f1089 100755 --- a/rel/files/riak-admin +++ b/rel/files/riak-admin @@ -51,6 +51,7 @@ usage() { echo " reip | reip_manual | erl-reload | wait-for-service | " echo " ringready | transfers | force-remove | down |" echo " cluster-info | member-status | ring-status | vnode-status |" + echo " admin-api |" echo " tictacaae |" echo " aae-status | diag | stat | status | transfer-limit | reformat-indexes |" echo " top [-interval N] [-sort reductions|memory|msg_q] [-lines N] |" @@ -623,6 +624,11 @@ tictacaae_admin() rpc riak_kv_console command $SCRIPT tictacaae "$@" } +admin_api_admin() +{ + rpc riak_admin_api_console command $SCRIPT "admin-api" "$@" +} + # Check the first argument for instructions @@ -1039,6 +1045,10 @@ case "$1" in shift tictacaae_admin "$@" ;; + admin-api) + shift + admin_api_admin "$@" + ;; *) usage exit 1 diff --git a/rel/files/riak-deadmanshand b/rel/files/riak-deadmanshand new file mode 100755 index 00000000..01066d3e --- /dev/null +++ b/rel/files/riak-deadmanshand @@ -0,0 +1,29 @@ +#!/bin/sh + +p=$(pwd) + +if [ -z "{{pid_dir}}" ]; then + ## this is locally built rel or devrel + b=$(cd $(dirname "$0")/.. && pwd -P) + d=$b + cd $b +else + ## packaged + d={{pid_dir}} + ## no cd: platform_bin_dir is absolute +fi + +while true; do + sleep 3 + if [ -r $d/RESTART_RIAK ]; then + {{platform_bin_dir}}/riak stop + {{platform_bin_dir}}/riak start + rm -f $d/RESTART_RIAK + fi + if [ -r $d/STOP_SELF ]; then + rm -f $d/STOP_SELF + break + fi +done + +cd $p diff --git a/rel/gen_dev b/rel/gen_dev index b48c621f..6c8e1996 100755 --- a/rel/gen_dev +++ b/rel/gen_dev @@ -20,6 +20,7 @@ CM_PORT=$(($BASE + 6)) PBPORT=$(($BASE + 7)) WEBPORT=$(($BASE + 8)) HANDOFFPORT=$(($BASE + 9)) +ADMINAPIPORT=$((BASE + 4)) PLATFORM_BASE_DIR="$BUILD_ROOT/dev/$NAME/riak" echo "Generating $NAME - node='$NODE' pbc=$PBPORT http=$WEBPORT handoff=$HANDOFFPORT" @@ -27,5 +28,6 @@ sed -e "s|@PLATFORM_BASE_DIR@|$PLATFORM_BASE_DIR|" \ -e "s/@NODE@/$NODE/" \ -e "s/@PBPORT@/$PBPORT/" \ -e "s/@WEBPORT@/$WEBPORT/" \ + -e "s/@ADMINAPIPORT@/$ADMINAPIPORT/" \ -e "s/@CM_PORT@/$CM_PORT/" \ -e "s/@HANDOFFPORT@/$HANDOFFPORT/" < $TEMPLATE > $VARFILE diff --git a/rel/pkg/alpine/vars.config b/rel/pkg/alpine/vars.config index 50852e43..22c20ee8 100644 --- a/rel/pkg/alpine/vars.config +++ b/rel/pkg/alpine/vars.config @@ -24,6 +24,8 @@ {handoff_port, 8099}. {pb_ip, "127.0.0.1"}. {pb_port, 8087}. +{admin_api_ip, "0.0.0.0"}. +{admin_api_port, 8084}. {storage_backend, "bitcask"}. diff --git a/rel/pkg/deb/vars.config b/rel/pkg/deb/vars.config index 0e928fc7..e0b428a1 100644 --- a/rel/pkg/deb/vars.config +++ b/rel/pkg/deb/vars.config @@ -24,6 +24,8 @@ {handoff_port, 8099}. {pb_ip, "127.0.0.1"}. {pb_port, 8087}. +{admin_api_ip, "0.0.0.0"}. +{admin_api_port, 8084}. {storage_backend, "bitcask"}. diff --git a/rel/pkg/rpm/vars.config.part b/rel/pkg/rpm/vars.config.part index ffe8b577..3c6f06e3 100644 --- a/rel/pkg/rpm/vars.config.part +++ b/rel/pkg/rpm/vars.config.part @@ -16,6 +16,8 @@ {handoff_port, 8099}. {pb_ip, "127.0.0.1"}. {pb_port, 8087}. +{admin_api_ip, "0.0.0.0"}. +{admin_api_port, 8084}. {storage_backend, "bitcask"}. diff --git a/rel/vars.config b/rel/vars.config index d6a4e81b..ccfa97a4 100644 --- a/rel/vars.config +++ b/rel/vars.config @@ -24,6 +24,8 @@ {handoff_ip, "0.0.0.0"}. {pb_ip, "127.0.0.1"}. {pb_port, 8087}. +{admin_api_ip, "0.0.0.0"}. +{admin_api_port, 8084}. {storage_backend, "bitcask"}. {sasl_error_log, "{{platform_log_dir}}/sasl-error.log"}. {sasl_log_dir, "{{platform_log_dir}}/sasl"}. diff --git a/rel/vars/dev_vars.config.src b/rel/vars/dev_vars.config.src index 1446d56b..9157f3cd 100644 --- a/rel/vars/dev_vars.config.src +++ b/rel/vars/dev_vars.config.src @@ -26,6 +26,8 @@ {handoff_port, @HANDOFFPORT@}. {pb_ip, "127.0.0.1"}. {pb_port, @PBPORT@}. +{admin_api_ip, "0.0.0.0"}. +{admin_api_port, @ADMINAPIPORT@}. {storage_backend, "bitcask"}. {sasl_error_log, "{{platform_log_dir}}/sasl-error.log"}. {sasl_log_dir, "{{platform_log_dir}}/sasl"}. diff --git a/rel/vars/perf_vars.config.src b/rel/vars/perf_vars.config.src index 01c8c7b0..d12783f4 100644 --- a/rel/vars/perf_vars.config.src +++ b/rel/vars/perf_vars.config.src @@ -19,6 +19,8 @@ {handoff_port, 8090}. {pb_ip, "127.0.0.1"}. {pb_port, 8081}. +{admin_api_ip, "0.0.0.0"}. +{admin_api_port, 8084}. {storage_backend, "yessir"}. {ring_state_dir, "{{platform_data_dir}}/ring"}. {bitcask_data_root, "{{platform_data_dir}}/bitcask"}.