Revision 3b2984dc snf-cyclades-app/synnefo/db/pools/__init__.py

b/snf-cyclades-app/synnefo/db/pools/__init__.py
78 78
        """Return a value to the pool."""
79 79
        if value is None:
80 80
            raise ValueError
81
        if not self.contains(value):
82
            raise InvalidValue("%s does not belong to pool." % value)
81 83
        index = self.value_to_index(value)
82 84
        self._release(index, external)
83 85

  
84 86
    def reserve(self, value, external=False):
85 87
        """Reserve a value."""
88
        if not self.contains(value):
89
            raise InvalidValue("%s does not belong to pool." % value)
86 90
        index = self.value_to_index(value)
87 91
        self._reserve(index, external)
88 92
        return True
......
114 118
        else:
115 119
            self.available[index] = AVAILABLE
116 120

  
117
    def contains(self, value):
118
        index = self.value_to_index(value)
121
    def contains(self, value, index=False):
122
        if index is False:
123
            index = self.value_to_index(value)
119 124
        return index >= 0 and index < self.pool_size
120 125

  
121 126
    def count_available(self):
......
131 136
        return self.pool_size - self.count_reserved()
132 137

  
133 138
    def is_available(self, value, index=False):
139
        if not self.contains(value, index=index):
140
            raise InvalidValue("%s does not belong to pool." % value)
134 141
        if not index:
135 142
            idx = self.value_to_index(value)
136 143
        else:
......
138 145
        return self.pool[idx] == AVAILABLE
139 146

  
140 147
    def is_reserved(self, value, index=False):
148
        if not self.contains(value, index=index):
149
            raise InvalidValue("%s does not belong to pool." % value)
141 150
        if not index:
142 151
            idx = self.value_to_index(value)
143 152
        else:

Also available in: Unified diff