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(
|
||||
&self,
|
||||
vm: &Vm,
|
||||
@ -342,7 +326,12 @@ impl LNVpsProvisioner {
|
||||
let mut assignments = vec![];
|
||||
match ip.ip4 {
|
||||
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
|
||||
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
|
||||
self.db.update_vm(&vm).await?;
|
||||
|
||||
self.save_ip_assignment(&mut assignment).await?;
|
||||
assignments.push(assignment);
|
||||
}
|
||||
/// TODO: add expected number of IPS per templates
|
||||
|
Reference in New Issue
Block a user