fix: assign IPS

This commit is contained in:
kieran 2024-11-27 15:20:00 +00:00
parent 171799ad37
commit 1cc4d40082
No known key found for this signature in database
GPG Key ID: DE71CEB3925BE941

View File

@ -224,7 +224,7 @@ impl Provisioner for LNVpsProvisioner {
let ip_ranges = self.db.list_ip_range().await?;
let ip_ranges: Vec<IpRange> = ip_ranges
.into_iter()
.filter(|i| i.region_id == vm.template.as_ref().unwrap().region_id)
.filter(|i| i.region_id == vm.template.as_ref().unwrap().region_id && i.enabled)
.collect();
if ip_ranges.is_empty() {
@ -234,7 +234,8 @@ impl Provisioner for LNVpsProvisioner {
let mut ret = vec![];
// Try all ranges
// TODO: pick round-robin ranges
for range in ip_ranges {
// TODO: pick one of each type
'ranges: for range in ip_ranges {
let range_cidr: IpNetwork = range.cidr.parse()?;
let ips = self.db.list_vm_ip_assignments_in_range(range.id).await?;
let ips: HashSet<IpAddr> = ips.iter().map_while(|i| i.ip.parse().ok()).collect();
@ -258,7 +259,7 @@ impl Provisioner for LNVpsProvisioner {
assignment.id = id;
ret.push(assignment);
break;
break 'ranges;
}
}
}