summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryo mama <pepper@scannerjammer.com>2016-03-10 07:05:05 -0800
committeryo mama <pepper@scannerjammer.com>2016-03-10 07:05:05 -0800
commit74ea1ebc0eec045a783e0f7f63ef276b59b9112f (patch)
tree2212bd749ac524944a1c6dee349295ffc5515a43
parent327b2d96da372814ba1be6eb84707358a9df37cc (diff)
errorserrors
-rw-r--r--photoblaster/param/__init__.py2
-rw-r--r--photoblaster/param/base.py9
-rw-r--r--photoblaster/param/img_url.py14
-rw-r--r--photoblaster/server.py11
4 files changed, 23 insertions, 13 deletions
diff --git a/photoblaster/param/__init__.py b/photoblaster/param/__init__.py
index f6d7e9c..a991f7b 100644
--- a/photoblaster/param/__init__.py
+++ b/photoblaster/param/__init__.py
@@ -1,5 +1,5 @@
"""imports for the param package"""
-from photoblaster.param.base import Param, BadParamError
+from photoblaster.param.base import Param, BadParamError, FileTooBigError
from photoblaster.param.int_ import Int
from photoblaster.param.raw import Raw
from photoblaster.param.bool_ import Bool
diff --git a/photoblaster/param/base.py b/photoblaster/param/base.py
index 31b6829..535488b 100644
--- a/photoblaster/param/base.py
+++ b/photoblaster/param/base.py
@@ -4,6 +4,11 @@ import sys
from photoblaster.config import WORKING_DIR
+
+class FileTooBigError(Exception):
+ pass
+
+
class BadParamError(Exception):
pass
@@ -52,6 +57,6 @@ class Param(object):
def _error_log(self, s, fatal=False):
message = "ERROR - BAD PARAM"
- if fatal: message += "- [FATAL] -"
+ if fatal:
+ message += "- [FATAL] -"
sys.stderr.write("{}:{} - {}\n".format(message, self._classname, s))
-
diff --git a/photoblaster/param/img_url.py b/photoblaster/param/img_url.py
index f85fa63..4a5fef8 100644
--- a/photoblaster/param/img_url.py
+++ b/photoblaster/param/img_url.py
@@ -1,5 +1,5 @@
"""Img_url param class definition lives here"""
-from photoblaster.param import Param
+from photoblaster.param import Param, FileTooBigError
from photoblaster.config import MAX_SIZE, SPECIAL_DOWNLOADERS,\
SPECIAL_DOWNLOADERS_MAX_SIZE,\
BIN_IDENTIFY
@@ -94,11 +94,13 @@ class Img_url(Param):
if len(rawimg) == 0:
self.err_warn("got zero-length file")
if len(rawimg) > max_size:
- self.err_warn("file too big: max size {} KB / {} is {} KB".format(
- str(MAX_SIZE/1024),
- destination,
- str(len(rawimg)/1024)
- ))
+ raise FileTooBigError(
+ "file too big: max size {} KB / {} is {} KB".format(
+ str(MAX_SIZE/1024),
+ destination,
+ str(len(rawimg)/1024)
+ )
+ )
f = open(destination, "w")
f.write(rawimg)
f.close()
diff --git a/photoblaster/server.py b/photoblaster/server.py
index 56cdd1b..802d8b1 100644
--- a/photoblaster/server.py
+++ b/photoblaster/server.py
@@ -11,7 +11,7 @@ import urllib2
from photoblaster.modules import Modules, PbProcessError
from photoblaster.db.models.imcmd import ImCmd
-from photoblaster.param import BadParamError
+from photoblaster.param import BadParamError, FileTooBigError
from photoblaster.config import SERVER_HOST, SERVER_PORT, STATIC_FOLDER, \
WORKING_DIR, LOCAL
@@ -226,7 +226,7 @@ class Server(object):
raise InvalidUsage('No such api', status_code=410)
def _response_post(self, pb_classname, request_form, remote_addr=None):
- #load plugins here
+ # load plugins here
pb_class = self._find_class_by_name(pb_classname)
try:
pb = pb_class(**request_form)
@@ -240,15 +240,18 @@ class Server(object):
return "%s(%s)" % (pb.params.callback, json_data)
return json_data
+ except FileTooBigError as error:
+ raise InvalidUsage(str(error), status_code=410)
+
except BadParamError:
for i in request_form.keys():
sys.stderr.write('\'%s\':\'%s\'\n' % (
i, request_form[i] or None
))
- return jsonify({'error': 'Bad Params'})
+ raise InvalidUsage('Bad Params')
except PbProcessError:
sys.stderr.write(dict(request_form))
- return jsonify({'error': 'Problem with server-side processing'})
+ raise InvalidUsage('Problem with server-side processing')
def run(self, host=SERVER_HOST, port=SERVER_PORT):
self.app.run(host=host, port=port, debug=True)