From a33d8f96019e6f061fecc071273e8ee4fe7a67ce Mon Sep 17 00:00:00 2001 From: Kishan Kavala Date: Thu, 31 Jan 2013 23:25:29 +0530 Subject: [PATCH] Fixed listRegions serach by id, name --- .../command/user/region/ListRegionsCmd.java | 2 +- .../cloudstack/region/RegionManagerImpl.java | 17 ++++++++++++++++- .../cloudstack/region/dao/RegionDao.java | 3 --- .../cloudstack/region/dao/RegionDaoImpl.java | 18 +----------------- 4 files changed, 18 insertions(+), 22 deletions(-) diff --git a/api/src/org/apache/cloudstack/api/command/user/region/ListRegionsCmd.java b/api/src/org/apache/cloudstack/api/command/user/region/ListRegionsCmd.java index 4599a197d8b..999eeb0b9c9 100644 --- a/api/src/org/apache/cloudstack/api/command/user/region/ListRegionsCmd.java +++ b/api/src/org/apache/cloudstack/api/command/user/region/ListRegionsCmd.java @@ -38,7 +38,7 @@ public class ListRegionsCmd extends BaseListCmd { //////////////// API parameters ///////////////////// ///////////////////////////////////////////////////// - @Parameter(name=ApiConstants.ID, type=CommandType.LONG, description="List Region by region ID.") + @Parameter(name=ApiConstants.ID, type=CommandType.INTEGER, description="List Region by region ID.") private Integer id; @Parameter(name=ApiConstants.NAME, type=CommandType.STRING, description="List Region by region name.") diff --git a/server/src/org/apache/cloudstack/region/RegionManagerImpl.java b/server/src/org/apache/cloudstack/region/RegionManagerImpl.java index bef23251101..cac5a68ed13 100755 --- a/server/src/org/apache/cloudstack/region/RegionManagerImpl.java +++ b/server/src/org/apache/cloudstack/region/RegionManagerImpl.java @@ -311,7 +311,22 @@ public class RegionManagerImpl implements RegionManager, Manager{ */ @Override public List listRegions(Integer id, String name) { - return _regionDao.listByNameAndId(id, name); + List regions = new ArrayList(); + if(id != null){ + RegionVO region = _regionDao.findById(id); + if(region != null){ + regions.add(region); + } + return regions; + } + if(name != null){ + RegionVO region = _regionDao.findByName(name); + if(region != null){ + regions.add(region); + } + return regions; + } + return _regionDao.listAll(); } /** diff --git a/server/src/org/apache/cloudstack/region/dao/RegionDao.java b/server/src/org/apache/cloudstack/region/dao/RegionDao.java index 1360eac5cd0..91b51d3763e 100644 --- a/server/src/org/apache/cloudstack/region/dao/RegionDao.java +++ b/server/src/org/apache/cloudstack/region/dao/RegionDao.java @@ -16,8 +16,6 @@ // under the License. package org.apache.cloudstack.region.dao; -import java.util.List; - import org.apache.cloudstack.region.RegionVO; import com.cloud.utils.db.GenericDao; @@ -26,5 +24,4 @@ public interface RegionDao extends GenericDao { RegionVO findByName(String name); - List listByNameAndId(Integer id, String name); } diff --git a/server/src/org/apache/cloudstack/region/dao/RegionDaoImpl.java b/server/src/org/apache/cloudstack/region/dao/RegionDaoImpl.java index feb6e624244..40998357ab0 100644 --- a/server/src/org/apache/cloudstack/region/dao/RegionDaoImpl.java +++ b/server/src/org/apache/cloudstack/region/dao/RegionDaoImpl.java @@ -16,14 +16,11 @@ // under the License. package org.apache.cloudstack.region.dao; -import java.util.List; - import javax.ejb.Local; import org.apache.cloudstack.region.RegionVO; import org.apache.log4j.Logger; -import com.cloud.user.UserVO; import com.cloud.utils.db.GenericDaoBase; import com.cloud.utils.db.SearchBuilder; import com.cloud.utils.db.SearchCriteria; @@ -38,25 +35,12 @@ public class RegionDaoImpl extends GenericDaoBase implements NameSearch = createSearchBuilder(); NameSearch.and("name", NameSearch.entity().getName(), SearchCriteria.Op.EQ); NameSearch.done(); - - AllFieldsSearch = createSearchBuilder(); - AllFieldsSearch.and("id", AllFieldsSearch.entity().getId(), SearchCriteria.Op.EQ); - AllFieldsSearch.and("name", AllFieldsSearch.entity().getName(), SearchCriteria.Op.EQ); - AllFieldsSearch.done(); } @Override public RegionVO findByName(String name) { SearchCriteria sc = NameSearch.create(); - sc.setParameters("name", NameSearch); + sc.setParameters("name", name); return findOneBy(sc); } - - @Override - public List listByNameAndId(Integer id, String name) { - SearchCriteria sc = AllFieldsSearch.create(); - sc.setParameters("id", id); - sc.setParameters("name", name); - return listBy(sc); - } }