1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-03-22 18:50:08 +03:00

B #3357: fix alias_id consecutive generation

This commit is contained in:
Alejandro Huertas Herrero 2019-05-23 11:39:40 +02:00 committed by Ruben S. Montero
parent 2bf20ac166
commit 35eaf4bb7f

View File

@ -423,8 +423,8 @@ int VirtualMachineNics::get_network_leases(int vm_id, int uid,
return 0;
}
int VirtualMachineNics::get_auto_network_leases(int vm_id, int uid,
VectorAttribute * nic_default, vector<VectorAttribute*>& sgs,
int VirtualMachineNics::get_auto_network_leases(int vm_id, int uid,
VectorAttribute * nic_default, vector<VectorAttribute*>& sgs,
std::string& error_str)
{
Nebula& nd = Nebula::instance();
@ -510,9 +510,10 @@ int VirtualMachineNics::set_up_attach_nic(int vmid, int uid, int cluster_id,
SecurityGroupPool* sgpool = nd.get_secgrouppool();
// -------------------------------------------------------------------------
// Get the highest NIC_ID
// Get the highest NIC_ID and ALIAS_ID
// -------------------------------------------------------------------------
int max_nic_id = -1;
int max_nic_id = -1;
int max_alias_id = -1;
for(nic_iterator it = begin(); it != end() ; ++it)
{
@ -522,6 +523,18 @@ int VirtualMachineNics::set_up_attach_nic(int vmid, int uid, int cluster_id,
{
max_nic_id = nic_id;
}
if ( (*it)->is_alias() )
{
int alias_id;
(*it)->vector_value("ALIAS_ID", alias_id);
if ( alias_id > max_alias_id )
{
max_alias_id = alias_id;
}
}
}
VirtualMachineNic * nic = new VirtualMachineNic(vnic, max_nic_id + 1);
@ -551,9 +564,7 @@ int VirtualMachineNics::set_up_attach_nic(int vmid, int uid, int cluster_id,
}
else
{
one_util::split_unique(alias_ids, ',', a_ids);
alias_id = *(a_ids.rbegin()) + 1;
alias_id = max_alias_id + 1;
alias_ids += ",";
}