fix: assign mac before arp entry is saved
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
@ -286,22 +286,6 @@ impl LNVpsProvisioner {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
pub async fn assign_available_v4_to_vm(
|
|
||||||
&self,
|
|
||||||
vm: &Vm,
|
|
||||||
v4: &AvailableIp,
|
|
||||||
) -> Result<VmIpAssignment> {
|
|
||||||
let mut assignment = VmIpAssignment {
|
|
||||||
vm_id: vm.id,
|
|
||||||
ip_range_id: v4.range_id,
|
|
||||||
ip: v4.ip.ip().to_string(),
|
|
||||||
..Default::default()
|
|
||||||
};
|
|
||||||
|
|
||||||
self.save_ip_assignment(&mut assignment).await?;
|
|
||||||
Ok(assignment)
|
|
||||||
}
|
|
||||||
|
|
||||||
pub async fn assign_available_v6_to_vm(
|
pub async fn assign_available_v6_to_vm(
|
||||||
&self,
|
&self,
|
||||||
vm: &Vm,
|
vm: &Vm,
|
||||||
@ -342,7 +326,12 @@ impl LNVpsProvisioner {
|
|||||||
let mut assignments = vec![];
|
let mut assignments = vec![];
|
||||||
match ip.ip4 {
|
match ip.ip4 {
|
||||||
Some(v4) => {
|
Some(v4) => {
|
||||||
let mut assignment = self.assign_available_v4_to_vm(&vm, &v4).await?;
|
let mut assignment = VmIpAssignment {
|
||||||
|
vm_id: vm.id,
|
||||||
|
ip_range_id: v4.range_id,
|
||||||
|
ip: v4.ip.ip().to_string(),
|
||||||
|
..Default::default()
|
||||||
|
};
|
||||||
|
|
||||||
//generate mac address from ip assignment
|
//generate mac address from ip assignment
|
||||||
let mac = self.get_mac_for_assignment(&host, &vm, &assignment).await?;
|
let mac = self.get_mac_for_assignment(&host, &vm, &assignment).await?;
|
||||||
@ -350,6 +339,7 @@ impl LNVpsProvisioner {
|
|||||||
assignment.arp_ref = mac.id; // store ref if we got one
|
assignment.arp_ref = mac.id; // store ref if we got one
|
||||||
self.db.update_vm(&vm).await?;
|
self.db.update_vm(&vm).await?;
|
||||||
|
|
||||||
|
self.save_ip_assignment(&mut assignment).await?;
|
||||||
assignments.push(assignment);
|
assignments.push(assignment);
|
||||||
}
|
}
|
||||||
/// TODO: add expected number of IPS per templates
|
/// TODO: add expected number of IPS per templates
|
||||||
|
Reference in New Issue
Block a user