Revision e59cda53
b/snf-cyclades-app/synnefo/db/models.py | ||
---|---|---|
547 | 547 |
raise pools.InvalidValue("Network %s does not have an IP pool that" |
548 | 548 |
" contains address %s" % (self, address)) |
549 | 549 |
|
550 |
def release_address(self, address, external=True):
|
|
550 |
def release_address(self, address, external=False):
|
|
551 | 551 |
for ip_pool in self.get_ip_pools(): |
552 | 552 |
if ip_pool.contains(address): |
553 |
ip_pool.release(address, external=external)
|
|
553 |
ip_pool.put(address, external=external)
|
|
554 | 554 |
ip_pool.save() |
555 | 555 |
return |
556 | 556 |
raise pools.InvalidValue("Network %s does not have an IP pool that" |
b/snf-cyclades-app/synnefo/db/pools/__init__.py | ||
---|---|---|
287 | 287 |
def index_to_value(self, index): |
288 | 288 |
return str(self.net[index + int(self.offset)]) |
289 | 289 |
|
290 |
def contains(self, address): |
|
291 |
addr = ipaddr.IPAddress(address) |
|
292 |
return addr in self.net and super(IPPool, self).contains(address) |
|
290 |
def contains(self, address, index=False): |
|
291 |
if index is False: |
|
292 |
addr = ipaddr.IPAddress(address) |
|
293 |
if addr not in self.net: |
|
294 |
return False |
|
295 |
return super(IPPool, self).contains(address, index=False) |
|
293 | 296 |
|
294 | 297 |
def return_start(self): |
295 | 298 |
return str(ipaddr.IPAddress(self.base) + self.offset) |
Also available in: Unified diff