diff --git a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/guru/VMwareGuru.java b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/guru/VMwareGuru.java index ef7479446cf..abc7cdba509 100644 --- a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/guru/VMwareGuru.java +++ b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/guru/VMwareGuru.java @@ -48,6 +48,7 @@ import com.cloud.agent.api.CreatePrivateTemplateFromVolumeCommand; import com.cloud.agent.api.CreateVolumeFromSnapshotCommand; import com.cloud.agent.api.UnregisterNicCommand; import com.cloud.agent.api.storage.CopyVolumeCommand; +import com.cloud.agent.api.storage.CreateEntityDownloadURLCommand; import com.cloud.agent.api.storage.CreateVolumeOVACommand; import com.cloud.agent.api.storage.PrepareOVAPackingCommand; import com.cloud.agent.api.to.DataObjectType; @@ -393,8 +394,20 @@ public class VMwareGuru extends HypervisorGuruBase implements HypervisorGuru, Co } else { needDelegation = true; } + } else if (cmd instanceof CreateEntityDownloadURLCommand) { + DataTO srcData = ((CreateEntityDownloadURLCommand)cmd).getData(); + if ((HypervisorType.VMware == srcData.getHypervisorType())) { + needDelegation = true; + } + if (srcData.getObjectType() == DataObjectType.VOLUME) { + VolumeObjectTO volumeObjectTO = (VolumeObjectTO)srcData; + if (Storage.ImageFormat.OVA == volumeObjectTO.getFormat()) { + needDelegation = true; + } + } } - if(!needDelegation) { + + if (!needDelegation) { return new Pair(Boolean.FALSE, new Long(hostId)); } HostVO host = _hostDao.findById(hostId);