summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDaniil Fedotov <dfedotov@pivotal.io>2016-02-17 13:21:44 +0000
committerDaniil Fedotov <dfedotov@pivotal.io>2016-02-17 13:21:44 +0000
commitd0bc71dba5a07786d4f9d71445b55276bfb12846 (patch)
tree402a075a2f47da7d7de760bae8b5def1ad6387ac /src
parent7104595588c739dc8e92671b0307adcb9b40ef2f (diff)
downloadrabbitmq-server-git-d0bc71dba5a07786d4f9d71445b55276bfb12846.tar.gz
Load any schema from plugin schema dir
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_plugins.erl12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/rabbit_plugins.erl b/src/rabbit_plugins.erl
index ff7ec1a984..3d960edcbe 100644
--- a/src/rabbit_plugins.erl
+++ b/src/rabbit_plugins.erl
@@ -46,6 +46,7 @@ ensure(FileJustChanged0) ->
FileJustChanged ->
Enabled = read_enabled(OurFile),
Wanted = prepare_plugins(Enabled),
+ rabbit_config:prepare_and_use_config(),
Current = active(),
Start = Wanted -- Current,
Stop = Current -- Wanted,
@@ -254,14 +255,17 @@ prepare_dir_plugin(PluginAppDescPath) ->
copy_plugin_schema(Plugin, PluginAppDescPath) ->
PluginSchema = filename:join([PluginAppDescPath,
"priv",
- "schema",
- [Plugin, ".schema"]]),
- case rabbit_file:is_file(PluginSchema) of
+ "schema"]),
+ PluginSchemaFiles = [ filename:join(PluginSchema, FileName)
+ || FileName <- rabbit_file:wildcard(".*\\.schema",
+ PluginSchema) ],
+ case rabbit_file:is_dir(PluginSchema) of
false -> ok;
true ->
SchemaDir = rabbit_config:schema_dir(),
case rabbit_file:is_dir(SchemaDir) of
- true -> file:copy(PluginSchema, SchemaDir);
+ true -> [ file:copy(SchemaFile, SchemaDir)
+ || SchemaFile <- PluginSchemaFiles ];
false -> rabbit_log:info("Failed to copy plugin schema. "
"Schema dir doesn't exist")
end