|  | 
| 19 | 19 | 
 | 
| 20 | 20 | -export([boot/0]). | 
| 21 | 21 | %% automatic import on boot | 
| 22 |  | --export([maybe_load_definitions/0, maybe_load_definitions/2, maybe_load_definitions_from/2]). | 
|  | 22 | +-export([maybe_load_definitions/0, maybe_load_definitions/2, maybe_load_definitions_from/2, | 
|  | 23 | +         has_configured_definitions_to_load/0]). | 
| 23 | 24 | %% import | 
| 24 | 25 | -export([import_raw/1, import_raw/2, import_parsed/1, import_parsed/2, | 
| 25 | 26 |          apply_defs/2, apply_defs/3, apply_defs/4, apply_defs/5]). | 
| @@ -66,7 +67,6 @@ boot() -> | 
| 66 | 67 |     rabbit_sup:start_supervisor_child(definition_import_pool_sup, worker_pool_sup, [PoolSize, ?IMPORT_WORK_POOL]). | 
| 67 | 68 | 
 | 
| 68 | 69 | maybe_load_definitions() -> | 
| 69 |  | -    rabbit_log:debug("Will import definitions file from load_definitions"), | 
| 70 | 70 |     %% Note that management.load_definitions is handled in the plugin for backwards compatibility. | 
| 71 | 71 |     %% This executes the "core" version of load_definitions. | 
| 72 | 72 |     maybe_load_definitions(rabbit, load_definitions). | 
| @@ -138,11 +138,24 @@ all_definitions() -> | 
| 138 | 138 | %% Implementation | 
| 139 | 139 | %% | 
| 140 | 140 | 
 | 
|  | 141 | +-spec has_configured_definitions_to_load() -> boolean(). | 
|  | 142 | +has_configured_definitions_to_load() -> | 
|  | 143 | +    case application:get_env(rabbit, load_definitions) of | 
|  | 144 | +        undefined   -> false; | 
|  | 145 | +        {ok, none}  -> false; | 
|  | 146 | +        {ok, _Path} -> true | 
|  | 147 | +    end. | 
|  | 148 | + | 
| 141 | 149 | maybe_load_definitions(App, Key) -> | 
| 142 | 150 |     case application:get_env(App, Key) of | 
| 143 |  | -        undefined  -> ok; | 
| 144 |  | -        {ok, none} -> ok; | 
|  | 151 | +        undefined  -> | 
|  | 152 | +            rabbit_log:debug("No definition file configured to import via load_definitions"), | 
|  | 153 | +            ok; | 
|  | 154 | +        {ok, none} -> | 
|  | 155 | +            rabbit_log:debug("No definition file configured to import via load_definitions"), | 
|  | 156 | +            ok; | 
| 145 | 157 |         {ok, FileOrDir} -> | 
|  | 158 | +            rabbit_log:debug("Will import definitions file from load_definitions"), | 
| 146 | 159 |             IsDir = filelib:is_dir(FileOrDir), | 
| 147 | 160 |             maybe_load_definitions_from(IsDir, FileOrDir) | 
| 148 | 161 |     end. | 
| @@ -172,10 +185,10 @@ load_definitions_from_filenames([File|Rest]) -> | 
| 172 | 185 | load_definitions_from_file(File) -> | 
| 173 | 186 |     case file:read_file(File) of | 
| 174 | 187 |         {ok, Body} -> | 
| 175 |  | -            rabbit_log:info("Applying definitions from ~s", [File]), | 
|  | 188 | +            rabbit_log:info("Applying definitions from file at '~s'", [File]), | 
| 176 | 189 |             import_raw(Body); | 
| 177 | 190 |         {error, E} -> | 
| 178 |  | -            rabbit_log:error("Could not read definitions from ~s, Error: ~p", [File, E]), | 
|  | 191 | +            rabbit_log:error("Could not read definitions from file at '~s', error: ~p", [File, E]), | 
| 179 | 192 |             {error, {could_not_read_defs, {File, E}}} | 
| 180 | 193 |     end. | 
| 181 | 194 | 
 | 
|  | 
0 commit comments