Exemple #1
0
    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
Exemple #2
0
    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
Exemple #3
0
    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
Exemple #4
0
    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