diff --git a/engine/storage/src/org/apache/cloudstack/storage/image/db/ImageStoreDaoImpl.java b/engine/storage/src/org/apache/cloudstack/storage/image/db/ImageStoreDaoImpl.java index 5bcf2f32691..ee0782217b8 100644 --- a/engine/storage/src/org/apache/cloudstack/storage/image/db/ImageStoreDaoImpl.java +++ b/engine/storage/src/org/apache/cloudstack/storage/image/db/ImageStoreDaoImpl.java @@ -24,6 +24,7 @@ import java.util.Map; import javax.naming.ConfigurationException; +import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreRole; import org.apache.cloudstack.engine.subsystem.api.storage.Scope; import org.apache.cloudstack.engine.subsystem.api.storage.ZoneScope; import org.apache.cloudstack.storage.datastore.db.ImageStoreDao; @@ -50,10 +51,12 @@ public class ImageStoreDaoImpl extends GenericDaoBase implem nameSearch = createSearchBuilder(); nameSearch.and("name", nameSearch.entity().getName(), SearchCriteria.Op.EQ); + nameSearch.and("role", nameSearch.entity().getRole(), SearchCriteria.Op.EQ); nameSearch.done(); providerSearch = createSearchBuilder(); providerSearch.and("providerName", providerSearch.entity().getProviderName(), SearchCriteria.Op.EQ); + providerSearch.and("role", providerSearch.entity().getProviderName(), SearchCriteria.Op.EQ); providerSearch.done(); return true; @@ -76,8 +79,11 @@ public class ImageStoreDaoImpl extends GenericDaoBase implem @Override public List findByScope(ZoneScope scope) { SearchCriteria sc = createSearchCriteria(); - sc.addOr("scope", SearchCriteria.Op.EQ, ScopeType.REGION); - sc.addOr("dcId", SearchCriteria.Op.EQ, scope.getScopeId()); + sc.addAnd("role", SearchCriteria.Op.EQ, DataStoreRole.Image); + SearchCriteria scc = createSearchCriteria(); + scc.addOr("scope", SearchCriteria.Op.EQ, ScopeType.REGION); + scc.addOr("dcId", SearchCriteria.Op.EQ, scope.getScopeId()); + sc.addAnd("scope", SearchCriteria.Op.SC, scc); return listBy(sc); } diff --git a/server/src/com/cloud/storage/download/DownloadListener.java b/server/src/com/cloud/storage/download/DownloadListener.java index 2741af1d898..8e979abdfd9 100755 --- a/server/src/com/cloud/storage/download/DownloadListener.java +++ b/server/src/com/cloud/storage/download/DownloadListener.java @@ -474,17 +474,20 @@ public class DownloadListener implements Listener { @Override public void processConnect(HostVO agent, StartupCommand cmd, boolean forRebalance) throws ConnectionException { if (cmd instanceof StartupRoutingCommand) { + downloadMonitor.handleSysTemplateDownload(agent); - } else if ( cmd instanceof StartupStorageCommand) { + } + /* This can be removed since + else if ( cmd instanceof StartupStorageCommand) { StartupStorageCommand storage = (StartupStorageCommand)cmd; if( storage.getResourceType() == Storage.StorageResourceType.SECONDARY_STORAGE || storage.getResourceType() == Storage.StorageResourceType.LOCAL_SECONDARY_STORAGE ) { downloadMonitor.addSystemVMTemplatesToHost(agent, storage.getTemplateInfo()); - // DO we need to do sync here since we have been doing sync in StartupSecondaryStorageCommand? - // downloadMonitor.handleTemplateSync(agent); + downloadMonitor.handleTemplateSync(agent); downloadMonitor.handleVolumeSync(agent); } - } else if ( cmd instanceof StartupSecondaryStorageCommand ) { + }*/ + else if ( cmd instanceof StartupSecondaryStorageCommand ) { downloadMonitor.handleSync(agent.getDataCenterId()); } }