Skip to content

Commit 5f4b6f3

Browse files
author
Pablo Lopez
committed
Fixing issues with using ehttpc
1 parent 6146c2c commit 5f4b6f3

File tree

4 files changed

+34
-34
lines changed

4 files changed

+34
-34
lines changed

src/kinetic.erl

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,12 @@ stop() ->
3434
application:stop(kinetic).
3535

3636
start(Opts) when is_list(Opts) ->
37-
start_pool(),
37+
start_pool(Opts),
3838
kinetic_sup:start_link(Opts).
3939

4040
-spec start(normal | {takeover, node()} | {failover, node()}, any()) -> {ok, pid()}.
4141
start(_, Opts) ->
42-
start_pool(),
42+
start_pool(Opts),
4343
kinetic_sup:start_link(Opts).
4444

4545
-spec stop(any()) -> ok.
@@ -257,7 +257,6 @@ execute(Operation, Payload, Opts) ->
257257
#kinetic_arguments{aws_credentials = AwsCreds,
258258
region = Region,
259259
date = Date,
260-
url = Url,
261260
host = Host,
262261
timeout = Timeout} =
263262
kinetic_config:merge_args(Args, Opts),
@@ -283,7 +282,7 @@ execute(Operation, Payload, Opts) ->
283282
aws_date => Date},
284283
iolist_to_binary(Body))],
285284
Worker = ehttpc_pool:pick_worker(?EHTTPC_POOL),
286-
case ehttpc:request(Worker, post, {Url, Headers, Body}, Timeout) of
285+
case ehttpc:request(Worker, post, {"", Headers, Body}, Timeout) of
287286
{ok, 200, _, ResponseBody} ->
288287
{ok, kinetic_utils:decode(ResponseBody)};
289288
{ok, Code, RespHeaders, ResponseBody} ->
@@ -306,6 +305,16 @@ get_value(Key, TupleList) ->
306305
{Key, Value} = lists:keyfind(Key, 1, TupleList),
307306
Value.
308307

309-
start_pool() ->
308+
start_pool(Opts) ->
309+
Region =
310+
case proplists:get_value(region, Opts, undefined) of
311+
undefined ->
312+
{ok, Zone} = imds:zone(),
313+
kinetic_utils:region(Zone);
314+
R ->
315+
R
316+
end,
317+
Endpoint = kinetic_utils:endpoint(Region),
310318
PoolSize = application:get_env(?MODULE, pool_size, 100),
311-
ehttpc_sup:start_pool(?EHTTPC_POOL, [{pool_size, PoolSize}]).
319+
ehttpc_sup:start_pool(?EHTTPC_POOL,
320+
[{host, Endpoint}, {port, 443}, {pool_size, PoolSize}]).

src/kinetic_config.erl

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -85,31 +85,18 @@ handle_info(_Info, State) ->
8585

8686
% Internal implementation
8787

88-
region("us-east-1" ++ _R) ->
89-
"us-east-1";
90-
region("us-west-1" ++ _R) ->
91-
"us-west-1";
92-
region("us-west-2" ++ _R) ->
93-
"us-west-2";
94-
region("ap-northeast-1" ++ _R) ->
95-
"ap-northeast-1";
96-
region("ap-southeast-1" ++ _R) ->
97-
"ap-southeast-1";
98-
region("eu-west-1" ++ _R) ->
99-
"eu-west-1".
100-
10188
new_args(Opts) ->
10289
Region =
10390
case proplists:get_value(region, Opts, undefined) of
10491
undefined ->
10592
{ok, Zone} = imds:zone(),
106-
region(Zone);
93+
kinetic_utils:region(Zone);
10794
R ->
10895
R
10996
end,
11097

11198
DefaultTimeout = proplists:get_value(timeout, Opts, 5000),
112-
Host = kinetic_utils:endpoint("kinesis", Region),
99+
Host = kinetic_utils:endpoint(Region),
113100
Url = "https://" ++ Host,
114101

115102
%% erliam should support named profiles for using specific roles or preconfigured
@@ -141,7 +128,7 @@ new_args(Opts) ->
141128
merge_args(Args, []) ->
142129
Args;
143130
merge_args(Args, [{region, Region} | Rest]) ->
144-
Host = kinetic_utils:endpoint("kinesis", Region),
131+
Host = kinetic_utils:endpoint(Region),
145132
Url = "https://" ++ Host,
146133
merge_args(Args#kinetic_arguments{region = Region,
147134
host = Host,

src/kinetic_utils.erl

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,23 @@
11
-module(kinetic_utils).
22

3-
-export([endpoint/2, decode/1, encode/1]).
3+
-export([region/1, endpoint/1, decode/1, encode/1]).
44

5-
endpoint("kinesis", "us-east-1") ->
5+
region("us-east-1" ++ _R) ->
6+
"us-east-1";
7+
region("us-west-2" ++ _R) ->
8+
"us-west-2";
9+
region("ap-southeast-1" ++ _R) ->
10+
"ap-southeast-1";
11+
region("eu-west-1" ++ _R) ->
12+
"eu-west-1".
13+
14+
endpoint("us-east-1") ->
615
"kinesis.us-east-1.amazonaws.com";
7-
endpoint("kinesis", "us-west-1") ->
8-
"kinesis.us-west-1.amazonaws.com";
9-
endpoint("kinesis", "us-west-2") ->
16+
endpoint("us-west-2") ->
1017
"kinesis.us-west-2.amazonaws.com";
11-
endpoint("kinesis", "eu-west-1") ->
18+
endpoint("eu-west-1") ->
1219
"kinesis.eu-west-1.amazonaws.com";
13-
endpoint("kinesis", "ap-northeast-1") ->
14-
"kinesis.ap-northeast-1.amazonaws.com";
15-
endpoint("kinesis", "ap-southeast-1") ->
20+
endpoint("ap-southeast-1") ->
1621
"kinesis.ap-southeast-1.amazonaws.com".
1722

1823
decode(<<"">>) ->

test/kinetic_utils_tests.erl

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,9 @@ test_json_encoding_decoding() ->
1919

2020
test_endpoint() ->
2121
Service = "kinesis",
22-
Regions =
23-
["us-east-1", "us-west-1", "us-west-2", "eu-west-1", "ap-northeast-1", "ap-southeast-1"],
22+
Regions = ["us-east-1", "us-west-2", "eu-west-1", "ap-southeast-1"],
2423
lists:foreach(fun(Region) ->
2524
Url = Service ++ "." ++ Region ++ ".amazonaws.com",
26-
Url = kinetic_utils:endpoint(Service, Region)
25+
Url = kinetic_utils:endpoint(Region)
2726
end,
2827
Regions).

0 commit comments

Comments
 (0)