You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ki...@apache.org on 2014/01/10 15:36:55 UTC

[2/2] git commit: updated refs/heads/master to 9486a96

CLOUDSTACK-5852: router search in DomainDouterDao using AllFieldsSearch filters few routers due to router_network_ref join. Created a seperate search to list running routers with filters.

Conflicts:
	engine/schema/src/com/cloud/vm/dao/DomainRouterDao.java


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/9486a965
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/9486a965
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/9486a965

Branch: refs/heads/master
Commit: 9486a9652e99a6ac048be69d37698579da91ef33
Parents: c98ac9a
Author: Kishan Kavala <ki...@cloud.com>
Authored: Fri Jan 10 19:56:50 2014 +0530
Committer: Kishan Kavala <ki...@cloud.com>
Committed: Fri Jan 10 19:58:59 2014 +0530

----------------------------------------------------------------------
 .../src/com/cloud/vm/dao/DomainRouterDao.java   | 10 ++++--
 .../com/cloud/vm/dao/DomainRouterDaoImpl.java   | 38 +++++++++++++++++---
 .../VirtualNetworkApplianceManagerImpl.java     | 10 +++---
 3 files changed, 45 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/9486a965/engine/schema/src/com/cloud/vm/dao/DomainRouterDao.java
----------------------------------------------------------------------
diff --git a/engine/schema/src/com/cloud/vm/dao/DomainRouterDao.java b/engine/schema/src/com/cloud/vm/dao/DomainRouterDao.java
index 02cf68d..e3f75fa 100755
--- a/engine/schema/src/com/cloud/vm/dao/DomainRouterDao.java
+++ b/engine/schema/src/com/cloud/vm/dao/DomainRouterDao.java
@@ -69,7 +69,7 @@ public interface DomainRouterDao extends GenericDao<DomainRouterVO, Long> {
      * @param podId id of the pod.  null if to get all.
      * @return list of DomainRouterVO
      */
-    public List<DomainRouterVO> listByPodId(Long podId);
+    public List<DomainRouterVO> listRunningByPodId(Long podId);
 
     /**
      * list virtual machine routers by pod id.  pass in null to get all
@@ -94,7 +94,7 @@ public interface DomainRouterDao extends GenericDao<DomainRouterVO, Long> {
      * @param id
      * @return
      */
-    public List<DomainRouterVO> listByDomain(Long id);
+    public List<DomainRouterVO> listRunningByDomain(Long id);
 
     List<DomainRouterVO> findBy(long accountId, long dcId, Role role);
 
@@ -147,5 +147,9 @@ public interface DomainRouterDao extends GenericDao<DomainRouterVO, Long> {
      */
     void removeRouterFromGuestNetwork(long routerId, long guestNetworkId);
 
-    List<DomainRouterVO> listByClusterId(Long clusterId);
+    List<DomainRouterVO> listRunningByClusterId(Long clusterId);
+
+    List<DomainRouterVO> listRunningByAccountId(long accountId);
+
+    List<DomainRouterVO> listRunningByDataCenter(long dcId);
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/9486a965/engine/schema/src/com/cloud/vm/dao/DomainRouterDaoImpl.java
----------------------------------------------------------------------
diff --git a/engine/schema/src/com/cloud/vm/dao/DomainRouterDaoImpl.java b/engine/schema/src/com/cloud/vm/dao/DomainRouterDaoImpl.java
index 6bee644..6b62f56 100755
--- a/engine/schema/src/com/cloud/vm/dao/DomainRouterDaoImpl.java
+++ b/engine/schema/src/com/cloud/vm/dao/DomainRouterDaoImpl.java
@@ -54,6 +54,7 @@ import com.cloud.vm.VirtualMachine.State;
 public class DomainRouterDaoImpl extends GenericDaoBase<DomainRouterVO, Long> implements DomainRouterDao {
 
     protected SearchBuilder<DomainRouterVO> AllFieldsSearch;
+    protected SearchBuilder<DomainRouterVO> RunningSearch;
     protected SearchBuilder<DomainRouterVO> IdNetworkIdStatesSearch;
     protected SearchBuilder<DomainRouterVO> HostUpSearch;
     protected SearchBuilder<DomainRouterVO> StateNetworkTypeSearch;
@@ -139,10 +140,19 @@ public class DomainRouterDaoImpl extends GenericDaoBase<DomainRouterVO, Long> im
         OutsidePodSearch.done();
 
         clusterSearch = createSearchBuilder();
+        clusterSearch.and("state", clusterSearch.entity().getState(), Op.EQ);
         SearchBuilder<HostVO> clusterHost = _hostsDao.createSearchBuilder();
         clusterHost.and("clusterId", clusterHost.entity().getClusterId(), Op.EQ);
         clusterSearch.join("host", clusterHost, clusterSearch.entity().getHostId(), clusterHost.entity().getId(), JoinType.INNER);
         clusterSearch.done();
+
+        RunningSearch = createSearchBuilder();
+        RunningSearch.and("dc", RunningSearch.entity().getDataCenterId(), Op.EQ);
+        RunningSearch.and("account", RunningSearch.entity().getAccountId(), Op.EQ);
+        RunningSearch.and("domainId", RunningSearch.entity().getDomainId(), Op.EQ);
+        RunningSearch.and("state", RunningSearch.entity().getState(), Op.EQ);
+        RunningSearch.and("podId", RunningSearch.entity().getPodIdToDeployIn(), Op.EQ);
+        RunningSearch.done();
     }
 
     @Override
@@ -200,15 +210,17 @@ public class DomainRouterDaoImpl extends GenericDaoBase<DomainRouterVO, Long> im
     }
 
     @Override
-    public List<DomainRouterVO> listByPodId(Long podId) {
-        SearchCriteria<DomainRouterVO> sc = AllFieldsSearch.create();
+    public List<DomainRouterVO> listRunningByPodId(Long podId) {
+        SearchCriteria<DomainRouterVO> sc = RunningSearch.create();
+        sc.setParameters("state", State.Running);
         sc.setParameters("podId", podId);
         return listBy(sc);
     }
 
     @Override
-    public List<DomainRouterVO> listByClusterId(Long clusterId) {
+    public List<DomainRouterVO> listRunningByClusterId(Long clusterId) {
         SearchCriteria<DomainRouterVO> sc = clusterSearch.create();
+        sc.setParameters("state", State.Running);
         sc.setJoinParameters("host", "clusterId", clusterId);
         return listBy(sc);
     }
@@ -237,8 +249,9 @@ public class DomainRouterDaoImpl extends GenericDaoBase<DomainRouterVO, Long> im
     }
 
     @Override
-    public List<DomainRouterVO> listByDomain(Long domainId) {
-        SearchCriteria<DomainRouterVO> sc = AllFieldsSearch.create();
+    public List<DomainRouterVO> listRunningByDomain(Long domainId) {
+        SearchCriteria<DomainRouterVO> sc = RunningSearch.create();
+        sc.setParameters("state", State.Running);
         sc.setParameters("domainId", domainId);
         return listBy(sc);
     }
@@ -379,4 +392,19 @@ public class DomainRouterDaoImpl extends GenericDaoBase<DomainRouterVO, Long> im
         return listBy(sc);
     }
 
+    @Override
+    public List<DomainRouterVO> listRunningByAccountId(long accountId) {
+        SearchCriteria<DomainRouterVO> sc = RunningSearch.create();
+        sc.setParameters("state", State.Running);
+        sc.setParameters("account", accountId);
+        return listBy(sc);
+    }
+
+    @Override
+    public List<DomainRouterVO> listRunningByDataCenter(long dcId) {
+        SearchCriteria<DomainRouterVO> sc = RunningSearch.create();
+        sc.setParameters("state", State.Running);
+        sc.setParameters("dc", dcId);
+        return listBy(sc);
+    }
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/9486a965/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
index 5287e6f..d5b8c8c 100755
--- a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
+++ b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
@@ -4116,10 +4116,10 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
                 if(account == null){
                     throw new InvalidParameterValueException("Account :"+accountName+" does not exist in domain: "+domainId);
                 }
-                routers = _routerDao.listBy(account.getId());
+                routers = _routerDao.listRunningByAccountId(account.getId());
             } else {
             //List by domainId, account name not specified
-                routers = _routerDao.listByDomain(domainId);
+                routers = _routerDao.listRunningByDomain(domainId);
             }
             params++;
         }
@@ -4127,19 +4127,19 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
         Long clusterId = cmd.getClusterId();
         if (clusterId != null) {
             params++;
-            routers = _routerDao.listByClusterId(clusterId);
+            routers = _routerDao.listRunningByClusterId(clusterId);
         }
 
         Long podId = cmd.getPodId();
         if (podId != null) {
             params++;
-            routers = _routerDao.listByPodId(podId);
+            routers = _routerDao.listRunningByPodId(podId);
         }
 
         Long zoneId = cmd.getZoneId();
         if (zoneId != null) {
             params++;
-            routers = _routerDao.listByDataCenter(zoneId);
+            routers = _routerDao.listRunningByDataCenter(zoneId);
         }
 
         if (params > 1) {