|
45 | 45 | -export([update_mirroring/1, sync_mirrors/1, cancel_sync_mirrors/1]).
|
46 | 46 | -export([emit_unresponsive/6, emit_unresponsive_local/5, is_unresponsive/2]).
|
47 | 47 | -export([has_synchronised_mirrors_online/1]).
|
48 |
| --export([is_replicated/1, is_dead_exclusive/1]). % Note: exported due to use in qlc expression. |
| 48 | +-export([is_replicated/1, is_exclusive/1, is_not_exclusive/1, is_dead_exclusive/1]). |
49 | 49 | -export([list_local_quorum_queues/0, list_local_quorum_queue_names/0,
|
50 | 50 | list_local_leaders/0, list_local_followers/0, get_quorum_nodes/1,
|
51 | 51 | list_local_mirrored_classic_without_synchronised_mirrors/0,
|
@@ -1094,6 +1094,8 @@ list_local_mirrored_classic_without_synchronised_mirrors() ->
|
1094 | 1094 | [ Q || Q <- list(),
|
1095 | 1095 | amqqueue:get_state(Q) =/= crashed,
|
1096 | 1096 | amqqueue:is_classic(Q),
|
| 1097 | + %% filter out exclusive queues as they won't actually be mirrored |
| 1098 | + is_not_exclusive(Q), |
1097 | 1099 | is_local_to_node(amqqueue:get_pid(Q), node()),
|
1098 | 1100 | is_replicated(Q),
|
1099 | 1101 | not has_synchronised_mirrors_online(Q)].
|
@@ -1952,6 +1954,14 @@ is_replicated(Q) when ?amqqueue_is_quorum(Q) ->
|
1952 | 1954 | is_replicated(Q) ->
|
1953 | 1955 | rabbit_mirror_queue_misc:is_mirrored(Q).
|
1954 | 1956 |
|
| 1957 | +is_exclusive(Q) when ?amqqueue_exclusive_owner_is(Q, none) -> |
| 1958 | + false; |
| 1959 | +is_exclusive(Q) when ?amqqueue_exclusive_owner_is_pid(Q) -> |
| 1960 | + true. |
| 1961 | + |
| 1962 | +is_not_exclusive(Q) -> |
| 1963 | + not is_exclusive(Q). |
| 1964 | + |
1955 | 1965 | is_dead_exclusive(Q) when ?amqqueue_exclusive_owner_is(Q, none) ->
|
1956 | 1966 | false;
|
1957 | 1967 | is_dead_exclusive(Q) when ?amqqueue_exclusive_owner_is_pid(Q) ->
|
|
0 commit comments