From e49a60c544bd877a1e206b305bb00984f0795738 Mon Sep 17 00:00:00 2001 From: Hugo Trippaers Date: Thu, 16 Jan 2014 12:31:14 +0100 Subject: [PATCH] CLOUDSTACK-5883 Improve error handling to get the real error --- .../vmware/mo/HypervisorHostHelper.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/vmware-base/src/com/cloud/hypervisor/vmware/mo/HypervisorHostHelper.java b/vmware-base/src/com/cloud/hypervisor/vmware/mo/HypervisorHostHelper.java index cd2c3e8746c..3ba27d0e359 100755 --- a/vmware-base/src/com/cloud/hypervisor/vmware/mo/HypervisorHostHelper.java +++ b/vmware-base/src/com/cloud/hypervisor/vmware/mo/HypervisorHostHelper.java @@ -44,6 +44,7 @@ import com.vmware.vim25.HostVirtualSwitch; import com.vmware.vim25.HttpNfcLeaseDeviceUrl; import com.vmware.vim25.HttpNfcLeaseInfo; import com.vmware.vim25.HttpNfcLeaseState; +import com.vmware.vim25.LocalizedMethodFault; import com.vmware.vim25.LongPolicy; import com.vmware.vim25.ManagedObjectReference; import com.vmware.vim25.ObjectContent; @@ -66,6 +67,7 @@ import com.vmware.vim25.VmwareDistributedVirtualSwitchPvlanSpec; import com.vmware.vim25.VmwareDistributedVirtualSwitchVlanIdSpec; import com.vmware.vim25.VmwareDistributedVirtualSwitchVlanSpec; +import com.cloud.exception.CloudException; import com.cloud.hypervisor.vmware.util.VmwareContext; import com.cloud.hypervisor.vmware.util.VmwareHelper; import com.cloud.network.Networks.BroadcastDomainType; @@ -1332,6 +1334,19 @@ public class HypervisorHostHelper { throw new Exception(msg); } + if(!ovfImportResult.getError().isEmpty()) { + for (LocalizedMethodFault fault : ovfImportResult.getError()) { + s_logger.error("createImportSpec error: " + fault.getLocalizedMessage()); + } + throw new CloudException("Failed to create an import spec from " + ovfFilePath + ". Check log for details."); + } + + if (!ovfImportResult.getWarning().isEmpty()) { + for (LocalizedMethodFault fault : ovfImportResult.getError()) { + s_logger.warn("createImportSpec warning: " + fault.getLocalizedMessage()); + } + } + DatacenterMO dcMo = new DatacenterMO(context, host.getHyperHostDatacenter()); ManagedObjectReference morLease = context.getService().importVApp(morRp, ovfImportResult.getImportSpec(), dcMo.getVmFolder(), morHost);