Revision ef0fa70b snf-quotaholder-app/quotaholder_django/quotaholder_app/callpoint.py

b/snf-quotaholder-app/quotaholder_django/quotaholder_app/callpoint.py
49 49
                     now,
50 50
                     db_get_entity, db_get_holding, db_get_policy,
51 51
                     db_get_commission, db_filter_provision, db_get_callserial)
52

  
52
import json
53 53

  
54 54
class QuotaholderDjangoDBCallpoint(Callpoint):
55 55

  
......
510 510
    def add_quota(self, context={}, clientkey=None, serial=None, add_quota=()):
511 511
        rejected = []
512 512
        append = rejected.append
513
        all_pairs = [(q[0], q[1]) for q in add_quota]
513 514

  
514 515
        if serial is not None:
515 516
            if clientkey is None:
516
                all_rejected = [(q[0], q[1]) for q in add_quota]
517
                raise ReturnButFail(all_rejected)
517
                raise ReturnButFail(all_pairs)
518 518
            try:
519 519
                cs = CallSerial.objects.get(serial=serial, clientkey=clientkey)
520
                all_rejected = [(q[0], q[1]) for q in add_quota]
521
                raise ReturnButFail(all_rejected)
520
                raise ReturnButFail(all_pairs)
522 521
            except CallSerial.DoesNotExist:
523 522
                pass
524 523

  
......
571 570
            raise ReturnButFail(rejected)
572 571

  
573 572
        if serial is not None and clientkey is not None:
574
            CallSerial.objects.create(serial=serial, clientkey=clientkey)
573
            data = json.dumps(all_pairs)
574
            CallSerial.objects.create(serial=serial,
575
                                      clientkey=clientkey,
576
                                      data=data)
575 577
        return rejected
576 578

  
577
    def ack_serials(self, context={}, clientkey=None, serials=()):
578
        for serial in serials:
579
            try:
580
                cs = db_get_callserial(clientkey=clientkey, serial=serial,
581
                                       for_update=True)
582
                cs.delete()
583
            except CallSerial.DoesNotExist:
584
                pass
585
        return
579
    def ack_serial(self, context={}, clientkey=None, serial=None,
580
                   fetch_args=False):
581
        result = []
582
        try:
583
            cs = db_get_callserial(clientkey=clientkey,
584
                                   serial=serial,
585
                                   for_update=True)
586
        except CallSerial.DoesNotExist:
587
            return result
588

  
589
        if fetch_args:
590
            result = json.loads(cs.data)
591

  
592
        cs.delete()
593
        return result
586 594

  
587 595
    def issue_commission(self,  context     =   {},
588 596
                                clientkey   =   None,

Also available in: Unified diff