Add production settings + correct setting sandbox_enabled
Change-Id: I92bd99676fe0d3b4bc0de10e180e5a2e82ab2ef7
Related-bug: PROD-24880 (PROD:24880)
diff --git a/sf_notifier/salesforce/client.py b/sf_notifier/salesforce/client.py
index 84e68cb..319488d 100644
--- a/sf_notifier/salesforce/client.py
+++ b/sf_notifier/salesforce/client.py
@@ -83,7 +83,7 @@
env_var, config.get(setting_var))
if field == 'domain':
- if kwargs[field] is True:
+ if kwargs[field] in ['true', 'True', True]:
kwargs[field] = 'test'
else:
del kwargs[field]
@@ -99,7 +99,11 @@
def _auth(self):
kwargs = {'session': self.session}
kwargs.update(self.config)
- self.sf = Salesforce(**kwargs)
+ try:
+ self.sf = Salesforce(**kwargs)
+ except sf_exceptions.SalesforceAuthenticationFailed:
+ logger.error('Salesforce authentication failure.')
+ return
logger.info('Salesforce authentication successful.')
@staticmethod
@@ -137,7 +141,7 @@
err_code = ex.content[0]['errorCode']
if err_code == 'DUPLICATE_VALUE':
- logger.info('Duplicate case: {}.'.format(msg))
+ logger.warning('Duplicate case: {}.'.format(msg))
case_id = msg.split()[-1]
self._registered_alerts[alert_id] = {'Id': case_id}
return 1, case_id
diff --git a/sf_notifier/server.py b/sf_notifier/server.py
index 182f55d..658061d 100644
--- a/sf_notifier/server.py
+++ b/sf_notifier/server.py
@@ -44,7 +44,9 @@
try:
data = json.loads(request.data)
except ValueError:
- return Response(json.dumps({'error': 'Invalid request data.'}),
+ msg = 'Invalid request data: {}.'.format(request.data)
+ app.logger.error(msg)
+ return Response(json.dumps({'error': msg}),
status=400,
mimetype='application/json')
@@ -65,7 +67,9 @@
try:
cases.append(getattr(sf_cli, action)(*fields))
except SalesforceMalformedRequest:
- return Response(json.dumps({'error': 'Request failure.'}),
+ msg = 'Salesforce request failure.'
+ app.logger.error(msg)
+ return Response(json.dumps({'error': msg}),
status=500,
mimetype='application/json')
diff --git a/sf_notifier/settings/production.py b/sf_notifier/settings/production.py
new file mode 100644
index 0000000..b886190
--- /dev/null
+++ b/sf_notifier/settings/production.py
@@ -0,0 +1,38 @@
+LOGGING = {
+ 'version': 1,
+ 'formatters': {'default': {
+ 'format': '[%(asctime)s] %(levelname)s in %(module)s: %(message)s',
+ }},
+ 'handlers': {
+ 'wsgi': {
+ 'class': 'logging.StreamHandler',
+ 'stream': 'ext://flask.logging.wsgi_errors_stream',
+ 'formatter': 'default'
+ },
+ 'file': {
+ 'class': 'logging.handlers.RotatingFileHandler',
+ 'formatter': 'default',
+ 'filename': '/var/log/sf-notifier/sfnotifier.log',
+ 'mode': 'a',
+ 'maxBytes': 10485760,
+ 'backupCount': 5
+ }
+ },
+ 'loggers': {
+ 'sf_notifier.server': {
+ 'level': 'WARN',
+ 'handlers': ['file', 'wsgi']
+ },
+ 'sf_notifier.salesforce.client': {
+ 'level': 'WARN',
+ 'handlers': ['file', 'wsgi']
+ }
+ }
+}
+
+SIMPLE_SETTINGS = {
+ 'OVERRIDE_BY_ENV': True,
+ 'CONFIGURE_LOGGING': True,
+}
+
+SF_CONFIG = {}
diff --git a/sf_notifier/vars/production b/sf_notifier/vars/production
new file mode 100644
index 0000000..85d050b
--- /dev/null
+++ b/sf_notifier/vars/production
@@ -0,0 +1,4 @@
+export FLASK_APP=sf_notifier/server.py
+export FLASK_ENV=production
+
+export SIMPLE_SETTINGS=sf_notifier.settings.production