Support setting certificate path in the main session

This commit is contained in:
allegroai 2024-01-30 19:26:32 +02:00
parent 0a928c24ca
commit 1b77e08ec8
2 changed files with 9 additions and 3 deletions

View File

@ -11,8 +11,7 @@ ENV_AUTH_TOKEN = EnvEntry("CLEARML_AUTH_TOKEN")
ENV_VERBOSE = EnvEntry(
"CLEARML_API_VERBOSE", "TRAINS_API_VERBOSE", converter=safe_text_to_bool, type=bool, default=False
)
ENV_HOST_VERIFY_CERT = EnvEntry("CLEARML_API_HOST_VERIFY_CERT", "TRAINS_API_HOST_VERIFY_CERT",
type=bool, default=True)
ENV_HOST_VERIFY_CERT = EnvEntry("CLEARML_API_HOST_VERIFY_CERT", "TRAINS_API_HOST_VERIFY_CERT", default=True)
ENV_OFFLINE_MODE = EnvEntry("CLEARML_OFFLINE_MODE", "TRAINS_OFFLINE_MODE", type=bool, converter=safe_text_to_bool)
ENV_CLEARML_NO_DEFAULT_SERVER = EnvEntry(
"CLEARML_NO_DEFAULT_SERVER", "TRAINS_NO_DEFAULT_SERVER", converter=safe_text_to_bool, type=bool, default=True

View File

@ -9,6 +9,7 @@ from urllib3 import PoolManager
import six
from .session.defs import ENV_HOST_VERIFY_CERT
from ..backend_config.converters import strtobool
if six.PY3:
from functools import lru_cache
@ -141,8 +142,14 @@ def get_http_session_with_retry(
adapter = TLSv1HTTPAdapter(max_retries=retry, pool_connections=pool_connections, pool_maxsize=pool_maxsize)
session.mount('http://', adapter)
session.mount('https://', adapter)
# update verify host certificate
session.verify = ENV_HOST_VERIFY_CERT.get(default=config.get('api.verify_certificate', True))
verify = ENV_HOST_VERIFY_CERT.get(default=config.get('api.verify_certificate', True))
try:
session.verify = bool(strtobool(verify) if isinstance(verify, str) else verify)
except (ValueError, AttributeError):
session.verify = verify
if not session.verify and __disable_certificate_verification_warning < 2:
# show warning
__disable_certificate_verification_warning += 1