mirror of
				https://github.com/clearml/clearml
				synced 2025-06-26 18:16:07 +00:00 
			
		
		
		
	add api.http.default_method to help with GCP load balancers dropping GET requests (use PUT instead)
This commit is contained in:
		
							parent
							
								
									721569bb77
								
							
						
					
					
						commit
						3e5d50e15d
					
				| @ -46,6 +46,9 @@ | ||||
| 
 | ||||
|         pool_maxsize: 512 | ||||
|         pool_connections: 512 | ||||
| 
 | ||||
|         # Override the default http method, use "put" if working behind GCP load balancer (default: "get") | ||||
|         # default_method: "get" | ||||
|     } | ||||
| 
 | ||||
|     auth { | ||||
|  | ||||
| @ -8,13 +8,14 @@ from .datamodel import DataModel | ||||
| from .defs import ENV_API_DEFAULT_REQ_METHOD | ||||
| 
 | ||||
| 
 | ||||
| if ENV_API_DEFAULT_REQ_METHOD.exists() and ENV_API_DEFAULT_REQ_METHOD.get().upper() not in ("GET", "POST"): | ||||
| if ENV_API_DEFAULT_REQ_METHOD.exists() and ENV_API_DEFAULT_REQ_METHOD.get().upper() not in ("GET", "POST", "PUT"): | ||||
|     raise ValueError( | ||||
|         "CLEARML_API_DEFAULT_REQ_METHOD environment variable must be 'get' or 'post' (any case is allowed)." | ||||
|     ) | ||||
| 
 | ||||
| 
 | ||||
| class Request(ApiModel): | ||||
|     def_method = ENV_API_DEFAULT_REQ_METHOD.get(default="get") | ||||
|     _method = ENV_API_DEFAULT_REQ_METHOD.get(default="get") | ||||
| 
 | ||||
|     def __init__(self, **kwargs): | ||||
|  | ||||
| @ -25,8 +25,7 @@ from .defs import ( | ||||
|     ENV_DISABLE_VAULT_SUPPORT, | ||||
|     ENV_ENABLE_ENV_CONFIG_SECTION, | ||||
|     ENV_ENABLE_FILES_CONFIG_SECTION, | ||||
|     ENV_API_DEFAULT_REQ_METHOD, | ||||
|     ENV_API_EXTRA_RETRY_CODES, | ||||
|     ENV_API_EXTRA_RETRY_CODES, ENV_API_DEFAULT_REQ_METHOD, | ||||
| ) | ||||
| from .request import Request, BatchRequest  # noqa: F401 | ||||
| from .token_manager import TokenManager | ||||
| @ -142,6 +141,15 @@ class Session(TokenManager): | ||||
|         self._logger = logger | ||||
|         self.__auth_token = None | ||||
| 
 | ||||
|         if not ENV_API_DEFAULT_REQ_METHOD.get(default=None) and self.config.get("api.http.default_method", None): | ||||
|             def_method = str(self.config.get("api.http.default_method", None)).strip() | ||||
|             if def_method.upper() not in ("GET", "POST", "PUT"): | ||||
|                 raise ValueError( | ||||
|                     "api.http.default_method variable must be 'get' or 'post' (any case is allowed)." | ||||
|                 ) | ||||
|             Request.def_method = def_method | ||||
|             Request._method = Request.def_method | ||||
| 
 | ||||
|         if ENV_AUTH_TOKEN.get(): | ||||
|             self.__access_key = self.__secret_key = None | ||||
|             self.__auth_token = ENV_AUTH_TOKEN.get() | ||||
| @ -313,7 +321,7 @@ class Session(TokenManager): | ||||
|         service, | ||||
|         action, | ||||
|         version=None, | ||||
|         method="get", | ||||
|         method=Request.def_method, | ||||
|         headers=None, | ||||
|         auth=None, | ||||
|         data=None, | ||||
| @ -402,7 +410,7 @@ class Session(TokenManager): | ||||
|         service, | ||||
|         action, | ||||
|         version=None, | ||||
|         method="get", | ||||
|         method=Request.def_method, | ||||
|         headers=None, | ||||
|         data=None, | ||||
|         json=None, | ||||
| @ -445,7 +453,7 @@ class Session(TokenManager): | ||||
|         headers=None, | ||||
|         data=None, | ||||
|         json=None, | ||||
|         method="get", | ||||
|         method=Request.def_method, | ||||
|     ): | ||||
|         """ | ||||
|         Send a raw batch API request. Batch requests always use application/json-lines content type. | ||||
| @ -734,7 +742,7 @@ class Session(TokenManager): | ||||
|         try: | ||||
|             data = {"expiration_sec": exp} if exp else {} | ||||
|             res = self._send_request( | ||||
|                 method=ENV_API_DEFAULT_REQ_METHOD.get(default="get"), | ||||
|                 method=Request.def_method, | ||||
|                 service="auth", | ||||
|                 action="login", | ||||
|                 auth=auth, | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 allegroai
						allegroai