./ct_report/coverage/mongoose_wpool_riak.COVER.html

1 -module(mongoose_wpool_riak).
2 -behaviour(mongoose_wpool).
3
4 -export([init/0]).
5 -export([start/4]).
6 -export([stop/2]).
7 -export([is_supported_strategy/1]).
8 -export([get_riak_opt/2]).
9 -export([get_riak_opt/3]).
10
11 -ignore_xref([get_riak_opt/3]).
12
13 %% --------------------------------------------------------------
14 %% mongoose_wpool callbacks
15 init() ->
16
:-(
ok.
17
18 start(HostType, Tag, WpoolOptsIn, ConnOpts) ->
19
:-(
ProcName = mongoose_wpool:make_pool_name(riak, HostType, Tag),
20
:-(
WpoolOpts = wpool_spec(WpoolOptsIn, ConnOpts),
21
:-(
mongoose_wpool:start_sup_pool(riak, ProcName, WpoolOpts).
22
23 stop(_, _) ->
24
:-(
ok.
25
26
:-(
is_supported_strategy(available_worker) -> false;
27
:-(
is_supported_strategy(_) -> true.
28
29 %% --------------------------------------------------------------
30 %% Other functions
31
32 wpool_spec(WpoolOptsIn, ConnOpts) ->
33
:-(
{_, RiakAddr} = mongoose_wpool_riak:get_riak_opt(address, ConnOpts),
34
:-(
{_, RiakPort} = mongoose_wpool_riak:get_riak_opt(port, ConnOpts),
35
:-(
SecurityOptsKeys = [credentials, cacertfile, ssl_opts],
36
:-(
SecurityOpts = [get_riak_opt(OptKey, ConnOpts) || OptKey <- SecurityOptsKeys],
37
:-(
RiakPBOpts = [auto_reconnect, keepalive],
38
:-(
WorkerArgs = maybe_add_additional_opts(RiakPBOpts, SecurityOpts),
39
:-(
Worker = {riakc_pb_socket, [RiakAddr, RiakPort, WorkerArgs]},
40
:-(
[{worker, Worker} | WpoolOptsIn].
41
42
43 %% @doc Gets a particular option from `Opts'. They're expressed as a list
44 %% of tuples where the first element is `OptKey'. If provided `OptKey' doesn't
45 %% exist the `Default' is returned.
46 -spec get_riak_opt(OptKey :: atom(), Opts :: [tuple()], Default :: tuple()) ->
47 tuple().
48 get_riak_opt(OptKey, Opts, Default) ->
49
:-(
Opt = get_riak_opt(OptKey, Opts),
50
:-(
verify_if_riak_opt_exists(Opt, Default).
51
52 get_riak_opt(OptKey, Opts) ->
53
:-(
lists:keyfind(OptKey, 1, Opts).
54
55
:-(
verify_if_riak_opt_exists(false, Default) -> Default;
56
:-(
verify_if_riak_opt_exists(Opt, _) -> Opt.
57
58 %% @doc Merges `AdditionalOpts' into `Opts' if a particular additional option
59 %% exists.
60 -spec maybe_add_additional_opts(Opts :: [term()],
61 AdditionalOpts :: [tuple()]) -> [term()].
62 maybe_add_additional_opts(Opts, AdditionalOpts) ->
63
:-(
Opts2 = [verify_if_riak_opt_exists(Opt, []) || Opt <- AdditionalOpts],
64
:-(
lists:flatten(Opts ++ Opts2).
Line Hits Source