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