diff --git a/server/src/com/cloud/storage/download/DownloadMonitorImpl.java b/server/src/com/cloud/storage/download/DownloadMonitorImpl.java index 8e3a20afcf4..40e661c473c 100755 --- a/server/src/com/cloud/storage/download/DownloadMonitorImpl.java +++ b/server/src/com/cloud/storage/download/DownloadMonitorImpl.java @@ -63,6 +63,7 @@ import com.cloud.storage.dao.StoragePoolHostDao; import com.cloud.storage.dao.VMTemplateDao; import com.cloud.storage.dao.VMTemplateHostDao; import com.cloud.storage.dao.VMTemplatePoolDao; +import com.cloud.storage.dao.VMTemplateZoneDao; import com.cloud.storage.template.TemplateConstants; import com.cloud.storage.template.TemplateInfo; import com.cloud.user.Account; @@ -88,6 +89,8 @@ public class DownloadMonitorImpl implements DownloadMonitor { @Inject VMTemplatePoolDao _vmTemplatePoolDao; @Inject + VMTemplateZoneDao _vmTemplateZoneDao; + @Inject StoragePoolHostDao _poolHostDao; @Inject SecondaryStorageVmDao _secStorageVmDao; @@ -426,6 +429,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); } }