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");