Revision 08de868d pithos/api/util.py

b/pithos/api/util.py
51 51

  
52 52
from pithos.api.faults import (Fault, NotModified, BadRequest, Unauthorized, Forbidden, ItemNotFound,
53 53
                                Conflict, LengthRequired, PreconditionFailed, RequestEntityTooLarge,
54
                                RangeNotSatisfiable, ServiceUnavailable)
54
                                RangeNotSatisfiable, InternalServerError, NotImplemented)
55 55
from pithos.api.short_url import encode_url
56 56
from pithos.backends import connect_backend
57 57
from pithos.backends.base import NotAllowedError, QuotaError
......
320 320
    except ValueError:
321 321
        raise BadRequest('Invalid sharing header')
322 322
    except AttributeError, e:
323
        raise Conflict('\n'.join(e.data) + '\n')
323
        raise Conflict('\n'.join(e.data))
324 324
    except QuotaError:
325 325
        raise RequestEntityTooLarge('Quota exceeded')
326 326
    if public is not None:
......
497 497
        return request._req
498 498
    if 'wsgi.input' in request.environ:
499 499
        return request.environ['wsgi.input']
500
    raise ServiceUnavailable('Unknown server software')
500
    raise NotImplemented('Unknown server software')
501 501

  
502 502
MAX_UPLOAD_SIZE = 5 * (1024 * 1024 * 1024) # 5GB
503 503

  
......
810 810
        response['Date'] = format_date_time(time())
811 811

  
812 812
def render_fault(request, fault):
813
    if settings.DEBUG or settings.TEST:
813
    if isinstance(fault, InternalServerError) and (settings.DEBUG or settings.TEST):
814 814
        fault.details = format_exc(fault)
815 815
    
816 816
    request.serialization = 'text'
817
    data = '\n'.join((fault.message, fault.details)) + '\n'
817
    data = fault.message + '\n'
818
    if fault.details:
819
        data += '\n' + fault.details
818 820
    response = HttpResponse(data, status=fault.code)
819 821
    update_response_headers(request, response)
820 822
    return response
......
875 877
                return render_fault(request, fault)
876 878
            except BaseException, e:
877 879
                logger.exception('Unexpected error: %s' % e)
878
                fault = ServiceUnavailable('Unexpected error')
880
                fault = InternalServerError('Unexpected error')
879 881
                return render_fault(request, fault)
880 882
            finally:
881 883
                if getattr(request, 'backend', None) is not None:

Also available in: Unified diff