You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by mc...@apache.org on 2013/06/22 01:10:48 UTC

git commit: updated refs/heads/master to 64c5266

Updated Branches:
  refs/heads/master 22232f2ba -> 64c5266ec


CLOUDSTACK-3120: ListTemplates didn't return Baremetal templates after
storage refactor.


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/64c5266e
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/64c5266e
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/64c5266e

Branch: refs/heads/master
Commit: 64c5266ec5ab197ffa81de4476d47ce508cde63d
Parents: 22232f2
Author: Min Chen <mi...@citrix.com>
Authored: Fri Jun 21 16:10:20 2013 -0700
Committer: Min Chen <mi...@citrix.com>
Committed: Fri Jun 21 16:10:39 2013 -0700

----------------------------------------------------------------------
 server/src/com/cloud/api/query/QueryManagerImpl.java      | 10 +++++++++-
 .../src/com/cloud/api/query/dao/TemplateJoinDaoImpl.java  |  9 ++++++++-
 2 files changed, 17 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/64c5266e/server/src/com/cloud/api/query/QueryManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/query/QueryManagerImpl.java b/server/src/com/cloud/api/query/QueryManagerImpl.java
index c249880..9a80082 100644
--- a/server/src/com/cloud/api/query/QueryManagerImpl.java
+++ b/server/src/com/cloud/api/query/QueryManagerImpl.java
@@ -133,6 +133,7 @@ import com.cloud.server.TaggedResourceService;
 import com.cloud.service.ServiceOfferingVO;
 import com.cloud.service.dao.ServiceOfferingDao;
 import com.cloud.storage.Storage.ImageFormat;
+import com.cloud.storage.Storage.TemplateType;
 import com.cloud.storage.dao.VMTemplateDao;
 import com.cloud.storage.dao.VolumeDetailsDao;
 import com.cloud.template.VirtualMachineTemplate.TemplateFilter;
@@ -2834,7 +2835,14 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
             }
 
             if (onlyReady) {
-                sc.addAnd("state", SearchCriteria.Op.EQ, TemplateState.Ready);
+                SearchCriteria<TemplateJoinVO> readySc = _templateJoinDao.createSearchCriteria();
+                readySc.addOr("state", SearchCriteria.Op.EQ, TemplateState.Ready);
+                readySc.addOr("format", SearchCriteria.Op.EQ, ImageFormat.BAREMETAL);
+                SearchCriteria<TemplateJoinVO> isoPerhostSc = _templateJoinDao.createSearchCriteria();
+                isoPerhostSc.addAnd("format", SearchCriteria.Op.EQ, ImageFormat.ISO);
+                isoPerhostSc.addAnd("templateType", SearchCriteria.Op.EQ, TemplateType.PERHOST);
+                readySc.addOr("templateType", SearchCriteria.Op.SC, isoPerhostSc);
+                sc.addAnd("state", SearchCriteria.Op.SC, readySc);
             }
 
             if (zoneId != null) {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/64c5266e/server/src/com/cloud/api/query/dao/TemplateJoinDaoImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/query/dao/TemplateJoinDaoImpl.java b/server/src/com/cloud/api/query/dao/TemplateJoinDaoImpl.java
index 0793093..d4c9560 100644
--- a/server/src/com/cloud/api/query/dao/TemplateJoinDaoImpl.java
+++ b/server/src/com/cloud/api/query/dao/TemplateJoinDaoImpl.java
@@ -37,6 +37,7 @@ import com.cloud.api.ApiResponseHelper;
 import com.cloud.api.query.vo.ResourceTagJoinVO;
 import com.cloud.api.query.vo.TemplateJoinVO;
 import com.cloud.configuration.dao.ConfigurationDao;
+import com.cloud.storage.Storage;
 import com.cloud.storage.VMTemplateHostVO;
 import com.cloud.storage.Storage.TemplateType;
 import com.cloud.storage.VMTemplateStorageResourceAssoc.Status;
@@ -104,7 +105,13 @@ public class TemplateJoinDaoImpl extends GenericDaoBase<TemplateJoinVO, Long> im
         templateResponse.setDisplayText(template.getDisplayText());
         templateResponse.setPublic(template.isPublicTemplate());
         templateResponse.setCreated(template.getCreatedOnStore());
-        templateResponse.setReady(template.getState() == ObjectInDataStoreStateMachine.State.Ready);
+        if ( template.getFormat() == Storage.ImageFormat.BAREMETAL ){
+            // for baremetal template, we didn't download, but is ready to use.
+            templateResponse.setReady(true);
+        }
+        else{
+            templateResponse.setReady(template.getState() == ObjectInDataStoreStateMachine.State.Ready);
+        }
         templateResponse.setFeatured(template.isFeatured());
         templateResponse.setExtractable(template.isExtractable() && !(template.getTemplateType() == TemplateType.SYSTEM));
         templateResponse.setPasswordEnabled(template.isEnablePassword());