|
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