remove duplicated Vpc routers in return of listByStateAndNetworkType

This commit is contained in:
Wei Zhou 2013-05-27 21:30:37 +02:00
parent 98a9edfaaf
commit 6fa9527353
1 changed files with 9 additions and 1 deletions

View File

@ -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