This is an automated email from the ASF dual-hosted git repository.
rohit pushed a commit to branch 4.17
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/4.17 by this push:
new 770df60bbef vmware,cks: fix attachiso failure with vmware drs (#6625)
770df60bbef is described below
commit 770df60bbefe3617a7c9a5aeadadc606025f01b6
Author: Abhishek Kumar <[email protected]>
AuthorDate: Tue Aug 16 16:17:13 2022 +0530
vmware,cks: fix attachiso failure with vmware drs (#6625)
Fixes #4314
Failure in attaching k8s ISO is seen when VMware DRS is enabled. Log
reported VM is not found. This fix tries to find VM on peer hosts when the VM
is not found on the given host.
Signed-off-by: Abhishek Kumar <[email protected]>
---
.../com/cloud/hypervisor/vmware/resource/VmwareResource.java | 2 +-
.../com/cloud/storage/resource/VmwareStorageProcessor.java | 2 +-
.../com/cloud/hypervisor/vmware/mo/HypervisorHostHelper.java | 11 +++++++++++
3 files changed, 13 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 f224601dfc4..e831f6228e0 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
@@ -5253,7 +5253,7 @@ public class VmwareResource extends ServerResourceBase
implements StoragePoolRes
protected AttachIsoAnswer execute(AttachIsoCommand cmd) {
try {
VmwareHypervisorHost hyperHost = getHyperHost(getServiceContext());
- VirtualMachineMO vmMo =
hyperHost.findVmOnHyperHost(cmd.getVmName());
+ VirtualMachineMO vmMo =
HypervisorHostHelper.findVmOnHypervisorHostOrPeer(hyperHost, cmd.getVmName());
if (vmMo == null) {
String msg = "Unable to find VM in vSphere to execute
AttachIsoCommand, vmName: " + cmd.getVmName();
s_logger.error(msg);
diff --git
a/plugins/hypervisors/vmware/src/main/java/com/cloud/storage/resource/VmwareStorageProcessor.java
b/plugins/hypervisors/vmware/src/main/java/com/cloud/storage/resource/VmwareStorageProcessor.java
index d2f7fc88a3b..bdb8eca20ed 100644
---
a/plugins/hypervisors/vmware/src/main/java/com/cloud/storage/resource/VmwareStorageProcessor.java
+++
b/plugins/hypervisors/vmware/src/main/java/com/cloud/storage/resource/VmwareStorageProcessor.java
@@ -2341,7 +2341,7 @@ public class VmwareStorageProcessor implements
StorageProcessor {
try {
VmwareContext context = hostService.getServiceContext(null);
VmwareHypervisorHost hyperHost = hostService.getHyperHost(context,
null);
- VirtualMachineMO vmMo = hyperHost.findVmOnHyperHost(vmName);
+ VirtualMachineMO vmMo =
HypervisorHostHelper.findVmOnHypervisorHostOrPeer(hyperHost, vmName);
if (vmMo == null) {
String msg = "Unable to find VM in vSphere to execute
AttachIsoCommand, vmName: " + vmName;
s_logger.error(msg);
diff --git
a/vmware-base/src/main/java/com/cloud/hypervisor/vmware/mo/HypervisorHostHelper.java
b/vmware-base/src/main/java/com/cloud/hypervisor/vmware/mo/HypervisorHostHelper.java
index 7271725e8f4..4d3a725efa3 100644
---
a/vmware-base/src/main/java/com/cloud/hypervisor/vmware/mo/HypervisorHostHelper.java
+++
b/vmware-base/src/main/java/com/cloud/hypervisor/vmware/mo/HypervisorHostHelper.java
@@ -2340,4 +2340,15 @@ public class HypervisorHostHelper {
}
return hardwareVersion;
}
+
+ public static VirtualMachineMO
findVmOnHypervisorHostOrPeer(VmwareHypervisorHost hypervisorHost, String
vmName) throws Exception {
+ VirtualMachineMO vmMo = hypervisorHost.findVmOnHyperHost(vmName);
+ if (vmMo == null) {
+ if (s_logger.isDebugEnabled()) {
+ s_logger.debug(String.format("Unable to find the VM on host
%s, try within datacenter", hypervisorHost.getHyperHostName()));
+ }
+ vmMo = hypervisorHost.findVmOnPeerHyperHost(vmName);
+ }
+ return vmMo;
+ }
}