Skip to content

Commit 07ec5b6

Browse files
Merge pull request #856 from rabbitmq/rabbitmq-management-855
Take error scenarios into account in aliveness test
2 parents 6162328 + 795f255 commit 07ec5b6

6 files changed

+44
-27
lines changed

deps/rabbitmq_management/.travis.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,18 @@ cache:
1717
apt: true
1818
env:
1919
global:
20-
- secure: JHS6ykwlW6Nz1g62US2U2I9+SuUYqfk+c1Vy5ty/cp7z4BYW8Kf5Zb2f3mLfBxOBvzOSGAOHdUad7FuEdj1Z93gyXmcjJL2XCnAngtEjWUkH2+Zr1o9RElFW6WqBLN5m2P4pjxL6PeMiJi4ibBTkPTi3gu4iit4hBkikjUe0gvE=
21-
- secure: YqJMmYy9k7FY4WpKdBRN+xTT31j1HD0YfS3mjMdTleeWhVAv/40SzfENWcVB3EP4qLLS/NmuoQhOJ7lrQ/5Alp9CkRM0IH1dJ8i5Yeem8FTLfXXphmoA7U+QafSKxQArBoqM1Pk4Ajxtlk9DraSsW954zflGVV8vz21BPBhvmLM=
20+
- secure: Tu26VJ9BsXxL20xxwWk4cbCkZyqyxYmNpSSqco5r3FLeU5hk5Vkk+s2BareRvqKhKHFlvyxu8GwsKtajMvsieP6y5J99gSeub6fDOIskPz61bo0aKA9nbDuBFSG1Z5wgXx1XRo0yDatLxXCXe3FbThRsylG7XNjtRaru1/lwuVxfxPtBGQ1opvQX71sST3GYSPoBYR+JlcVpU+uDHMAzsP8J0m5rEpxcl821aTMk3iz90hBQMsoLTBmSQePPcNqOA/1OH75VfjuXR8JBXHvA9njrUBrsyxgHf2uOh3jAXdIrHZwZg/17+y7gNVqByfx/UpGb8XEpVkncg/cRyVIHMk7/gFCZkeVC1QkIN5+EPiGLF7u32x9QaT7Zqz57iLh3IJzED2dj12qWaeX8QypF1K1r5qq4pRrN6iEZx76stpZbyFT4XnExHRdzPuouy7yz1gDHF0HOxbNLowzc/jk7tuTp+qmDSR5tRvegAIH3TONegxXyB7smdbvdI6MCN5/GP2bGK7HiqYWCmTGHtJwgxBKc5XoV8ZjpXfKxG98WbK5RsSP1miRnmxSbxaV0Gai1hfFlanJFFxTA9584O+NVRXNNFMfnnt20Ts6OwoXTcJ/boIPjF5Mcm0eJ4nz4R18TArXE4B5S4pTk3eQkG1ACDigkYZ3fc6ws4cWrt8BZASI=
21+
- secure: fNEx9OXi2UisiYu0FiHJpV9+vWLB9DIUAIKG24GfUHVgZqFQOInBf5fEYrjlVgm5zNezSBS3hFNHXd/EXJF8KNgbf6mI0z4h4RyyQY98N+78tWvINoIawEeYpgC6NTI52MdaCfV+fTVWhiL0uP7mqWhLmll2bKXIy6HA6I9PnmiQSloNe64vUPF+UsVZHzzeabK4DR2VdI3h+BGXzOY9FG8Kt2voiXOLd2RFpVeN86FDTp+uVZY/K9e/MsktoK+XaZZ4qMAgm6lB32LVkzl3KA9ki6y6BY7le1m2c90hxAtBJGWZptkMb+VL0Fem39nEBnLjE0a0vIddp32PLJQmv6eopMfLay5BIkwtkRwv3P0uCwYd0bgYQSHF/gdTCcK1nr7fMhkQveBh6vmnbhrca7OeQRHz08+jo6EquUgNQZKmTZPWXQn9lS9mU/0EDLJJhn4KhJezGw6DcAAqB0KqmQedxtHMUT87by7LzhINwKZnm4y5WKA/W/zLI6dNqvIgc5C6UJh0EVgxa13GRmrnGmttV1dtLRQhiMJCbJykaekjPMULUmli0RbFz7bSFqFqEUsF+wwovyD+Y6D8KGOJdvvEYPdPIFpRPnhGUvH86JzsFdVKNJBicGI9LpCtlXlWNRbQIQ8uV5ze2HhxSJhtM6e6dB4d9yzpp6a81uR77bk=
2222

2323
# $base_rmq_ref is used by rabbitmq-components.mk to select the
2424
# appropriate branch for dependencies.
2525
- base_rmq_ref=master
2626

2727
elixir:
28-
- '1.9'
28+
- '1.10'
2929
otp_release:
30-
- '21.3'
31-
- '22.2'
30+
- '22.3'
31+
- '23.0'
3232

3333
install:
3434
# This project being an Erlang one (we just set language to Elixir

deps/rabbitmq_management/src/rabbit_mgmt_wm_aliveness_test.erl

Lines changed: 35 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
-export([resource_exists/2]).
1212
-export([variances/2]).
1313

14+
-include("rabbit_mgmt.hrl").
1415
-include_lib("rabbitmq_management_agent/include/rabbit_mgmt_records.hrl").
1516
-include_lib("amqp_client/include/amqp_client.hrl").
1617

@@ -25,30 +26,46 @@ variances(Req, Context) ->
2526
{[<<"accept-encoding">>, <<"origin">>], Req, Context}.
2627

2728
content_types_provided(ReqData, Context) ->
28-
{rabbit_mgmt_util:responder_map(to_json), ReqData, Context}.
29+
{rabbit_mgmt_util:responder_map(to_json), ReqData, Context}.
2930

3031
resource_exists(ReqData, Context) ->
3132
{case rabbit_mgmt_util:vhost(ReqData) of
32-
not_found -> false;
33-
_ -> true
34-
end, ReqData, Context}.
33+
not_found -> false;
34+
_ -> true
35+
end, ReqData, Context}.
3536

3637
to_json(ReqData, Context) ->
3738
rabbit_mgmt_util:with_channel(
38-
rabbit_mgmt_util:vhost(ReqData), ReqData, Context,
39-
fun(Ch) ->
40-
amqp_channel:call(Ch, #'queue.declare'{queue = ?QUEUE}),
41-
amqp_channel:call(Ch, #'basic.publish'{routing_key = ?QUEUE},
42-
#amqp_msg{payload = <<"test_message">>}),
43-
{#'basic.get_ok'{}, _} =
44-
amqp_channel:call(Ch, #'basic.get'{queue = ?QUEUE,
45-
no_ack = true}),
46-
%% Don't delete the queue. If this is pinged every few
47-
%% seconds we don't want to create a mnesia transaction
48-
%% each time.
49-
rabbit_mgmt_util:reply([{status, ok}], ReqData, Context)
50-
end).
39+
rabbit_mgmt_util:vhost(ReqData),
40+
ReqData,
41+
Context,
42+
fun(Ch) ->
43+
#'queue.declare_ok'{queue = ?QUEUE} = amqp_channel:call(Ch, #'queue.declare'{
44+
queue = ?QUEUE
45+
}),
46+
ok = amqp_channel:call(Ch, #'basic.publish'{routing_key = ?QUEUE}, #amqp_msg{
47+
payload = <<"test_message">>
48+
}),
49+
case amqp_channel:call(Ch, #'basic.get'{queue = ?QUEUE, no_ack = true}) of
50+
{#'basic.get_ok'{}, _} ->
51+
%% Don't delete the queue. If this is pinged every few
52+
%% seconds we don't want to create a mnesia transaction
53+
%% each time.
54+
rabbit_mgmt_util:reply([{status, ok}], ReqData, Context);
55+
#'basic.get_empty'{} ->
56+
Reason = <<"aliveness-test queue is empty">>,
57+
failure(Reason, ReqData, Context);
58+
Error ->
59+
Reason = rabbit_data_coercion:to_binary(Error),
60+
failure(Reason, ReqData, Context)
61+
end
62+
end
63+
).
64+
65+
failure(Reason, ReqData0, Context0) ->
66+
Body = #{status => failed, reason => Reason},
67+
{Response, ReqData1, Context1} = rabbit_mgmt_util:reply(Body, ReqData0, Context0),
68+
{stop, cowboy_req:reply(?HEALTH_CHECK_FAILURE_STATUS, #{}, Response, ReqData1), Context1}.
5169

5270
is_authorized(ReqData, Context) ->
5371
rabbit_mgmt_util:is_authorized_vhost(ReqData, Context).
54-

deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_alarms.erl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
-export([resource_exists/2]).
1313
-export([variances/2]).
1414

15-
-include_lib("rabbitmq_management/include/rabbit_mgmt.hrl").
15+
-include("rabbit_mgmt.hrl").
1616
-include_lib("rabbitmq_management_agent/include/rabbit_mgmt_records.hrl").
1717

1818
%%--------------------------------------------------------------------

deps/rabbitmq_management/src/rabbit_mgmt_wm_health_check_local_alarms.erl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
-export([resource_exists/2]).
1313
-export([variances/2]).
1414

15-
-include_lib("rabbitmq_management/include/rabbit_mgmt.hrl").
15+
-include("rabbit_mgmt.hrl").
1616
-include_lib("rabbitmq_management_agent/include/rabbit_mgmt_records.hrl").
1717

1818
%%--------------------------------------------------------------------

deps/rabbitmq_management/src/rabbit_mgmt_wm_healthchecks.erl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
-export([resource_exists/2]).
1414
-export([variances/2]).
1515

16-
-include_lib("rabbitmq_management/include/rabbit_mgmt.hrl").
16+
-include("rabbit_mgmt.hrl").
1717
-include_lib("rabbitmq_management_agent/include/rabbit_mgmt_records.hrl").
1818

1919
%%--------------------------------------------------------------------

deps/rabbitmq_management/test/rabbit_mgmt_http_health_checks_SUITE.erl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@
77

88
-module(rabbit_mgmt_http_health_checks_SUITE).
99

10+
-include("rabbit_mgmt.hrl").
1011
-include_lib("amqp_client/include/amqp_client.hrl").
1112
-include_lib("common_test/include/ct.hrl").
1213
-include_lib("eunit/include/eunit.hrl").
13-
-include_lib("rabbitmq_management/include/rabbit_mgmt.hrl").
1414
-include_lib("rabbitmq_ct_helpers/include/rabbit_mgmt_test.hrl").
1515

1616
-import(rabbit_ct_client_helpers, [close_connection/1, close_channel/1,

0 commit comments

Comments
 (0)