summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/rabbit_runtime_parameters.erl6
-rw-r--r--src/rabbit_vhost.erl4
2 files changed, 7 insertions, 3 deletions
diff --git a/src/rabbit_runtime_parameters.erl b/src/rabbit_runtime_parameters.erl
index 564ffeea57..138b46adbf 100644
--- a/src/rabbit_runtime_parameters.erl
+++ b/src/rabbit_runtime_parameters.erl
@@ -206,13 +206,13 @@ list_param_strict(Component) -> list_param('_', Component, not_found).
list_param(VHost, Component) -> list_param(VHost, Component, []).
list_param_strict(VHost, Component) -> list_param(VHost, Component, not_found).
-list_param(_VHost, <<"policy">>, _Default) ->
- {error, "policies may not be listed using this method"};
list_param(VHost, Component, Default) ->
case component_good(Component) of
true -> Match = #runtime_parameters{key = {VHost, Component, '_'},
_ = '_'},
- [p(P) || P <- mnesia:dirty_match_object(?TABLE, Match)];
+ [p(P) || #runtime_parameters{ key = {_VHost, Comp, _Key}} = P <-
+ mnesia:dirty_match_object(?TABLE, Match),
+ Comp /= <<"policy">>];
_ -> Default
end.
diff --git a/src/rabbit_vhost.erl b/src/rabbit_vhost.erl
index f29f01046c..9beedc5142 100644
--- a/src/rabbit_vhost.erl
+++ b/src/rabbit_vhost.erl
@@ -98,6 +98,10 @@ internal_delete(VHostPath) ->
proplists:get_value(component, Info),
proplists:get_value(key, Info))
|| Info <- rabbit_runtime_parameters:list_param(VHostPath)],
+ [ok = rabbit_runtime_parameters:clear_policy(
+ VHostPath,
+ proplists:get_value(key, Info))
+ || Info <- rabbit_runtime_parameters:list_policies(VHostPath)],
ok = mnesia:delete({rabbit_vhost, VHostPath}),
ok.