From dabedd0848d9edfe585384480bed3b0111bf10ac Mon Sep 17 00:00:00 2001 From: Min Chen Date: Mon, 15 Jul 2013 17:36:01 -0700 Subject: [PATCH] CLOUDSTACK-2595: [Automation] Failed download default template for second zone. Actually it is a listTemplate issue. --- server/src/com/cloud/api/query/QueryManagerImpl.java | 2 +- server/src/com/cloud/api/query/ViewResponseHelper.java | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/server/src/com/cloud/api/query/QueryManagerImpl.java b/server/src/com/cloud/api/query/QueryManagerImpl.java index 90a3b6f3bb3..462a2761b31 100644 --- a/server/src/com/cloud/api/query/QueryManagerImpl.java +++ b/server/src/com/cloud/api/query/QueryManagerImpl.java @@ -2694,7 +2694,7 @@ public class QueryManagerImpl extends ManagerBase implements QueryService { SearchBuilder sb = _templateJoinDao.createSearchBuilder(); sb.select(null, Func.DISTINCT, sb.entity().getTempZonePair()); // select distinct (templateId, zoneId) pair - SearchCriteria sc = _templateJoinDao.createSearchCriteria(); + SearchCriteria sc = sb.create(); // verify templateId parameter and specially handle it if (templateId != null) { diff --git a/server/src/com/cloud/api/query/ViewResponseHelper.java b/server/src/com/cloud/api/query/ViewResponseHelper.java index b98cea3f778..59722297d6d 100644 --- a/server/src/com/cloud/api/query/ViewResponseHelper.java +++ b/server/src/com/cloud/api/query/ViewResponseHelper.java @@ -366,9 +366,9 @@ public class ViewResponseHelper { } public static List createTemplateResponse(TemplateJoinVO... templates) { - Hashtable vrDataList = new Hashtable(); + Hashtable vrDataList = new Hashtable(); for (TemplateJoinVO vr : templates) { - TemplateResponse vrData = vrDataList.get(vr.getId()); + TemplateResponse vrData = vrDataList.get(vr.getTempZonePair()); if ( vrData == null ){ // first time encountering this volume vrData = ApiDBUtils.newTemplateResponse(vr); @@ -377,7 +377,7 @@ public class ViewResponseHelper { // update tags vrData = ApiDBUtils.fillTemplateDetails(vrData, vr); } - vrDataList.put(vr.getId(), vrData); + vrDataList.put(vr.getTempZonePair(), vrData); } return new ArrayList(vrDataList.values()); }