This is an automated email from the ASF dual-hosted git repository.

rohit pushed a commit to branch 4.13
in repository https://gitbox.apache.org/repos/asf/cloudstack.git


The following commit(s) were added to refs/heads/4.13 by this push:
     new bd7d41b  server: fix VM with ISO attached migration issue (#3935)
bd7d41b is described below

commit bd7d41bf6d8197dc739663c2287f40508566d1f5
Author: Nicolas Vazquez <[email protected]>
AuthorDate: Fri Mar 6 05:02:19 2020 -0300

    server: fix VM with ISO attached migration issue (#3935)
    
    As previously described by PR #3929:
    If vm has attached ISO, the migration fails with error message 
"org.libvirt.LibvirtException: Cannot access storage file 
/mnt/b33e5a1d-e4ea-3465-b6ac-c98dc8ff8af0/207-2-cc5fd717-2d57-3bb3-bcf6-2c930268db6c.iso"
---
 .../org/apache/cloudstack/storage/image/TemplateDataFactoryImpl.java  | 2 +-
 server/src/main/java/com/cloud/template/TemplateManagerImpl.java      | 4 +---
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git 
a/engine/storage/image/src/main/java/org/apache/cloudstack/storage/image/TemplateDataFactoryImpl.java
 
b/engine/storage/image/src/main/java/org/apache/cloudstack/storage/image/TemplateDataFactoryImpl.java
index afce5d2..8343a74 100644
--- 
a/engine/storage/image/src/main/java/org/apache/cloudstack/storage/image/TemplateDataFactoryImpl.java
+++ 
b/engine/storage/image/src/main/java/org/apache/cloudstack/storage/image/TemplateDataFactoryImpl.java
@@ -68,7 +68,7 @@ public class TemplateDataFactoryImpl implements 
TemplateDataFactory {
     @Override
     public TemplateInfo getTemplate(long templateId, DataStore store) {
         VMTemplateVO templ = imageDataDao.findById(templateId);
-        if (store == null) {
+        if (store == null && !templ.isDirectDownload()) {
             TemplateObject tmpl = TemplateObject.getTemplate(templ, null);
             return tmpl;
         }
diff --git a/server/src/main/java/com/cloud/template/TemplateManagerImpl.java 
b/server/src/main/java/com/cloud/template/TemplateManagerImpl.java
index 93905fc..749f272 100755
--- a/server/src/main/java/com/cloud/template/TemplateManagerImpl.java
+++ b/server/src/main/java/com/cloud/template/TemplateManagerImpl.java
@@ -584,10 +584,8 @@ public class TemplateManagerImpl extends ManagerBase 
implements TemplateManager,
                     }
                     poolId = storagePool.getId();
                 }
-                template = prepareIso(vm.getIsoId(), vm.getDataCenterId(), 
dest.getHost().getId(), poolId);
-            } else {
-                template = _tmplFactory.getTemplate(vm.getIsoId(), 
DataStoreRole.Primary, dest.getDataCenter().getId());
             }
+            template = prepareIso(vm.getIsoId(), vm.getDataCenterId(), 
dest.getHost().getId(), poolId);
 
             if (template == null){
                 s_logger.error("Failed to prepare ISO on secondary or cache 
storage");

Reply via email to