Make sure unicode strings work for container and object names, as well as metadata...
[pithos] / pithos / api / faults.py
1 #\r
2 # Copyright (c) 2011 Greek Research and Technology Network\r
3 #\r
4 \r
5 def camelCase(s):\r
6     return s[0].lower() + s[1:]\r
7 \r
8 \r
9 class Fault(Exception):\r
10     def __init__(self, message='', details='', name=''):\r
11         Exception.__init__(self, message, details, name)\r
12         self.message = message\r
13         self.details = details\r
14         self.name = name or camelCase(self.__class__.__name__)\r
15 \r
16 class NotModified(Fault):\r
17     code = 304\r
18 \r
19 class BadRequest(Fault):\r
20     code = 400\r
21 \r
22 class Unauthorized(Fault):\r
23     code = 401\r
24 \r
25 class ResizeNotAllowed(Fault):\r
26     code = 403\r
27 \r
28 class ItemNotFound(Fault):\r
29     code = 404\r
30 \r
31 class Conflict(Fault):\r
32     code = 409\r
33 \r
34 class LengthRequired(Fault):\r
35     code = 411\r
36 \r
37 class PreconditionFailed(Fault):\r
38     code = 412\r
39 \r
40 class RangeNotSatisfiable(Fault):\r
41     code = 416\r
42 \r
43 class UnprocessableEntity(Fault):\r
44     code = 422\r
45 \r
46 class ServiceUnavailable(Fault):\r
47     code = 503\r