diff --git a/server/src/com/cloud/storage/download/DownloadMonitorImpl.java b/server/src/com/cloud/storage/download/DownloadMonitorImpl.java index 734e9406232..b19e4ecaa5b 100755 --- a/server/src/com/cloud/storage/download/DownloadMonitorImpl.java +++ b/server/src/com/cloud/storage/download/DownloadMonitorImpl.java @@ -92,6 +92,8 @@ public class DownloadMonitorImpl implements DownloadMonitor { @Inject VMTemplatePoolDao _vmTemplatePoolDao; @Inject + VMTemplateZoneDao _vmTemplateZoneDao; + @Inject StoragePoolHostDao _poolHostDao; @Inject SecondaryStorageVmDao _secStorageVmDao; @@ -430,6 +432,9 @@ public class DownloadMonitorImpl implements DownloadMonitor { for (VMTemplateVO template: toBeDownloaded) { VMTemplateHostVO tmpltHost = _vmTemplateHostDao.findByHostTemplate(sshost.getId(), template.getId()); if (tmpltHost == null || tmpltHost.getDownloadState() != Status.DOWNLOADED) { + if (_vmTemplateZoneDao.findByZoneTemplate(sshost.getDataCenterId(), template.getId()) == null) { + _templateDao.addTemplateToZone(template, sshost.getDataCenterId()); + } downloadTemplateToStorage(template, sshost); } }