Merge lp:~eday/burrow/content-type-fix into lp:burrow

Proposed by Eric Day
Status: Merged
Approved by: Eric Day
Approved revision: 21
Merged at revision: 22
Proposed branch: lp:~eday/burrow/content-type-fix
Merge into: lp:burrow
Diff against target: 145 lines (+25/-21)
1 file modified
burrow/frontend/wsgi.py (+25/-21)
To merge this branch: bzr merge lp:~eday/burrow/content-type-fix
Reviewer Review Type Date Requested Status
Burrow Core Team Pending
Review via email: mp+67743@code.launchpad.net

Description of the change

Added proper content-types, cleaned up responses.

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'burrow/frontend/wsgi.py'
2--- burrow/frontend/wsgi.py 2011-06-15 18:36:44 +0000
3+++ burrow/frontend/wsgi.py 2011-07-12 18:52:44 +0000
4@@ -22,7 +22,6 @@
5 import routes
6 import routes.middleware
7 import webob.dec
8-import webob.exc
9
10 import burrow.frontend
11
12@@ -114,44 +113,44 @@
13 def _route(self, req):
14 args = req.environ['wsgiorg.routing_args'][1]
15 if not args:
16- return webob.exc.HTTPNotFound()
17+ return webob.Response(status=404)
18 action = args.pop('action')
19 method = getattr(self, '_%s_%s' % (req.method.lower(), action), False)
20 if not method:
21- return webob.exc.HTTPBadRequest()
22+ return webob.Response(status=400)
23 return method(req, **args)
24
25 @webob.dec.wsgify
26 def _get_root(self, _req):
27- return webob.exc.HTTPOk(body=json.dumps(['v1.0'], indent=2))
28+ return self._response(['v1.0'])
29
30 @webob.dec.wsgify
31 def _delete_version(self, req):
32 filters = self._parse_filters(req)
33 [account for account in self.backend.delete_accounts(filters)]
34- return webob.exc.HTTPNoContent()
35+ return webob.Response(status=204)
36
37 @webob.dec.wsgify
38 def _get_version(self, req):
39 filters = self._parse_filters(req)
40 accounts = [account for account in self.backend.get_accounts(filters)]
41 if len(accounts) == 0:
42- return webob.exc.HTTPNotFound()
43- return webob.exc.HTTPOk(body=json.dumps(accounts, indent=2))
44+ return webob.Response(status=404)
45+ return webob.Response(body=json.dumps(accounts, indent=2))
46
47 @webob.dec.wsgify
48 def _delete_account(self, req, account):
49 filters = self._parse_filters(req)
50 [queue for queue in self.backend.delete_queues(account, filters)]
51- return webob.exc.HTTPNoContent()
52+ return webob.Response(status=204)
53
54 @webob.dec.wsgify
55 def _get_account(self, req, account):
56 filters = self._parse_filters(req)
57 queues = [queue for queue in self.backend.get_queues(account, filters)]
58 if len(queues) == 0:
59- return webob.exc.HTTPNotFound()
60- return webob.exc.HTTPOk(body=json.dumps(queues, indent=2))
61+ return webob.Response(status=404)
62+ return self._response(queues)
63
64 @webob.dec.wsgify
65 @wait_on_queue
66@@ -182,14 +181,14 @@
67 def _delete_message(self, req, account, queue, message):
68 message = self.backend.delete_message(account, queue, message)
69 if message is None:
70- return webob.exc.HTTPNotFound()
71+ return webob.Response(status=404)
72 return self._return_message(req, account, queue, message, 'none')
73
74 @webob.dec.wsgify
75 def _get_message(self, req, account, queue, message):
76 message = self.backend.get_message(account, queue, message)
77 if message is None:
78- return webob.exc.HTTPNotFound()
79+ return webob.Response(status=404)
80 return self._return_message(req, account, queue, message, 'all')
81
82 @webob.dec.wsgify
83@@ -198,7 +197,7 @@
84 message = self.backend.update_message(account, queue, message,
85 attributes)
86 if message is None:
87- return webob.exc.HTTPNotFound()
88+ return webob.Response(status=404)
89 return self._return_message(req, account, queue, message, 'id')
90
91 @webob.dec.wsgify
92@@ -210,8 +209,8 @@
93 body += chunk
94 if self.backend.create_message(account, queue, message, body,
95 attributes):
96- return webob.exc.HTTPCreated()
97- return webob.exc.HTTPNoContent()
98+ return webob.Response(status=201)
99+ return webob.Response(status=204)
100
101 def _filter_message(self, detail, message):
102 if detail == 'id':
103@@ -228,15 +227,16 @@
104 if 'detail' in req.params:
105 detail = req.params['detail']
106 if detail == 'body':
107- return webob.exc.HTTPOk(body=message['body'])
108+ return webob.Response(body=body,
109+ content_type="application/octet-stream")
110 message = self._filter_message(detail, message)
111 if message is not None:
112- return webob.exc.HTTPOk(body=json.dumps(message, indent=2))
113- return webob.exc.HTTPNoContent()
114+ return self._response(message)
115+ return webob.Response(status=204)
116
117 def _return_messages(self, req, account, queue, messages, detail):
118 if len(messages) == 0:
119- return webob.exc.HTTPNotFound()
120+ return webob.Response(status=404)
121 if 'detail' in req.params:
122 detail = req.params['detail']
123 filtered_messages = []
124@@ -245,8 +245,8 @@
125 if message is not None:
126 filtered_messages.append(message)
127 if len(filtered_messages) == 0:
128- return webob.exc.HTTPNoContent()
129- return webob.exc.HTTPOk(body=json.dumps(filtered_messages, indent=2))
130+ return webob.Response(status=204)
131+ return self._response(filtered_messages)
132
133 def _parse_filters(self, req):
134 filters = {}
135@@ -273,6 +273,10 @@
136 attributes['hide'] = hide
137 return attributes
138
139+ def _response(self, body):
140+ body=json.dumps(body, indent=2)
141+ return webob.Response(body=body, content_type="application/json")
142+
143
144 class WSGILog(object):
145 '''Class for eventlet.wsgi.server to forward logging messages.'''

Subscribers

People subscribed via source and target branches