def next_mac(self): allocatable_address = db_api.pop_allocatable_address( models.AllocatableMac, mac_address_range_id=self.mac_range.id) if allocatable_address is not None: return allocatable_address address = self._next_eligible_address() self.mac_range.update(next_address=address + 1) return address
def next_ip(self): allocatable_address = db_api.pop_allocatable_address( models.AllocatableIp, ip_block_id=self.ip_block.id) if allocatable_address is not None: return allocatable_address ips = netaddr.IPNetwork(self.ip_block.cidr) allocatable_ip_counter = (self.ip_block.allocatable_ip_counter or int(ips[0])) if(allocatable_ip_counter > int(ips[-1])): raise exception.NoMoreAddressesError address = str(netaddr.IPAddress(allocatable_ip_counter)) self.ip_block.update(allocatable_ip_counter=allocatable_ip_counter + 1) return address
def next_ip(self): allocatable_address = db_api.pop_allocatable_address( models.AllocatableIp, ip_block_id=self.ip_block.id) if allocatable_address is not None: return allocatable_address ips = netaddr.IPNetwork(self.ip_block.cidr) allocatable_ip_counter = (self.ip_block.allocatable_ip_counter or int(ips[0])) if (allocatable_ip_counter > int(ips[-1])): raise exception.NoMoreAddressesError address = str(netaddr.IPAddress(allocatable_ip_counter)) self.ip_block.update(allocatable_ip_counter=allocatable_ip_counter + 1) return address