This is an automated email from the ASF dual-hosted git repository.
rohit pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/master by this push:
new 4f8b88b vmware: while plugging in nics get existing sorted nic
devices (#4336)
4f8b88b is described below
commit 4f8b88baea2a175760510d00ed8c1fe2bc652444
Author: Rohit Yadav <[email protected]>
AuthorDate: Thu Sep 24 10:59:39 2020 +0530
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 <[email protected]>
---
.../java/com/cloud/hypervisor/vmware/resource/VmwareResource.java | 4 ++--
.../main/java/com/cloud/hypervisor/vmware/mo/VirtualMachineMO.java | 4 ++++
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git
a/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java
b/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java
index c79c023..86e06b6 100644
---
a/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java
+++
b/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java
@@ -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];
diff --git
a/vmware-base/src/main/java/com/cloud/hypervisor/vmware/mo/VirtualMachineMO.java
b/vmware-base/src/main/java/com/cloud/hypervisor/vmware/mo/VirtualMachineMO.java
index 0e70799..f417e4e 100644
---
a/vmware-base/src/main/java/com/cloud/hypervisor/vmware/mo/VirtualMachineMO.java
+++
b/vmware-base/src/main/java/com/cloud/hypervisor/vmware/mo/VirtualMachineMO.java
@@ -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]);
}