Features: added a 1h timeout to every requests
This commit is contained in:
parent
ee0173698e
commit
18e57caf99
|
@ -111,6 +111,7 @@ class ForwardFile(models.Model):
|
|||
|
||||
class AtrealOpenads(BaseResource):
|
||||
"""API that proxy/relay communications with/to openADS."""
|
||||
|
||||
collectivite = models.CharField(_('Collectivity (identifier)'), max_length=255,
|
||||
help_text=_('ex: Marseille, or ex: 3'), default='', blank=True)
|
||||
openADS_API_login = models.CharField(_('openADS API login'), max_length=255,
|
||||
|
@ -122,6 +123,8 @@ class AtrealOpenads(BaseResource):
|
|||
extra_debug = models.BooleanField(_('Extra debug'),
|
||||
help_text=_('ex: True'), default=0)
|
||||
|
||||
openADS_API_timeout = 3600
|
||||
|
||||
category = _('Business Process Connectors')
|
||||
|
||||
api_description = _('''
|
||||
|
@ -147,7 +150,11 @@ class AtrealOpenads(BaseResource):
|
|||
def check_status(self):
|
||||
"""Check avaibility of the openADS.API service."""
|
||||
url = urlparse.urljoin(self.openADS_API_url, '__api__')
|
||||
response = self.requests.get(url, auth=(self.openADS_API_login, self.openADS_API_password))
|
||||
response = self.requests.get(
|
||||
url,
|
||||
auth=(self.openADS_API_login, self.openADS_API_password),
|
||||
timeout=self.penADS_API_timeout
|
||||
)
|
||||
response.raise_for_status()
|
||||
return {'response': response.status_code}
|
||||
|
||||
|
@ -261,9 +268,14 @@ class AtrealOpenads(BaseResource):
|
|||
self.debug("----- files (end) -----")
|
||||
|
||||
url = urlparse.urljoin(self.openADS_API_url, '/dossiers/%s' % type_dossier)
|
||||
response = self.requests.post(url, json=payload, auth=(self.openADS_API_login, self.openADS_API_password))
|
||||
response = self.requests.post(
|
||||
url,
|
||||
json=payload,
|
||||
auth=(self.openADS_API_login, self.openADS_API_password),
|
||||
timeout=self.penADS_API_timeout
|
||||
)
|
||||
if response.status_code // 100 != 2:
|
||||
error = self.get_response_error(response)
|
||||
error = self.get_response_error(response, timeout=self.penADS_API_timeout)
|
||||
self.logger.warning("Request [POST] '%s' failed with error: '%s'", url, error)
|
||||
raise APIError(error)
|
||||
try:
|
||||
|
@ -350,7 +362,11 @@ class AtrealOpenads(BaseResource):
|
|||
})
|
||||
def get_dossier(self, request, type_dossier, numero_dossier, *args, **kwargs):
|
||||
url = urlparse.urljoin(self.openADS_API_url, '/dossier/%s/%s' % (type_dossier, numero_dossier))
|
||||
response = self.requests.get(url, auth=(self.openADS_API_login, self.openADS_API_password))
|
||||
response = self.requests.get(
|
||||
url,
|
||||
auth=(self.openADS_API_login, self.openADS_API_password),
|
||||
timeout=self.penADS_API_timeout
|
||||
)
|
||||
if response.status_code // 100 != 2:
|
||||
error = self.get_response_error(response)
|
||||
self.logger.warning("Request [GET] '%s' failed with error: '%s'", url, error)
|
||||
|
@ -464,7 +480,11 @@ class AtrealOpenads(BaseResource):
|
|||
url = urlparse.urljoin(
|
||||
self.openADS_API_url,
|
||||
'/dossier/%s/%s/courrier/%s' % (type_dossier, numero_dossier, 'dia_renonciation_preempter'))
|
||||
response = self.requests.get(url, auth=(self.openADS_API_login, self.openADS_API_password))
|
||||
response = self.requests.get(
|
||||
url,
|
||||
auth=(self.openADS_API_login, self.openADS_API_password),
|
||||
timeout=self.penADS_API_timeout
|
||||
)
|
||||
if response.status_code // 100 != 2:
|
||||
error = self.get_response_error(response)
|
||||
self.logger.warning("Request [GET] '%s' failed with error: '%s'", url, error)
|
||||
|
@ -541,7 +561,12 @@ class AtrealOpenads(BaseResource):
|
|||
p['b64_content'] = '<b64 content>'
|
||||
self.debug("upload_user_files() payload is: %s", str(debug_payload))
|
||||
url = urlparse.urljoin(self.openADS_API_url, '/dossier/%s/%s/files' % (type_dossier, numero_dossier))
|
||||
response = self.requests.post(url, json=payload, auth=(self.openADS_API_login, self.openADS_API_password))
|
||||
response = self.requests.post(
|
||||
url,
|
||||
json=payload,
|
||||
auth=(self.openADS_API_login, self.openADS_API_password),
|
||||
timeout=self.penADS_API_timeout
|
||||
)
|
||||
if response.status_code // 100 != 2:
|
||||
for fwd_file in fwd_files:
|
||||
fwd_file.upload_status = 'failed'
|
||||
|
|
Reference in New Issue