You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ro...@apache.org on 2020/09/24 05:29:58 UTC
[cloudstack] branch master updated: vmware: while plugging in nics
get existing sorted nic devices (#4336)
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 <ro...@shapeblue.com>
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 <ro...@shapeblue.com>
---
.../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]);
}