summary refs log tree commit diff
path: root/synapse/config/repository.py
diff options
context:
space:
mode:
authorJorik Schellekens <joriksch@gmail.com>2019-09-11 14:00:37 +0100
committerGitHub <noreply@github.com>2019-09-11 14:00:37 +0100
commit6604b64fae970f534d3e2a61f2fbbe51599fa26d (patch)
tree24c672f4683aa711084c99d1258f0e9c9aeabeef /synapse/config/repository.py
parentFix existing v2 identity server calls (MSC2140) (#6013) (diff)
downloadsynapse-6604b64fae970f534d3e2a61f2fbbe51599fa26d.tar.xz
Check dependencies on setup in the nicer way. (#5989)
Diffstat (limited to 'synapse/config/repository.py')
-rw-r--r--synapse/config/repository.py27
1 files changed, 7 insertions, 20 deletions
diff --git a/synapse/config/repository.py b/synapse/config/repository.py

index fdb1f246d0..34f1a9a92d 100644 --- a/synapse/config/repository.py +++ b/synapse/config/repository.py
@@ -16,6 +16,7 @@ import os from collections import namedtuple +from synapse.python_dependencies import DependencyException, check_requirements from synapse.util.module_loader import load_module from ._base import Config, ConfigError @@ -34,17 +35,6 @@ THUMBNAIL_SIZE_YAML = """\ # method: %(method)s """ -MISSING_NETADDR = "Missing netaddr library. This is required for URL preview API." - -MISSING_LXML = """Missing lxml library. This is required for URL preview API. - - Install by running: - pip install lxml - - Requires libxslt1-dev system package. - """ - - ThumbnailRequirement = namedtuple( "ThumbnailRequirement", ["width", "height", "method", "media_type"] ) @@ -171,16 +161,10 @@ class ContentRepositoryConfig(Config): self.url_preview_enabled = config.get("url_preview_enabled", False) if self.url_preview_enabled: try: - import lxml - - lxml # To stop unused lint. - except ImportError: - raise ConfigError(MISSING_LXML) + check_requirements("url_preview") - try: - from netaddr import IPSet - except ImportError: - raise ConfigError(MISSING_NETADDR) + except DependencyException as e: + raise ConfigError(e.message) if "url_preview_ip_range_blacklist" not in config: raise ConfigError( @@ -189,6 +173,9 @@ class ContentRepositoryConfig(Config): "to work" ) + # netaddr is a dependency for url_preview + from netaddr import IPSet + self.url_preview_ip_range_blacklist = IPSet( config["url_preview_ip_range_blacklist"] )