From 1f0aff0999c756edad5233a58d2fe86f34efa798 Mon Sep 17 00:00:00 2001 From: Tim Kreuzer <t.kreuzer@fz-juelich.de> Date: Thu, 19 Dec 2024 09:40:00 +0100 Subject: [PATCH] use pycurl as default if available --- outpostspawner/api_flavors_update.py | 10 ++++++++++ outpostspawner/outpostspawner.py | 9 +++++++++ 2 files changed, 19 insertions(+) diff --git a/outpostspawner/api_flavors_update.py b/outpostspawner/api_flavors_update.py index da84c16..f696a88 100644 --- a/outpostspawner/api_flavors_update.py +++ b/outpostspawner/api_flavors_update.py @@ -52,6 +52,16 @@ async def async_get_flavors(log, user=None): urls_tokens = list( zip(initial_system_urls_list, initial_system_tokens_list) ) + # use pycurl by default, if available: + try: + AsyncHTTPClient.configure( + "tornado.curl_httpclient.CurlAsyncHTTPClient" + ) + except ImportError as e: + log.debug( + "Could not load pycurl: %s\npycurl is recommended if you have a large number of users.", + e, + ) http_client = AsyncHTTPClient( force_instance=True, defaults=dict(validate_cert=False) ) diff --git a/outpostspawner/outpostspawner.py b/outpostspawner/outpostspawner.py index a47e597..f8650a2 100644 --- a/outpostspawner/outpostspawner.py +++ b/outpostspawner/outpostspawner.py @@ -614,6 +614,15 @@ class OutpostSpawner(ForwardBaseSpawner): @default("http_client") def _default_http_client(self): + """Configure tornado to use pycurl by default, if available""" + # use pycurl by default, if available: + try: + AsyncHTTPClient.configure("tornado.curl_httpclient.CurlAsyncHTTPClient") + except ImportError as e: + self.log.debug( + "Could not load pycurl: %s\npycurl is recommended if you have a large number of users.", + e, + ) return AsyncHTTPClient(force_instance=True, defaults=dict(validate_cert=False)) async def fetch(self, req, action): -- GitLab