vmware: while plugging in nics get existing sorted nic devices (#4336)

In large environments, with VR having multiple nics when plugging in
nic, it must get existing nics by sorted device ID otherwise it may
cause incorrect nic plugging/order.

Fixes #4246

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
This commit is contained in:
Rohit Yadav 2020-09-24 10:59:39 +05:30 committed by GitHub
parent d657ef7d5b
commit 4f8b88baea
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 2 deletions

View File

@ -1180,7 +1180,7 @@ public class VmwareResource implements StoragePoolResource, ServerResource, Vmwa
}
// find a usable device number in VMware environment
VirtualDevice[] nicDevices = vmMo.getNicDevices();
VirtualDevice[] nicDevices = vmMo.getSortedNicDevices();
int deviceNumber = -1;
for (VirtualDevice device : nicDevices) {
if (device.getUnitNumber() > deviceNumber)
@ -1380,7 +1380,7 @@ public class VmwareResource implements StoragePoolResource, ServerResource, Vmwa
int nicIndex = allocPublicNicIndex(vmMo);
try {
VirtualDevice[] nicDevices = vmMo.getNicDevices();
VirtualDevice[] nicDevices = vmMo.getSortedNicDevices();
VirtualEthernetCard device = (VirtualEthernetCard) nicDevices[nicIndex];

View File

@ -3060,6 +3060,10 @@ public class VirtualMachineMO extends BaseMO {
return nics;
}
public VirtualDevice[] getSortedNicDevices() throws Exception {
return getNicDevices(true).toArray(new VirtualDevice[0]);
}
public VirtualDevice[] getNicDevices() throws Exception {
return getNicDevices(false).toArray(new VirtualDevice[0]);
}