From 4aca28b580f9758be96efbeceead9e026470f3c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20Hedenstro=CC=88m?= <erik@hedenstroem.com> Date: Mon, 26 Sep 2016 22:35:06 +0200 Subject: [PATCH] Using IPAddress --- src/dockerl_utils.erl | 23 ++++++++++++++++++++++- test/dockerl_test.erl | 5 +++-- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/src/dockerl_utils.erl b/src/dockerl_utils.erl index 935d312..661c339 100644 --- a/src/dockerl_utils.erl +++ b/src/dockerl_utils.erl @@ -1,7 +1,29 @@ -module(dockerl_utils). +-export([get_gateway/2]). +-export([get_ip_address/2]). -export([get_ports/2]). +get_gateway(ServerRef, Id) -> + case dockerl:inspect_container(ServerRef, Id) of + {ok, #{<<"NetworkSettings">> := #{<<"Gateway">> := Gateway}}} -> + inet:parse_address(binary_to_list(Gateway)); + {ok, _} -> + {error, no_ip_address}; + Error -> + Error + end. + +get_ip_address(ServerRef, Id) -> + case dockerl:inspect_container(ServerRef, Id) of + {ok, #{<<"NetworkSettings">> := #{<<"IPAddress">> := IPAddress}}} -> + inet:parse_address(binary_to_list(IPAddress)); + {ok, _} -> + {error, no_ip_address}; + Error -> + Error + end. + get_ports(ServerRef, Id) -> case dockerl:inspect_container(ServerRef, Id) of {ok, #{<<"NetworkSettings">> := #{<<"Ports">> := Ports}}} -> @@ -25,4 +47,3 @@ get_ports(ServerRef, Id) -> Error -> Error end. - diff --git a/test/dockerl_test.erl b/test/dockerl_test.erl index 4a8bf6d..02f3f9e 100644 --- a/test/dockerl_test.erl +++ b/test/dockerl_test.erl @@ -63,8 +63,9 @@ start_container(Pid, Name) -> query_container(Pid, Id) -> fun() -> timer:sleep(3000), - {ok, #{<<"80/tcp">> := [{Address, Port}]}} = dockerl_utils:get_ports(Pid, Id), - lager:debug("Using port: ~p", [Port]), + {ok, Address} = dockerl_utils:get_ip_address(Pid, Id), + {ok, #{<<"80/tcp">> := [{_, Port}]}} = dockerl_utils:get_ports(Pid, Id), + lager:debug("Using port ~p:~p", [Address, Port]), spawn(fun() -> send_request(Address, Port) end), {ok, Stream} = dockerl:container_logs(Pid, Id), ?assertEqual(ok, match_logs(Stream, <<"eunit">>, 1)) -- GitLab