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

Reply via email to