Merge lp:~eday/burrow/cleanup into lp:burrow

Proposed by Eric Day
Status: Merged
Approved by: Eric Day
Approved revision: 13
Merged at revision: 13
Proposed branch: lp:~eday/burrow/cleanup
Merge into: lp:burrow
Diff against target: 200 lines (+63/-18)
4 files modified
burrow/backend/memory.py (+32/-2)
burrow/backend/sqlite.py (+28/-2)
burrow/frontend/wsgi.py (+0/-4)
test/frontend/test_wsgi.py (+3/-10)
To merge this branch: bzr merge lp:~eday/burrow/cleanup
Reviewer Review Type Date Requested Status
Burrow Core Team Pending
Review via email: mp+58923@code.launchpad.net

Description of the change

Change TTL and hide values to be relative outside of backend API.

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
=== modified file 'burrow/backend/memory.py'
--- burrow/backend/memory.py 2011-04-06 02:03:37 +0000
+++ burrow/backend/memory.py 2011-04-24 22:51:25 +0000
@@ -57,7 +57,11 @@
57 def create_message(self, account, queue, message, body, attributes={}):57 def create_message(self, account, queue, message, body, attributes={}):
58 account, queue = self.accounts.get_queue(account, queue, True)58 account, queue = self.accounts.get_queue(account, queue, True)
59 ttl = attributes.get('ttl', 0)59 ttl = attributes.get('ttl', 0)
60 if ttl > 0:
61 ttl += int(time.time())
60 hide = attributes.get('hide', 0)62 hide = attributes.get('hide', 0)
63 if hide > 0:
64 hide += int(time.time())
61 for index in xrange(0, len(queue[3])):65 for index in xrange(0, len(queue[3])):
62 if queue[3][index]['id'] == message:66 if queue[3][index]['id'] == message:
63 message = queue[3][index]67 message = queue[3][index]
@@ -82,6 +86,10 @@
82 del queue[3][index]86 del queue[3][index]
83 if len(queue[3]) == 0:87 if len(queue[3]) == 0:
84 self.accounts.delete_queue(account[0], queue[0])88 self.accounts.delete_queue(account[0], queue[0])
89 if message['ttl'] > 0:
90 message['ttl'] -= int(time.time())
91 if message['hide'] > 0:
92 message['hide'] -= int(time.time())
85 return message93 return message
86 return None94 return None
8795
@@ -91,7 +99,14 @@
91 return None99 return None
92 for index in xrange(0, len(queue[3])):100 for index in xrange(0, len(queue[3])):
93 if queue[3][index]['id'] == message:101 if queue[3][index]['id'] == message:
94 return queue[3][index]102 ttl = queue[3][index]['ttl']
103 if ttl > 0:
104 ttl -= int(time.time())
105 hide = queue[3][index]['hide']
106 if hide > 0:
107 hide -= int(time.time())
108 return dict(id=message, ttl=ttl, hide=hide,
109 body=queue[3][index]['body'])
95 return None110 return None
96111
97 def update_message(self, account, queue, message, attributes={}):112 def update_message(self, account, queue, message, attributes={}):
@@ -99,7 +114,11 @@
99 if queue is None:114 if queue is None:
100 return None115 return None
101 ttl = attributes.get('ttl', None)116 ttl = attributes.get('ttl', None)
117 if ttl is not None and ttl > 0:
118 ttl += int(time.time())
102 hide = attributes.get('hide', None)119 hide = attributes.get('hide', None)
120 if hide is not None and hide > 0:
121 hide += int(time.time())
103 for index in xrange(0, len(queue[3])):122 for index in xrange(0, len(queue[3])):
104 if queue[3][index]['id'] == message:123 if queue[3][index]['id'] == message:
105 message = queue[3][index]124 message = queue[3][index]
@@ -156,7 +175,11 @@
156 limit = filters.get('limit', None)175 limit = filters.get('limit', None)
157 match_hidden = filters.get('match_hidden', False)176 match_hidden = filters.get('match_hidden', False)
158 ttl = attributes.get('ttl', None)177 ttl = attributes.get('ttl', None)
178 if ttl is not None and ttl > 0:
179 ttl += int(time.time())
159 hide = attributes.get('hide', None)180 hide = attributes.get('hide', None)
181 if hide is not None and hide > 0:
182 hide += int(time.time())
160 while index < total:183 while index < total:
161 message = queue[3][index]184 message = queue[3][index]
162 if not match_hidden and message['hide'] != 0:185 if not match_hidden and message['hide'] != 0:
@@ -173,7 +196,14 @@
173 total -= 1196 total -= 1
174 else:197 else:
175 index += 1198 index += 1
176 yield message199 relative_ttl = message['ttl']
200 if relative_ttl > 0:
201 relative_ttl -= int(time.time())
202 relative_hide = message['hide']
203 if relative_hide > 0:
204 relative_hide -= int(time.time())
205 yield dict(id=message['id'], ttl=relative_ttl, hide=relative_hide,
206 body=message['body'])
177 if limit:207 if limit:
178 limit -= 1208 limit -= 1
179 if limit == 0:209 if limit == 0:
180210
=== modified file 'burrow/backend/sqlite.py'
--- burrow/backend/sqlite.py 2011-04-22 02:18:26 +0000
+++ burrow/backend/sqlite.py 2011-04-24 22:51:25 +0000
@@ -126,10 +126,14 @@
126 comma = ''126 comma = ''
127 values = tuple()127 values = tuple()
128 if ttl is not None:128 if ttl is not None:
129 if ttl > 0:
130 ttl += int(time.time())
129 query += '%s ttl=?' % comma131 query += '%s ttl=?' % comma
130 values += (ttl,)132 values += (ttl,)
131 comma = ','133 comma = ','
132 if hide is not None:134 if hide is not None:
135 if hide > 0:
136 hide += int(time.time())
133 query += '%s hide=?' % comma137 query += '%s hide=?' % comma
134 values += (hide,)138 values += (hide,)
135 comma = ','139 comma = ','
@@ -153,7 +157,11 @@
153 (rowid, message)157 (rowid, message)
154 result = self.db.execute(query).fetchall()158 result = self.db.execute(query).fetchall()
155 ttl = attributes.get('ttl', 0)159 ttl = attributes.get('ttl', 0)
160 if ttl > 0:
161 ttl += int(time.time())
156 hide = attributes.get('hide', 0)162 hide = attributes.get('hide', 0)
163 if hide > 0:
164 hide += int(time.time())
157 if len(result) == 0:165 if len(result) == 0:
158 query = "INSERT INTO messages VALUES (?, ?, ?, ?, ?)"166 query = "INSERT INTO messages VALUES (?, ?, ?, ?, ?)"
159 self.db.execute(query, (rowid, message, ttl, hide, body))167 self.db.execute(query, (rowid, message, ttl, hide, body))
@@ -191,7 +199,13 @@
191 if len(result) == 0:199 if len(result) == 0:
192 return None200 return None
193 row = result[0]201 row = result[0]
194 return dict(id=row[0], ttl=row[1], hide=row[2], body=row[3])202 ttl = row[1]
203 if ttl > 0:
204 ttl -= int(time.time())
205 hide = row[2]
206 if hide > 0:
207 hide -= int(time.time())
208 return dict(id=row[0], ttl=ttl, hide=hide, body=row[3])
195209
196 def update_message(self, account, queue, message, attributes):210 def update_message(self, account, queue, message, attributes):
197 rowid = self._get_queue(account, queue)211 rowid = self._get_queue(account, queue)
@@ -205,9 +219,15 @@
205 ttl = attributes.get('ttl', None)219 ttl = attributes.get('ttl', None)
206 hide = attributes.get('hide', None)220 hide = attributes.get('hide', None)
207 if ttl is not None:221 if ttl is not None:
222 message['ttl'] = ttl
223 if ttl > 0:
224 ttl += int(time.time())
208 query += "%s ttl=%d" % (comma, ttl)225 query += "%s ttl=%d" % (comma, ttl)
209 comma = ','226 comma = ','
210 if hide is not None:227 if hide is not None:
228 message['hide'] = hide
229 if hide > 0:
230 hide += int(time.time())
211 query += "%s hide=%d" % (comma, hide)231 query += "%s hide=%d" % (comma, hide)
212 comma = ','232 comma = ','
213 if comma == '':233 if comma == '':
@@ -287,4 +307,10 @@
287 query += " LIMIT %d" % filters['limit']307 query += " LIMIT %d" % filters['limit']
288 result = self.db.execute(query).fetchall()308 result = self.db.execute(query).fetchall()
289 for row in result:309 for row in result:
290 yield dict(id=row[0], ttl=row[1], hide=row[2], body=row[3])310 ttl = row[1]
311 if ttl > 0:
312 ttl -= int(time.time())
313 hide = row[2]
314 if hide > 0:
315 hide -= int(time.time())
316 yield dict(id=row[0], ttl=ttl, hide=hide, body=row[3])
291317
=== modified file 'burrow/frontend/wsgi.py'
--- burrow/frontend/wsgi.py 2011-04-22 02:18:26 +0000
+++ burrow/frontend/wsgi.py 2011-04-24 22:51:25 +0000
@@ -261,15 +261,11 @@
261 ttl = int(req.params['ttl'])261 ttl = int(req.params['ttl'])
262 else:262 else:
263 ttl = default_ttl263 ttl = default_ttl
264 if ttl is not None and ttl > 0:
265 ttl += int(time.time())
266 attributes['ttl'] = ttl264 attributes['ttl'] = ttl
267 if 'hide' in req.params:265 if 'hide' in req.params:
268 hide = int(req.params['hide'])266 hide = int(req.params['hide'])
269 else:267 else:
270 hide = default_hide268 hide = default_hide
271 if hide is not None and hide > 0:
272 hide += int(time.time())
273 attributes['hide'] = hide269 attributes['hide'] = hide
274 return attributes270 return attributes
275271
276272
=== modified file 'test/frontend/test_wsgi.py'
--- test/frontend/test_wsgi.py 2011-04-20 18:21:51 +0000
+++ test/frontend/test_wsgi.py 2011-04-24 22:51:25 +0000
@@ -274,16 +274,9 @@
274 self.assertEquals(len(first), len(second))274 self.assertEquals(len(first), len(second))
275 for x in xrange(0, len(second)):275 for x in xrange(0, len(second)):
276 self.assertEquals(first[x]['id'], second[x]['id'])276 self.assertEquals(first[x]['id'], second[x]['id'])
277 ttl = second[x]['ttl']277 self.assertAlmostEquals(first[x]['ttl'], second[x]['ttl'])
278 if ttl > 0:278 self.assertAlmostEquals(first[x]['hide'], second[x]['hide'])
279 ttl += int(time.time())279 self.assertEquals(first[x]['body'], second[x]['body'])
280 self.assertAlmostEquals(first[x]['ttl'], ttl)
281 hide = second[x]['hide']
282 if hide > 0:
283 hide += int(time.time())
284 self.assertAlmostEquals(first[x]['hide'], hide)
285 body = second[x]['body']
286 self.assertEquals(first[x]['body'], body)
287280
288 def _delete_url(self, url, status=204, **kwargs):281 def _delete_url(self, url, status=204, **kwargs):
289 return self._url('DELETE', url, status=status, **kwargs)282 return self._url('DELETE', url, status=status, **kwargs)

Subscribers

People subscribed via source and target branches