diff --git a/clearml/backend_api/session/defs.py b/clearml/backend_api/session/defs.py index a477ebd9..46ad41f3 100644 --- a/clearml/backend_api/session/defs.py +++ b/clearml/backend_api/session/defs.py @@ -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 diff --git a/clearml/backend_api/utils.py b/clearml/backend_api/utils.py index 0b34c28b..8738910d 100644 --- a/clearml/backend_api/utils.py +++ b/clearml/backend_api/utils.py @@ -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