venv added, updated
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
"""Exceptions utils for InfluxDB."""
|
||||
|
||||
import logging
|
||||
|
||||
from urllib3 import HTTPResponse
|
||||
|
||||
logger = logging.getLogger('influxdb_client.client.exceptions')
|
||||
|
||||
|
||||
class InfluxDBError(Exception):
|
||||
"""Raised when a server error occurs."""
|
||||
|
||||
def __init__(self, response: HTTPResponse = None, message: str = None):
|
||||
"""Initialize the InfluxDBError handler."""
|
||||
if response is not None:
|
||||
self.response = response
|
||||
self.message = self._get_message(response)
|
||||
if isinstance(response, HTTPResponse): # response is HTTPResponse
|
||||
self.headers = response.headers
|
||||
self.retry_after = response.headers.get('Retry-After')
|
||||
else: # response is RESTResponse
|
||||
self.headers = response.getheaders()
|
||||
self.retry_after = response.getheader('Retry-After')
|
||||
else:
|
||||
self.response = None
|
||||
self.message = message or 'no response'
|
||||
self.retry_after = None
|
||||
super().__init__(self.message)
|
||||
|
||||
def _get_message(self, response):
|
||||
# Body
|
||||
if response.data:
|
||||
import json
|
||||
try:
|
||||
return json.loads(response.data)["message"]
|
||||
except Exception as e:
|
||||
logging.debug(f"Cannot parse error response to JSON: {response.data}, {e}")
|
||||
return response.data
|
||||
|
||||
# Header
|
||||
for header_key in ["X-Platform-Error-Code", "X-Influx-Error", "X-InfluxDb-Error"]:
|
||||
header_value = response.getheader(header_key)
|
||||
if header_value is not None:
|
||||
return header_value
|
||||
|
||||
# Http Status
|
||||
return response.reason
|
||||
Reference in New Issue
Block a user