diff options
author | Richard van der Hoff <1389908+richvdh@users.noreply.github.com> | 2020-12-08 14:04:35 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-08 14:04:35 +0000 |
commit | ab7a24cc6bbffa5ba67b42731c45b1d4d33f3ae3 (patch) | |
tree | 9aeefb42b2c5871847505fc50f58127c7b605ebb /synapse/config/repository.py | |
parent | Simplify the flow for SSO UIA (#8881) (diff) | |
download | synapse-ab7a24cc6bbffa5ba67b42731c45b1d4d33f3ae3.tar.xz |
Better formatting for config errors from modules (#8874)
The idea is that the parse_config method of extension modules can raise either a ConfigError or a JsonValidationError, and it will be magically turned into a legible error message. There's a few components to it: * Separating the "path" and the "message" parts of a ConfigError, so that we can fiddle with the path bit to turn it into an absolute path. * Generally improving the way ConfigErrors get printed. * Passing in the config path to load_module so that it can wrap any exceptions that get caught appropriately.
Diffstat (limited to 'synapse/config/repository.py')
-rw-r--r-- | synapse/config/repository.py | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/synapse/config/repository.py b/synapse/config/repository.py index ba1e9d2361..17ce9145ef 100644 --- a/synapse/config/repository.py +++ b/synapse/config/repository.py @@ -142,7 +142,7 @@ class ContentRepositoryConfig(Config): # them to be started. self.media_storage_providers = [] # type: List[tuple] - for provider_config in storage_providers: + for i, provider_config in enumerate(storage_providers): # We special case the module "file_system" so as not to need to # expose FileStorageProviderBackend if provider_config["module"] == "file_system": @@ -151,7 +151,9 @@ class ContentRepositoryConfig(Config): ".FileStorageProviderBackend" ) - provider_class, parsed_config = load_module(provider_config) + provider_class, parsed_config = load_module( + provider_config, ("media_storage_providers", "<item %i>" % i) + ) wrapper_config = MediaStorageProviderConfig( provider_config.get("store_local", False), |