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]);
     }

Reply via email to