forked from 3wordchant/capsul-flask
add public_ipv4_first_usable_ip, public_ipv4_last_usable_ip
This commit is contained in:
@ -142,14 +142,14 @@ def can_claim_create(payload, host_id) -> (str, str):
|
||||
for vm in vms:
|
||||
claimed_ipv4s[vm['public_ipv4']] = True
|
||||
|
||||
public_ipv4_cidr_block_split = network["public_ipv4_cidr_block"].split("/")
|
||||
if len(public_ipv4_cidr_block_split) != 2:
|
||||
raise ValueError(f"network {network['network_name']} has invalid cidr block {network['public_ipv4_cidr_block']}")
|
||||
|
||||
ipv4_network_first_address_int = int(ipaddress.ip_address(public_ipv4_cidr_block_split[0]))
|
||||
ipv4_network = ipaddress.ip_network(network["public_ipv4_cidr_block"], False)
|
||||
ipv4_first_usable_ip = network["public_ipv4_first_usable_ip"]
|
||||
ipv4_last_usable_ip = network["public_ipv4_last_usable_ip"]
|
||||
|
||||
for ipv4_address in ipv4_network:
|
||||
if int(ipv4_address) > ipv4_network_first_address_int and str(ipv4_address) not in claimed_ipv4s:
|
||||
within_usable_range = ipv4_first_usable_ip <= str(ipv4_address) and str(ipv4_address) <= ipv4_last_usable_ip
|
||||
if within_usable_range and str(ipv4_address) not in claimed_ipv4s:
|
||||
allocated_ipv4_address = str(ipv4_address)
|
||||
break
|
||||
|
||||
|
Reference in New Issue
Block a user