diff --git a/server/src/com/cloud/storage/download/DownloadMonitorImpl.java b/server/src/com/cloud/storage/download/DownloadMonitorImpl.java index 37d1c91a404..be2cbf6061a 100755 --- a/server/src/com/cloud/storage/download/DownloadMonitorImpl.java +++ b/server/src/com/cloud/storage/download/DownloadMonitorImpl.java @@ -527,7 +527,7 @@ public class DownloadMonitorImpl implements DownloadMonitor { return null; } - private List listAllInZone(long dcId){ + private List listAllInZone(long dcId, HostVO ssHost){ List tmplts = _templateDao.listAllInZone(dcId); Iterator iter = tmplts.iterator(); while ( iter.hasNext() ) { @@ -538,8 +538,15 @@ public class DownloadMonitorImpl implements DownloadMonitor { List tmpltHosts = _vmTemplateHostDao.listByZoneTemplate(dcId, tmplt.getId(), false); for ( VMTemplateHostVO tmpltHost : tmpltHosts ) { if ( tmpltHost.getDownloadState() == Status.DOWNLOADED || tmpltHost.getDownloadState() == Status.DOWNLOAD_IN_PROGRESS) { - iter.remove(); - break; + if (ssHost.getType() == Host.Type.LocalSecondaryStorage) { + if (tmpltHost.getHostId() == ssHost.getId()) { + iter.remove(); + break; + } + } else { + iter.remove(); + break; + } } } } @@ -564,7 +571,7 @@ public class DownloadMonitorImpl implements DownloadMonitor { long zoneId = ssHost.getDataCenterId(); Set toBeDownloaded = new HashSet(); - List allTemplates = listAllInZone(ssHost.getDataCenterId()); + List allTemplates = listAllInZone(ssHost.getDataCenterId(), ssHost); List rtngTmplts = _templateDao.listAllSystemVMTemplates(); List defaultBuiltin = _templateDao.listDefaultBuiltinTemplates();