diff options
author | Michael Klishin <michael@clojurewerkz.org> | 2021-12-20 12:56:38 +0500 |
---|---|---|
committer | Michael Klishin <michael@clojurewerkz.org> | 2021-12-20 13:07:18 +0500 |
commit | c5aab11ba3b62f865e731032c9b0c297dceead51 (patch) | |
tree | d29568877379fd13787445818a3b12b97b183e82 | |
parent | 88657b047b56a993cba0419b77b4289ea3db1442 (diff) | |
download | rabbitmq-server-git-c5aab11ba3b62f865e731032c9b0c297dceead51.tar.gz |
Merge branch 'polaris-alioth-prevent_unnamed_policy_when_loading_definition'
(cherry picked from commit 11c892dd942dd691fc1a2b5136f0961873f8c2d6)
Conflicts:
deps/rabbit/test/definition_import_SUITE.erl
-rw-r--r-- | deps/rabbit/src/rabbit_definitions.erl | 4 | ||||
-rw-r--r-- | deps/rabbit/test/definition_import_SUITE.erl | 6 | ||||
-rw-r--r-- | deps/rabbit/test/definition_import_SUITE_data/failing_case17.json | 19 |
3 files changed, 28 insertions, 1 deletions
diff --git a/deps/rabbit/src/rabbit_definitions.erl b/deps/rabbit/src/rabbit_definitions.erl index cdb52f069c..1aa74f71d1 100644 --- a/deps/rabbit/src/rabbit_definitions.erl +++ b/deps/rabbit/src/rabbit_definitions.erl @@ -444,6 +444,10 @@ add_policy(Param, Username) -> add_policy(VHost, Param, Username) -> Key = maps:get(name, Param, undefined), + case Key of + undefined -> exit(rabbit_misc:format("policy in virtual host '~s' has undefined name", [VHost])); + _ -> ok + end, case rabbit_policy:set( VHost, Key, maps:get(pattern, Param, undefined), case maps:get(definition, Param, undefined) of diff --git a/deps/rabbit/test/definition_import_SUITE.erl b/deps/rabbit/test/definition_import_SUITE.erl index 928a49ba14..1580a9f0eb 100644 --- a/deps/rabbit/test/definition_import_SUITE.erl +++ b/deps/rabbit/test/definition_import_SUITE.erl @@ -45,7 +45,9 @@ groups() -> import_case12, import_case13, import_case14, - import_case16 + %% case 15 is for v3.9.x+ only + import_case16, + import_case17 ]}, {boot_time_import, [], [ import_on_a_booting_node @@ -177,6 +179,8 @@ import_case16(Config) -> {skip, "Should not run in mixed version environments"} end. +import_case17(Config) -> import_invalid_file_case(Config, "failing_case17"). + export_import_round_trip_case1(Config) -> case rabbit_ct_helpers:is_mixed_versions() of false -> diff --git a/deps/rabbit/test/definition_import_SUITE_data/failing_case17.json b/deps/rabbit/test/definition_import_SUITE_data/failing_case17.json new file mode 100644 index 0000000000..4776408833 --- /dev/null +++ b/deps/rabbit/test/definition_import_SUITE_data/failing_case17.json @@ -0,0 +1,19 @@ +{ + "vhosts": [ + { + "name": "\/" + } + ], + "policies": [ + { + "vhost": "\/", + "pattern": "^project-nd-ns-", + "apply-to": "queues", + "definition": { + "expires": 120000, + "max-length": 10000 + }, + "priority": 1 + } + ] +} |