Skip to content

Commit 0ca3ee5

Browse files
Log connection related events
added capture_logs function to the ibmmq_helper but not called until I figure out how to add extra logging. So far the only auth events captured are those originated from the admin ui
1 parent 8af3db2 commit 0ca3ee5

File tree

3 files changed

+33
-9
lines changed

3 files changed

+33
-9
lines changed

deps/amqp10_client/src/amqp10_client_connection.erl

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -228,13 +228,17 @@ sasl_hdr_rcvds({call, From}, begin_session,
228228

229229
sasl_init_sent(_EvtType, #'v1_0.sasl_outcome'{code = {ubyte, 0}},
230230
#state{socket = Socket} = State) ->
231+
logger:warning("sasl_init_sent "),
231232
ok = socket_send(Socket, ?AMQP_PROTOCOL_HEADER),
233+
logger:warning("sasl_init_sent socket_send AMQP_PROTOCOL_HEADER ok"),
232234
{next_state, hdr_sent, State};
233235
sasl_init_sent(_EvtType, #'v1_0.sasl_outcome'{code = {ubyte, C}},
234236
#state{} = State) when C==1;C==2;C==3;C==4 ->
237+
logger:warning("sasl_init_sent sasl_auth_failure"),
235238
{stop, sasl_auth_failure, State};
236239
sasl_init_sent({call, From}, begin_session,
237240
#state{pending_session_reqs = PendingSessionReqs} = State) ->
241+
logger:warning("sasl_init_sent call to begin_session"),
238242
State1 = State#state{pending_session_reqs = [From | PendingSessionReqs]},
239243
{keep_state, State1}.
240244

@@ -243,7 +247,7 @@ hdr_sent(_EvtType, {protocol_header_received, 0, 1, 0, 0}, State) ->
243247
case send_open(State) of
244248
ok -> {next_state, open_sent, State};
245249
Error ->
246-
logger:warning("client_connection hdr_sent ~p", [Error]),
250+
logger:warning("client_connection hdr_sent ~p", [Error]),
247251
{stop, Error, State}
248252
end;
249253
hdr_sent(_EvtType, {protocol_header_received, Protocol, Maj, Min,
@@ -253,15 +257,15 @@ hdr_sent(_EvtType, {protocol_header_received, Protocol, Maj, Min,
253257
{stop, normal, State};
254258
hdr_sent({call, From}, begin_session,
255259
#state{pending_session_reqs = PendingSessionReqs} = State) ->
256-
logger:warning("hdr_sent received call begin_session"),
260+
logger:warning("hdr_sent received call begin_session"),
257261
State1 = State#state{pending_session_reqs = [From | PendingSessionReqs]},
258262
{keep_state, State1}.
259263

260264
open_sent(_EvtType, #'v1_0.open'{max_frame_size = MaybeMaxFrameSize,
261265
idle_time_out = Timeout} = Open,
262266
#state{pending_session_reqs = PendingSessionReqs,
263267
config = Config} = State0) ->
264-
logger:warning("open_sent received 'v1_0.open' with pending_session_reqs: ~p", [PendingSessionReqs]),
268+
logger:warning("open_sent received 'v1_0.open' with pending_session_reqs: ~p", [PendingSessionReqs]),
265269
State = case Timeout of
266270
undefined -> State0;
267271
{uint, T} when T > 0 ->
@@ -288,16 +292,16 @@ open_sent(_EvtType, #'v1_0.open'{max_frame_size = MaybeMaxFrameSize,
288292
{next_state, opened, State2#state{pending_session_reqs = []}};
289293
open_sent({call, From}, begin_session,
290294
#state{pending_session_reqs = PendingSessionReqs} = State) ->
291-
logger:warning("open_sent received call begin_session with pending_session_reqs: ~p", [PendingSessionReqs]),
295+
logger:warning("open_sent received call begin_session with pending_session_reqs: ~p", [PendingSessionReqs]),
292296
State1 = State#state{pending_session_reqs = [From | PendingSessionReqs]},
293297
{keep_state, State1};
294298
open_sent(info, {'DOWN', MRef, _, _, _},
295299
#state{reader_m_ref = MRef}) ->
296-
logger:warning("open_sent received 'DOWN"),
300+
logger:warning("open_sent received 'DOWN"),
297301
{stop, {shutdown, reader_down}}.
298302

299303
opened(_EvtType, heartbeat, State = #state{idle_time_out = T}) ->
300-
logger:warning("opened received heartbeat"),
304+
logger:warning("opened received heartbeat"),
301305
ok = send_heartbeat(State),
302306
{ok, Tmr} = start_heartbeat_timer(T),
303307
{keep_state, State#state{heartbeat_timer = Tmr}};
@@ -482,7 +486,10 @@ send_sasl_init(State, {plain, User, Pass}) ->
482486
Response = <<0:8, User/binary, 0:8, Pass/binary>>,
483487
Frame = #'v1_0.sasl_init'{mechanism = {symbol, <<"PLAIN">>},
484488
initial_response = {binary, Response}},
485-
send(Frame, 1, State).
489+
logger:warning("send_sasl_init ~p ~p", [User, Pass]),
490+
Ret = send(Frame, 1, State),
491+
logger:warning("send_sasl_init ~p ~p Ret : ~p", [User, Pass, Ret]),
492+
Ret.
486493

487494
send(Record, FrameType, #state{socket = Socket}) ->
488495
Encoded = amqp10_framing:encode_bin(Record),

deps/amqp10_client/test/ibmmq_ct_helpers.erl

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
-export([setup_steps/0,
1313
teardown_steps/0,
1414
init_config/1,
15+
capture_logs/1,
1516
start_ibmmq_server/1,
1617
stop_ibmmq_server/1]).
1718

@@ -30,7 +31,7 @@ init_config(Config) ->
3031
rabbit_ct_helpers:set_config(Config, [ {rmq_nodes, [NodeConfig]},
3132
{rmq_hostname, "localhost"},
3233
{tcp_hostname_amqp, "localhost"},
33-
{sasl, {plain, <<"app">>, <<"passw0rd">>}} ]).
34+
{sasl, {plain, <<"app">>, <<"passw10rd">>}} ]).
3435

3536
start_ibmmq_server(Config) ->
3637
IBMmqCmd = filename:join([?config(data_dir, Config), "ibmmq_runner"]),
@@ -78,6 +79,16 @@ wait_for_ibmmq_port(Hostname, Port, Retries) ->
7879
Error
7980
end.
8081

82+
capture_logs(Config) ->
83+
IBMmqCmd = filename:join([?config(data_dir, Config), "ibmmq_runner"]),
84+
Cmd = [IBMmqCmd, "logs", "/tmp/ibmmq.log"],
85+
ct:log("Running command ~p", [Cmd]),
86+
case rabbit_ct_helpers:exec(Cmd, []) of
87+
{ok, _} -> Config;
88+
Error -> ct:pal("Error: ~tp", [Error]),
89+
{skip, "Failed to stop IBM MQ"}
90+
end.
91+
8192
stop_ibmmq_server(Config) ->
8293
IBMmqCmd = filename:join([?config(data_dir, Config), "ibmmq_runner"]),
8394
Cmd = [IBMmqCmd, "stop"],

deps/amqp10_client/test/system_SUITE_data/ibmmq_runner

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,10 @@ invoke_start(){
7676
sleep 10
7777
print "Waited 10 seconds for container to start"
7878
}
79-
79+
capture_logs() {
80+
print "Capturing ibmmq logs to $1"
81+
docker logs ibmmq > $1
82+
}
8083
invoke_stop(){
8184
kill_container_if_exist ibmmq
8285
}
@@ -88,6 +91,9 @@ case "$1" in
8891
build)
8992
build_docker_image
9093
;;
94+
logs)
95+
capture_logs "$2"
96+
;;
9197
start)
9298
invoke_start
9399
;;

0 commit comments

Comments
 (0)