diff options
| -rw-r--r-- | src/rabbit_definitions.erl | 12 | ||||
| -rw-r--r-- | test/definition_import_SUITE.erl | 5 | ||||
| -rw-r--r-- | test/definition_import_SUITE_data/case11.json | 24 |
3 files changed, 40 insertions, 1 deletions
diff --git a/src/rabbit_definitions.erl b/src/rabbit_definitions.erl index 260284d19c..e4ee369bc9 100644 --- a/src/rabbit_definitions.erl +++ b/src/rabbit_definitions.erl @@ -397,6 +397,11 @@ add_queue(Queue, ActingUser) -> add_queue(VHost, Queue, ActingUser) -> add_queue_int(Queue, rv(VHost, queue, Queue), ActingUser). +add_queue_int(_Queue, R = #resource{kind = queue, + name = <<"amq.", _/binary>>}, ActingUser) -> + Name = R#resource.name, + rabbit_log:warning("Skipping import of a queue whose name begins with 'amq.', " + "name: ~s, acting user: ~s", [Name, ActingUser]); add_queue_int(Queue, Name, ActingUser) -> rabbit_amqqueue:declare(Name, maps:get(durable, Queue, undefined), @@ -411,6 +416,13 @@ add_exchange(Exchange, ActingUser) -> add_exchange(VHost, Exchange, ActingUser) -> add_exchange_int(Exchange, rv(VHost, exchange, Exchange), ActingUser). +add_exchange_int(_Exchange, #resource{kind = exchange, name = <<"">>}, ActingUser) -> + rabbit_log:warning("Not importing the default exchange, acting user: ~s", [ActingUser]); +add_exchange_int(_Exchange, R = #resource{kind = exchange, + name = <<"amq.", _/binary>>}, ActingUser) -> + Name = R#resource.name, + rabbit_log:warning("Skipping import of an exchange whose name begins with 'amq.', " + "name: ~s, acting user: ~s", [Name, ActingUser]); add_exchange_int(Exchange, Name, ActingUser) -> Internal = case maps:get(internal, Exchange, undefined) of undefined -> false; %% =< 2.2.0 diff --git a/test/definition_import_SUITE.erl b/test/definition_import_SUITE.erl index fc49535f92..fbbfc95fb5 100644 --- a/test/definition_import_SUITE.erl +++ b/test/definition_import_SUITE.erl @@ -44,7 +44,8 @@ groups() -> import_case7, import_case8, import_case9, - import_case10 + import_case10, + import_case11 ]} ]. @@ -103,6 +104,8 @@ import_case5(Config) -> [{<<"1883">>,<<"/">>}, {<<"1884">>,<<"vhost2">>}]). +import_case11(Config) -> import_file_case(Config, "case11"). + import_file_case(Config, CaseName) -> CasePath = filename:join(?config(data_dir, Config), CaseName ++ ".json"), rabbit_ct_broker_helpers:rpc(Config, 0, ?MODULE, run_import_case, [CasePath]), diff --git a/test/definition_import_SUITE_data/case11.json b/test/definition_import_SUITE_data/case11.json new file mode 100644 index 0000000000..13afdf5cb5 --- /dev/null +++ b/test/definition_import_SUITE_data/case11.json @@ -0,0 +1,24 @@ +{ + "rabbit_version": "3.8.0+rc.1.5.g9148053", + "rabbitmq_version": "3.8.0+rc.1.5.g9148053", + "queues": [ + { + "name": "amq.queuebar", + "vhost": "/", + "durable": true, + "auto_delete": false, + "arguments": {} + } + ], + "exchanges": [ + { + "name": "amq.foobar", + "vhost": "/", + "type": "direct", + "durable": true, + "auto_delete": false, + "internal": false, + "arguments": {} + } + ] +} |
