Revision e311d555

b/astakosclient/astakosclient/tests.py
417 417
                "resource": "cyclades.ram",
418 418
                "quantity": 520000000},
419 419
            "name": "NoCapacityError",
420
            "available": 420000000}}}
420
            "limit": 600000000,
421
            "usage": 180000000}}}
421 422

  
422 423
pending_commissions = [100, 200]
423 424

  
b/docs/quota-api-guide.rst
222 222
                  "quantity": 1
223 223
              },
224 224
              "name": "NoCapacityError",
225
              "available": 0
225
              "limit": 2,
226
              "usage": 2
226 227
          }
227 228
      }
228 229
  }
b/snf-astakos-app/astakos/quotaholder/commission.py
91 91
            provision = cls.provision(holding, quantity, importing=True)
92 92
            raise NoCapacityError(m,
93 93
                                  provision=provision,
94
                                  available=limit-imported_max)
94
                                  limit=limit,
95
                                  usage=imported_max)
95 96

  
96 97
        holding.imported_max = new_imported_max
97 98
        holding.save()
b/snf-astakos-app/astakos/quotaholder/exception.py
51 51
class CommissionException(QuotaholderError):
52 52
    data = {}
53 53

  
54
    def add_data(self, kwargs, key):
55
        value = kwargs.pop(key, None)
56
        if value is not None:
57
            self.data[key] = value
58

  
54 59
    def __init__(self, *args, **kwargs):
55 60
        self.data['name'] = self.__class__.__name__
56

  
57
        provision = kwargs.pop('provision', None)
58
        if provision is not None:
59
            self.data['provision'] = provision
61
        self.add_data(kwargs, 'provision')
60 62

  
61 63
        QuotaholderError.__init__(self, *args, **kwargs)
62 64

  
63 65

  
64 66
class NoCapacityError(CommissionException):
65 67
    def __init__(self, *args, **kwargs):
66
        available = kwargs.pop('available', None)
67
        if available is not None:
68
            self.data['available'] = available
69

  
68
        self.add_data(kwargs, 'usage')
69
        self.add_data(kwargs, 'limit')
70 70
        CommissionException.__init__(self, *args, **kwargs)
71 71

  
72 72

  
73 73
class NoQuantityError(CommissionException):
74 74
    def __init__(self, *args, **kwargs):
75
        available = kwargs.pop('available', None)
76
        if available is not None:
77
            self.data['available'] = available
78

  
75
        self.add_data(kwargs, 'available')
79 76
        CommissionException.__init__(self, *args, **kwargs)
80 77

  
81 78

  

Also available in: Unified diff