Handle Connetion to SF timeouts on server level
Change-Id: If5dd7594a6507ddef3ae401c14cbbc936d42bd23
Related-bug: PROD-27801 (PROD:27801)
diff --git a/sf_notifier/salesforce/client.py b/sf_notifier/salesforce/client.py
index 0d50b62..51b1b43 100644
--- a/sf_notifier/salesforce/client.py
+++ b/sf_notifier/salesforce/client.py
@@ -23,7 +23,7 @@
from prometheus_client import Counter, Gauge
from requests import Session
-from requests import exceptions as req_exceptions
+from requests.exceptions import ConnectionError as RequestsConnectionError
from simple_salesforce import Salesforce
from simple_salesforce import exceptions as sf_exceptions
@@ -62,7 +62,7 @@
except sf_exceptions.SalesforceExpiredSession:
logger.warning('Salesforce session expired.')
self._auth()
- except req_exceptions.ConnectionError:
+ except RequestsConnectionError:
logger.error('Salesforce connection error.')
self._auth()
return method(self, *args, **kwargs)
diff --git a/sf_notifier/server.py b/sf_notifier/server.py
index 263d1b6..e7d6787 100644
--- a/sf_notifier/server.py
+++ b/sf_notifier/server.py
@@ -20,6 +20,8 @@
from prometheus_client import make_wsgi_app
+from requests.exceptions import ConnectionError as RequestsConnectionError
+
from sf_notifier.helpers import alert_fields_and_action
from sf_notifier.salesforce.client import SalesforceClient
@@ -77,7 +79,7 @@
if fields:
try:
cases.append(getattr(sf_cli, action)(*fields))
- except SalesforceError as err:
+ except (SalesforceError, RequestsConnectionError) as err:
msg = 'Salesforce request failure: {}.'.format(err)
sf_cli.metrics['sf_error_count'].inc()
app.logger.error(msg)