|
46 | 46 | %% a new cluster as a virgin node
|
47 | 47 | -define(DEFAULT_NODE_TYPE, disc).
|
48 | 48 |
|
| 49 | +%% Register node by default (with the backends that support registration) |
| 50 | +-define(PERFORM_REGISTRATION_BY_DEFAULT, true). |
| 51 | + |
49 | 52 | %% default node prefix to attach to discovered hostnames
|
50 | 53 | -define(DEFAULT_PREFIX, "rabbit").
|
51 | 54 |
|
@@ -82,6 +85,16 @@ node_type() ->
|
82 | 85 | ?DEFAULT_NODE_TYPE
|
83 | 86 | end.
|
84 | 87 |
|
| 88 | +-spec should_perform_registration() -> true | false. |
| 89 | + |
| 90 | +should_perform_registration() -> |
| 91 | + case application:get_env(rabbit, cluster_formation) of |
| 92 | + {ok, Proplist} -> |
| 93 | + proplists:get_value(perform_registration, Proplist, ?PERFORM_REGISTRATION_BY_DEFAULT); |
| 94 | + undefined -> |
| 95 | + ?PERFORM_REGISTRATION_BY_DEFAULT |
| 96 | + end. |
| 97 | + |
85 | 98 | -spec lock_acquisition_failure_mode() -> ignore | fail.
|
86 | 99 |
|
87 | 100 | lock_acquisition_failure_mode() ->
|
@@ -968,35 +981,51 @@ error_description({invalid_cluster_node_type, BadType}) ->
|
968 | 981 | -spec maybe_register() -> ok.
|
969 | 982 |
|
970 | 983 | maybe_register() ->
|
971 |
| - Backend = persistent_term:get(?PT_PEER_DISC_BACKEND, backend()), |
972 |
| - case Backend:supports_registration() of |
| 984 | + case should_perform_registration() of |
973 | 985 | true ->
|
974 |
| - ?LOG_DEBUG( |
975 |
| - "Peer discovery: registering this node", |
976 |
| - #{domain => ?RMQLOG_DOMAIN_PEER_DISC}), |
977 |
| - register(Backend), |
978 |
| - _ = Backend:post_registration(), |
979 |
| - ok; |
| 986 | + Backend = persistent_term:get(?PT_PEER_DISC_BACKEND, backend()), |
| 987 | + case Backend:supports_registration() of |
| 988 | + true -> |
| 989 | + ?LOG_DEBUG( |
| 990 | + "Peer discovery: registering this node", |
| 991 | + #{domain => ?RMQLOG_DOMAIN_PEER_DISC}), |
| 992 | + register(Backend), |
| 993 | + _ = Backend:post_registration(), |
| 994 | + ok; |
| 995 | + false -> |
| 996 | + ?LOG_DEBUG( |
| 997 | + "Peer discovery: registration is not supported, skipping it", |
| 998 | + #{domain => ?RMQLOG_DOMAIN_PEER_DISC}), |
| 999 | + ok |
| 1000 | + end; |
980 | 1001 | false ->
|
981 | 1002 | ?LOG_DEBUG(
|
982 |
| - "Peer discovery: registration unsupported, skipping register", |
| 1003 | + "Peer discovery: registration is disabled via configuration, skipping it", |
983 | 1004 | #{domain => ?RMQLOG_DOMAIN_PEER_DISC}),
|
984 | 1005 | ok
|
985 | 1006 | end.
|
986 | 1007 |
|
987 | 1008 | -spec maybe_unregister() -> ok.
|
988 | 1009 |
|
989 | 1010 | maybe_unregister() ->
|
990 |
| - Backend = persistent_term:get(?PT_PEER_DISC_BACKEND), |
991 |
| - case Backend:supports_registration() of |
| 1011 | + case should_perform_registration() of |
992 | 1012 | true ->
|
993 |
| - ?LOG_DEBUG( |
994 |
| - "Peer discovery: unregistering this node", |
995 |
| - #{domain => ?RMQLOG_DOMAIN_PEER_DISC}), |
996 |
| - unregister(Backend); |
| 1013 | + Backend = persistent_term:get(?PT_PEER_DISC_BACKEND), |
| 1014 | + case Backend:supports_registration() of |
| 1015 | + true -> |
| 1016 | + ?LOG_DEBUG( |
| 1017 | + "Peer discovery: unregistering this node", |
| 1018 | + #{domain => ?RMQLOG_DOMAIN_PEER_DISC}), |
| 1019 | + unregister(Backend); |
| 1020 | + false -> |
| 1021 | + ?LOG_DEBUG( |
| 1022 | + "Peer discovery: registration is not supported, skipping unregistration", |
| 1023 | + #{domain => ?RMQLOG_DOMAIN_PEER_DISC}), |
| 1024 | + ok |
| 1025 | + end; |
997 | 1026 | false ->
|
998 | 1027 | ?LOG_DEBUG(
|
999 |
| - "Peer discovery: registration unsupported, skipping unregister", |
| 1028 | + "Peer discovery: registration is disabled via configuration, skipping unregistration", |
1000 | 1029 | #{domain => ?RMQLOG_DOMAIN_PEER_DISC}),
|
1001 | 1030 | ok
|
1002 | 1031 | end.
|
|
0 commit comments