Wrap requests in try for better failing
Or would it be worse failing?
This commit is contained in:
1 parent
b5207bc88c
commit
a428d36604
2 files changed
+28
No files matched your search
@@ -11,9 +11,11 @@ from tornado import template
|
|||||||
from tornado.web import RequestHandler
|
from tornado.web import RequestHandler
|
||||||
import os
|
import os
|
||||||
import time
|
import time
|
||||||
|
import traceback
|
||||||
|
|
||||||
log = CPLog(__name__)
|
log = CPLog(__name__)
|
||||||
|
|
||||||
|
|
||||||
views = {}
|
views = {}
|
||||||
template_loader = template.Loader(os.path.join(os.path.dirname(__file__), 'templates'))
|
template_loader = template.Loader(os.path.join(os.path.dirname(__file__), 'templates'))
|
||||||
|
|
||||||
@@ -25,7 +27,12 @@ class WebHandler(RequestHandler):
|
|||||||
if not views.get(route):
|
if not views.get(route):
|
||||||
page_not_found(self)
|
page_not_found(self)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
try:
|
||||||
self.write(views[route]())
|
self.write(views[route]())
|
||||||
|
except:
|
||||||
|
log.error('Failed doing web request "%s": %s', (route, traceback.format_exc()))
|
||||||
|
self.write({'success': False, 'error': 'Failed returning results'})
|
||||||
|
|
||||||
def addView(route, func, static = False):
|
def addView(route, func, static = False):
|
||||||
views[route] = func
|
views[route] = func
|
||||||
@@ -58,6 +65,8 @@ addView('docs', apiDocs)
|
|||||||
class KeyHandler(RequestHandler):
|
class KeyHandler(RequestHandler):
|
||||||
def get(self, *args, **kwargs):
|
def get(self, *args, **kwargs):
|
||||||
api = None
|
api = None
|
||||||
|
|
||||||
|
try:
|
||||||
username = Env.setting('username')
|
username = Env.setting('username')
|
||||||
password = Env.setting('password')
|
password = Env.setting('password')
|
||||||
|
|
||||||
@@ -68,6 +77,10 @@ class KeyHandler(RequestHandler):
|
|||||||
'success': api is not None,
|
'success': api is not None,
|
||||||
'api_key': api
|
'api_key': api
|
||||||
})
|
})
|
||||||
|
except:
|
||||||
|
log.error('Failed doing key request: %s', (traceback.format_exc()))
|
||||||
|
self.write({'success': False, 'error': 'Failed returning results'})
|
||||||
|
|
||||||
|
|
||||||
def page_not_found(rh):
|
def page_not_found(rh):
|
||||||
index_url = Env.get('web_base')
|
index_url = Env.get('web_base')
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
from couchpotato.core.helpers.request import getParams
|
from couchpotato.core.helpers.request import getParams
|
||||||
|
from couchpotato.core.logger import CPLog
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
from threading import Thread
|
from threading import Thread
|
||||||
from tornado.gen import coroutine
|
from tornado.gen import coroutine
|
||||||
@@ -6,8 +7,12 @@ from tornado.web import RequestHandler, asynchronous
|
|||||||
import json
|
import json
|
||||||
import threading
|
import threading
|
||||||
import tornado
|
import tornado
|
||||||
|
import traceback
|
||||||
import urllib
|
import urllib
|
||||||
|
|
||||||
|
log = CPLog(__name__)
|
||||||
|
|
||||||
|
|
||||||
api = {}
|
api = {}
|
||||||
api_locks = {}
|
api_locks = {}
|
||||||
api_nonblock = {}
|
api_nonblock = {}
|
||||||
@@ -41,7 +46,11 @@ class NonBlockHandler(RequestHandler):
|
|||||||
if self.request.connection.stream.closed():
|
if self.request.connection.stream.closed():
|
||||||
return
|
return
|
||||||
|
|
||||||
|
try:
|
||||||
self.write(response)
|
self.write(response)
|
||||||
|
except:
|
||||||
|
log.error('Failed doing nonblock request: %s', (traceback.format_exc()))
|
||||||
|
self.write({'success': False, 'error': 'Failed returning results'})
|
||||||
|
|
||||||
def on_connection_close(self):
|
def on_connection_close(self):
|
||||||
|
|
||||||
@@ -70,6 +79,8 @@ class ApiHandler(RequestHandler):
|
|||||||
|
|
||||||
api_locks[route].acquire()
|
api_locks[route].acquire()
|
||||||
|
|
||||||
|
try:
|
||||||
|
|
||||||
kwargs = {}
|
kwargs = {}
|
||||||
for x in self.request.arguments:
|
for x in self.request.arguments:
|
||||||
kwargs[x] = urllib.unquote(self.get_argument(x))
|
kwargs[x] = urllib.unquote(self.get_argument(x))
|
||||||
@@ -98,6 +109,10 @@ class ApiHandler(RequestHandler):
|
|||||||
else:
|
else:
|
||||||
self.write(result)
|
self.write(result)
|
||||||
|
|
||||||
|
except:
|
||||||
|
log.error('Failed doing api request "%s": %s', (route, traceback.format_exc()))
|
||||||
|
self.write({'success': False, 'error': 'Failed returning results'})
|
||||||
|
|
||||||
api_locks[route].release()
|
api_locks[route].release()
|
||||||
|
|
||||||
def addApiView(route, func, static = False, docs = None, **kwargs):
|
def addApiView(route, func, static = False, docs = None, **kwargs):
|
||||||
|
|||||||
Reference in new issue
Block a user