mirror of
https://github.com/YunoHost/yunohost.git
synced 2024-09-03 20:06:10 +02:00
[enh] Lazy-load some module for perf improvements (#451)
* Lazy load some python imports (perfs improved a lot). These commands became way faster: - yunohost app setting ... - yunohost app list - yunohost domain list - yunohost domain dns-conf - yunohost dyndns installcron/removecron - ... and maybe others * [fix] Timeout wat not defined anymore
This commit is contained in:
parent
de305ce18e
commit
b9330d7501
5 changed files with 9 additions and 9 deletions
|
@ -32,7 +32,6 @@ import re
|
||||||
import urlparse
|
import urlparse
|
||||||
import errno
|
import errno
|
||||||
import subprocess
|
import subprocess
|
||||||
import requests
|
|
||||||
import glob
|
import glob
|
||||||
import pwd
|
import pwd
|
||||||
import grp
|
import grp
|
||||||
|
@ -129,6 +128,7 @@ def app_fetchlist(url=None, name=None):
|
||||||
else:
|
else:
|
||||||
appslists_to_be_fetched = appslists.keys()
|
appslists_to_be_fetched = appslists.keys()
|
||||||
|
|
||||||
|
import requests # lazy loading this module for performance reasons
|
||||||
# Fetch all appslists to be fetched
|
# Fetch all appslists to be fetched
|
||||||
for name in appslists_to_be_fetched:
|
for name in appslists_to_be_fetched:
|
||||||
|
|
||||||
|
|
|
@ -29,14 +29,11 @@ import shutil
|
||||||
import pwd
|
import pwd
|
||||||
import grp
|
import grp
|
||||||
import smtplib
|
import smtplib
|
||||||
import requests
|
|
||||||
import subprocess
|
import subprocess
|
||||||
import dns.resolver
|
import dns.resolver
|
||||||
import glob
|
import glob
|
||||||
|
|
||||||
from OpenSSL import crypto
|
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from requests.exceptions import Timeout
|
|
||||||
|
|
||||||
from yunohost.vendor.acme_tiny.acme_tiny import get_crt as sign_certificate
|
from yunohost.vendor.acme_tiny.acme_tiny import get_crt as sign_certificate
|
||||||
|
|
||||||
|
@ -575,9 +572,10 @@ def _fetch_and_enable_new_certificate(domain, staging=False):
|
||||||
raise MoulinetteError(errno.EINVAL, m18n.n(
|
raise MoulinetteError(errno.EINVAL, m18n.n(
|
||||||
'certmanager_cert_signing_failed'))
|
'certmanager_cert_signing_failed'))
|
||||||
|
|
||||||
|
import requests # lazy loading this module for performance reasons
|
||||||
try:
|
try:
|
||||||
intermediate_certificate = requests.get(INTERMEDIATE_CERTIFICATE_URL, timeout=30).text
|
intermediate_certificate = requests.get(INTERMEDIATE_CERTIFICATE_URL, timeout=30).text
|
||||||
except Timeout as e:
|
except requests.exceptions.Timeout as e:
|
||||||
raise MoulinetteError(errno.EINVAL, m18n.n('certmanager_couldnt_fetch_intermediate_cert'))
|
raise MoulinetteError(errno.EINVAL, m18n.n('certmanager_couldnt_fetch_intermediate_cert'))
|
||||||
|
|
||||||
# Now save the key and signed certificate
|
# Now save the key and signed certificate
|
||||||
|
@ -626,6 +624,7 @@ def _fetch_and_enable_new_certificate(domain, staging=False):
|
||||||
|
|
||||||
|
|
||||||
def _prepare_certificate_signing_request(domain, key_file, output_folder):
|
def _prepare_certificate_signing_request(domain, key_file, output_folder):
|
||||||
|
from OpenSSL import crypto # lazy loading this module for performance reasons
|
||||||
# Init a request
|
# Init a request
|
||||||
csr = crypto.X509Req()
|
csr = crypto.X509Req()
|
||||||
|
|
||||||
|
@ -657,6 +656,7 @@ def _get_status(domain):
|
||||||
raise MoulinetteError(errno.EINVAL, m18n.n(
|
raise MoulinetteError(errno.EINVAL, m18n.n(
|
||||||
'certmanager_no_cert_file', domain=domain, file=cert_file))
|
'certmanager_no_cert_file', domain=domain, file=cert_file))
|
||||||
|
|
||||||
|
from OpenSSL import crypto # lazy loading this module for performance reasons
|
||||||
try:
|
try:
|
||||||
cert = crypto.load_certificate(
|
cert = crypto.load_certificate(
|
||||||
crypto.FILETYPE_PEM, open(cert_file).read())
|
crypto.FILETYPE_PEM, open(cert_file).read())
|
||||||
|
@ -759,6 +759,7 @@ def _generate_account_key():
|
||||||
|
|
||||||
|
|
||||||
def _generate_key(destination_path):
|
def _generate_key(destination_path):
|
||||||
|
from OpenSSL import crypto # lazy loading this module for performance reasons
|
||||||
k = crypto.PKey()
|
k = crypto.PKey()
|
||||||
k.generate_key(crypto.TYPE_RSA, KEY_SIZE)
|
k.generate_key(crypto.TYPE_RSA, KEY_SIZE)
|
||||||
|
|
||||||
|
@ -842,9 +843,10 @@ def _dns_ip_match_public_ip(public_ip, domain):
|
||||||
|
|
||||||
|
|
||||||
def _domain_is_accessible_through_HTTP(ip, domain):
|
def _domain_is_accessible_through_HTTP(ip, domain):
|
||||||
|
import requests # lazy loading this module for performance reasons
|
||||||
try:
|
try:
|
||||||
requests.head("http://" + ip, headers={"Host": domain}, timeout=10)
|
requests.head("http://" + ip, headers={"Host": domain}, timeout=10)
|
||||||
except Timeout as e:
|
except requests.exceptions.Timeout as e:
|
||||||
logger.warning(m18n.n('certmanager_http_check_timeout', domain=domain, ip=ip))
|
logger.warning(m18n.n('certmanager_http_check_timeout', domain=domain, ip=ip))
|
||||||
return False
|
return False
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|
|
@ -28,7 +28,6 @@ import re
|
||||||
import json
|
import json
|
||||||
import yaml
|
import yaml
|
||||||
import errno
|
import errno
|
||||||
import requests
|
|
||||||
|
|
||||||
from moulinette import m18n, msettings
|
from moulinette import m18n, msettings
|
||||||
from moulinette.core import MoulinetteError
|
from moulinette.core import MoulinetteError
|
||||||
|
|
|
@ -30,7 +30,6 @@ import glob
|
||||||
import time
|
import time
|
||||||
import base64
|
import base64
|
||||||
import errno
|
import errno
|
||||||
import requests
|
|
||||||
import subprocess
|
import subprocess
|
||||||
|
|
||||||
from moulinette import m18n
|
from moulinette import m18n
|
||||||
|
@ -152,6 +151,7 @@ def dyndns_subscribe(subscribe_host="dyndns.yunohost.org", domain=None, key=None
|
||||||
with open(key_file) as f:
|
with open(key_file) as f:
|
||||||
key = f.readline().strip().split(' ', 6)[-1]
|
key = f.readline().strip().split(' ', 6)[-1]
|
||||||
|
|
||||||
|
import requests # lazy loading this module for performance reasons
|
||||||
# Send subscription
|
# Send subscription
|
||||||
try:
|
try:
|
||||||
r = requests.post('https://%s/key/%s?key_algo=hmac-sha512' % (subscribe_host, base64.b64encode(key)), data={'subdomain': domain}, timeout=30)
|
r = requests.post('https://%s/key/%s?key_algo=hmac-sha512' % (subscribe_host, base64.b64encode(key)), data={'subdomain': domain}, timeout=30)
|
||||||
|
|
|
@ -26,7 +26,6 @@
|
||||||
import re
|
import re
|
||||||
import os
|
import os
|
||||||
import yaml
|
import yaml
|
||||||
import requests
|
|
||||||
import json
|
import json
|
||||||
import errno
|
import errno
|
||||||
import logging
|
import logging
|
||||||
|
|
Loading…
Add table
Reference in a new issue