remove duplicated Vpc routers in return of listByStateAndNetworkType
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/6fa95273 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/6fa95273 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/6fa95273 Branch: refs/heads/4.0 Commit: 6fa9527353facb90f55950f44ad74e3e2aa19ec9 Parents: 98a9edf Author: Wei Zhou <w.z...@leaseweb.com> Authored: Mon May 27 21:30:37 2013 +0200 Committer: Wei Zhou <w.z...@leaseweb.com> Committed: Mon May 27 21:30:37 2013 +0200 ---------------------------------------------------------------------- .../src/com/cloud/vm/dao/DomainRouterDaoImpl.java | 10 +++++++++- 1 files changed, 9 insertions(+), 1 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6fa95273/server/src/com/cloud/vm/dao/DomainRouterDaoImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/vm/dao/DomainRouterDaoImpl.java b/server/src/com/cloud/vm/dao/DomainRouterDaoImpl.java index 175d3f2..44dcf1a 100755 --- a/server/src/com/cloud/vm/dao/DomainRouterDaoImpl.java +++ b/server/src/com/cloud/vm/dao/DomainRouterDaoImpl.java @@ -16,6 +16,7 @@ // under the License. package com.cloud.vm.dao; +import java.util.ArrayList; import java.util.List; import javax.ejb.Local; @@ -37,6 +38,7 @@ import com.cloud.utils.db.GenericDaoBase; import com.cloud.utils.db.JoinBuilder.JoinType; import com.cloud.utils.db.SearchBuilder; import com.cloud.utils.db.SearchCriteria; +import com.cloud.utils.db.SearchCriteria.Func; import com.cloud.utils.db.SearchCriteria.Op; import com.cloud.utils.db.Transaction; import com.cloud.utils.db.UpdateBuilder; @@ -97,6 +99,7 @@ public class DomainRouterDaoImpl extends GenericDaoBase<DomainRouterVO, Long> im HostUpSearch.done(); StateNetworkTypeSearch = createSearchBuilder(); + StateNetworkTypeSearch.select(null, Func.DISTINCT, StateNetworkTypeSearch.entity().getId()); StateNetworkTypeSearch.and("state", StateNetworkTypeSearch.entity().getState(), Op.EQ); SearchBuilder<RouterNetworkVO> joinRouterNetwork4 = _routerNetworkDao.createSearchBuilder(); joinRouterNetwork4.and("networkId", joinRouterNetwork4.entity().getNetworkId(), Op.EQ); @@ -223,7 +226,12 @@ public class DomainRouterDaoImpl extends GenericDaoBase<DomainRouterVO, Long> im sc.setParameters("state", state); sc.setJoinParameters("networkRouter", "type", type); sc.setJoinParameters("host", "mgmtServerId", mgmtSrvrId); - return listBy(sc); + List<DomainRouterVO> routerIds = listBy(sc); + List<DomainRouterVO> routers = new ArrayList<DomainRouterVO>(); + for (DomainRouterVO router : routerIds) { + routers.add(findById(router.getId())); + } + return routers; } @Override