Current section
Files
Jump to
Current section
Files
src/etcdc_admin.erl
-module(etcdc_admin).
-export([get_config/0, set_config/3,
list_machines/0, del_machine/1]).
%% ----------------------------------------------------------------------------
-spec get_config() -> {ok, #{}} | {error, #{}}.
get_config() ->
etcdc_lib:call(get, etcd_admin_port, "/v2/admin/config", []).
-spec set_config(integer(), integer(), integer()) -> {ok, #{}} | {error, #{}}.
set_config(ActiveSize, RemoveDelay, SyncInterval) ->
M = #{<<"activeSize">> => ActiveSize,
<<"removeDelay">> => RemoveDelay,
<<"syncInterval">> => SyncInterval},
Value = lejson:encode(M),
io:format("payload: ~s~n", [Value]),
etcdc_lib:call(put, etcd_admin_port, "/v2/admin/config", [], Value).
-spec list_machines() -> {ok, #{}} | {error, #{}}.
list_machines() ->
etcdc_lib:call(get, etcd_admin_port, "/v2/admin/machines", []).
-spec del_machine(iolist()) -> {ok, #{}} | {error, #{}}.
del_machine(MachineName) ->
Path = "v2/admin/machines/" ++ MachineName,
etcdc_lib:call(delete, etcd_admin_port, Path, []).