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
1=== modified file 'burrow/backend/memory.py'
2--- burrow/backend/memory.py 2011-04-06 02:03:37 +0000
3+++ burrow/backend/memory.py 2011-04-24 22:51:25 +0000
4@@ -57,7 +57,11 @@
5 def create_message(self, account, queue, message, body, attributes={}):
6 account, queue = self.accounts.get_queue(account, queue, True)
7 ttl = attributes.get('ttl', 0)
8+ if ttl > 0:
9+ ttl += int(time.time())
10 hide = attributes.get('hide', 0)
11+ if hide > 0:
12+ hide += int(time.time())
13 for index in xrange(0, len(queue[3])):
14 if queue[3][index]['id'] == message:
15 message = queue[3][index]
16@@ -82,6 +86,10 @@
17 del queue[3][index]
18 if len(queue[3]) == 0:
19 self.accounts.delete_queue(account[0], queue[0])
20+ if message['ttl'] > 0:
21+ message['ttl'] -= int(time.time())
22+ if message['hide'] > 0:
23+ message['hide'] -= int(time.time())
24 return message
25 return None
26
27@@ -91,7 +99,14 @@
28 return None
29 for index in xrange(0, len(queue[3])):
30 if queue[3][index]['id'] == message:
31- return queue[3][index]
32+ ttl = queue[3][index]['ttl']
33+ if ttl > 0:
34+ ttl -= int(time.time())
35+ hide = queue[3][index]['hide']
36+ if hide > 0:
37+ hide -= int(time.time())
38+ return dict(id=message, ttl=ttl, hide=hide,
39+ body=queue[3][index]['body'])
40 return None
41
42 def update_message(self, account, queue, message, attributes={}):
43@@ -99,7 +114,11 @@
44 if queue is None:
45 return None
46 ttl = attributes.get('ttl', None)
47+ if ttl is not None and ttl > 0:
48+ ttl += int(time.time())
49 hide = attributes.get('hide', None)
50+ if hide is not None and hide > 0:
51+ hide += int(time.time())
52 for index in xrange(0, len(queue[3])):
53 if queue[3][index]['id'] == message:
54 message = queue[3][index]
55@@ -156,7 +175,11 @@
56 limit = filters.get('limit', None)
57 match_hidden = filters.get('match_hidden', False)
58 ttl = attributes.get('ttl', None)
59+ if ttl is not None and ttl > 0:
60+ ttl += int(time.time())
61 hide = attributes.get('hide', None)
62+ if hide is not None and hide > 0:
63+ hide += int(time.time())
64 while index < total:
65 message = queue[3][index]
66 if not match_hidden and message['hide'] != 0:
67@@ -173,7 +196,14 @@
68 total -= 1
69 else:
70 index += 1
71- yield message
72+ relative_ttl = message['ttl']
73+ if relative_ttl > 0:
74+ relative_ttl -= int(time.time())
75+ relative_hide = message['hide']
76+ if relative_hide > 0:
77+ relative_hide -= int(time.time())
78+ yield dict(id=message['id'], ttl=relative_ttl, hide=relative_hide,
79+ body=message['body'])
80 if limit:
81 limit -= 1
82 if limit == 0:
83
84=== modified file 'burrow/backend/sqlite.py'
85--- burrow/backend/sqlite.py 2011-04-22 02:18:26 +0000
86+++ burrow/backend/sqlite.py 2011-04-24 22:51:25 +0000
87@@ -126,10 +126,14 @@
88 comma = ''
89 values = tuple()
90 if ttl is not None:
91+ if ttl > 0:
92+ ttl += int(time.time())
93 query += '%s ttl=?' % comma
94 values += (ttl,)
95 comma = ','
96 if hide is not None:
97+ if hide > 0:
98+ hide += int(time.time())
99 query += '%s hide=?' % comma
100 values += (hide,)
101 comma = ','
102@@ -153,7 +157,11 @@
103 (rowid, message)
104 result = self.db.execute(query).fetchall()
105 ttl = attributes.get('ttl', 0)
106+ if ttl > 0:
107+ ttl += int(time.time())
108 hide = attributes.get('hide', 0)
109+ if hide > 0:
110+ hide += int(time.time())
111 if len(result) == 0:
112 query = "INSERT INTO messages VALUES (?, ?, ?, ?, ?)"
113 self.db.execute(query, (rowid, message, ttl, hide, body))
114@@ -191,7 +199,13 @@
115 if len(result) == 0:
116 return None
117 row = result[0]
118- return dict(id=row[0], ttl=row[1], hide=row[2], body=row[3])
119+ ttl = row[1]
120+ if ttl > 0:
121+ ttl -= int(time.time())
122+ hide = row[2]
123+ if hide > 0:
124+ hide -= int(time.time())
125+ return dict(id=row[0], ttl=ttl, hide=hide, body=row[3])
126
127 def update_message(self, account, queue, message, attributes):
128 rowid = self._get_queue(account, queue)
129@@ -205,9 +219,15 @@
130 ttl = attributes.get('ttl', None)
131 hide = attributes.get('hide', None)
132 if ttl is not None:
133+ message['ttl'] = ttl
134+ if ttl > 0:
135+ ttl += int(time.time())
136 query += "%s ttl=%d" % (comma, ttl)
137 comma = ','
138 if hide is not None:
139+ message['hide'] = hide
140+ if hide > 0:
141+ hide += int(time.time())
142 query += "%s hide=%d" % (comma, hide)
143 comma = ','
144 if comma == '':
145@@ -287,4 +307,10 @@
146 query += " LIMIT %d" % filters['limit']
147 result = self.db.execute(query).fetchall()
148 for row in result:
149- yield dict(id=row[0], ttl=row[1], hide=row[2], body=row[3])
150+ ttl = row[1]
151+ if ttl > 0:
152+ ttl -= int(time.time())
153+ hide = row[2]
154+ if hide > 0:
155+ hide -= int(time.time())
156+ yield dict(id=row[0], ttl=ttl, hide=hide, body=row[3])
157
158=== modified file 'burrow/frontend/wsgi.py'
159--- burrow/frontend/wsgi.py 2011-04-22 02:18:26 +0000
160+++ burrow/frontend/wsgi.py 2011-04-24 22:51:25 +0000
161@@ -261,15 +261,11 @@
162 ttl = int(req.params['ttl'])
163 else:
164 ttl = default_ttl
165- if ttl is not None and ttl > 0:
166- ttl += int(time.time())
167 attributes['ttl'] = ttl
168 if 'hide' in req.params:
169 hide = int(req.params['hide'])
170 else:
171 hide = default_hide
172- if hide is not None and hide > 0:
173- hide += int(time.time())
174 attributes['hide'] = hide
175 return attributes
176
177
178=== modified file 'test/frontend/test_wsgi.py'
179--- test/frontend/test_wsgi.py 2011-04-20 18:21:51 +0000
180+++ test/frontend/test_wsgi.py 2011-04-24 22:51:25 +0000
181@@ -274,16 +274,9 @@
182 self.assertEquals(len(first), len(second))
183 for x in xrange(0, len(second)):
184 self.assertEquals(first[x]['id'], second[x]['id'])
185- ttl = second[x]['ttl']
186- if ttl > 0:
187- ttl += int(time.time())
188- self.assertAlmostEquals(first[x]['ttl'], ttl)
189- hide = second[x]['hide']
190- if hide > 0:
191- hide += int(time.time())
192- self.assertAlmostEquals(first[x]['hide'], hide)
193- body = second[x]['body']
194- self.assertEquals(first[x]['body'], body)
195+ self.assertAlmostEquals(first[x]['ttl'], second[x]['ttl'])
196+ self.assertAlmostEquals(first[x]['hide'], second[x]['hide'])
197+ self.assertEquals(first[x]['body'], second[x]['body'])
198
199 def _delete_url(self, url, status=204, **kwargs):
200 return self._url('DELETE', url, status=status, **kwargs)

Subscribers

People subscribed via source and target branches