Revision cc62d2ab snf-pithos-backend/pithos/backends/modular.py
b/snf-pithos-backend/pithos/backends/modular.py | ||
---|---|---|
228 | 228 |
self.serials = [] |
229 | 229 |
self.messages = [] |
230 | 230 |
|
231 |
def pre_exec(self): |
|
232 |
self.wrapper.execute() |
|
233 |
|
|
234 |
def post_exec(self, success_status=True): |
|
235 |
if success_status: |
|
236 |
# send messages produced |
|
237 |
for m in self.messages: |
|
238 |
self.queue.send(*m) |
|
239 |
|
|
240 |
# register serials |
|
241 |
if self.serials: |
|
242 |
self.commission_serials.insert_many( |
|
243 |
self.serials) |
|
244 |
|
|
245 |
# commit to ensure that the serials are registered |
|
246 |
# even if resolve commission fails |
|
247 |
self.wrapper.commit() |
|
248 |
|
|
249 |
# start new transaction |
|
250 |
self.wrapper.execute() |
|
251 |
|
|
252 |
r = self.astakosclient.resolve_commissions( |
|
253 |
token=self.service_token, |
|
254 |
accept_serials=self.serials, |
|
255 |
reject_serials=[]) |
|
256 |
self.commission_serials.delete_many( |
|
257 |
r['accepted']) |
|
258 |
|
|
259 |
self.wrapper.commit() |
|
260 |
else: |
|
261 |
if self.serials: |
|
262 |
self.astakosclient.resolve_commissions( |
|
263 |
token=self.service_token, |
|
264 |
accept_serials=[], |
|
265 |
reject_serials=self.serials) |
|
266 |
self.wrapper.rollback() |
|
267 |
|
|
231 | 268 |
def close(self): |
232 | 269 |
self.wrapper.close() |
233 | 270 |
self.queue.close() |
Also available in: Unified diff