From 8c87c48486dc12ff228ca2a4d7e652ddc10fdbea Mon Sep 17 00:00:00 2001 From: kishan Date: Wed, 4 May 2011 02:31:56 +0530 Subject: [PATCH] bug 9678: update user statistics in cloud_usage. Send network usage command to routers of virtual network only status 9678: resolved fixed --- .../router/VirtualNetworkApplianceManagerImpl.java | 5 ++++- server/src/com/cloud/vm/dao/DomainRouterDao.java | 2 +- server/src/com/cloud/vm/dao/DomainRouterDaoImpl.java | 12 +++++++++++- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java index 695d737590a..d4d0f7dd835 100644 --- a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java +++ b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java @@ -627,7 +627,10 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian @Override public void run() { - final List routers = _routerDao.listUpByHostId(null); + + + final List routers = _routerDao.listVirtualUpByHostId(null); + s_logger.debug("Found " + routers.size() + " running routers. "); for (DomainRouterVO router : routers) { diff --git a/server/src/com/cloud/vm/dao/DomainRouterDao.java b/server/src/com/cloud/vm/dao/DomainRouterDao.java index b766a082731..352509be6f8 100755 --- a/server/src/com/cloud/vm/dao/DomainRouterDao.java +++ b/server/src/com/cloud/vm/dao/DomainRouterDao.java @@ -67,7 +67,7 @@ public interface DomainRouterDao extends GenericDao { * @param hostId id of the host. null if to get all. * @return list of DomainRouterVO */ - public List listUpByHostId(Long hostId); + public List listVirtualUpByHostId(Long hostId); /** * Find the list of domain routers for a domain diff --git a/server/src/com/cloud/vm/dao/DomainRouterDaoImpl.java b/server/src/com/cloud/vm/dao/DomainRouterDaoImpl.java index 4b22b734793..8d6f311183f 100755 --- a/server/src/com/cloud/vm/dao/DomainRouterDaoImpl.java +++ b/server/src/com/cloud/vm/dao/DomainRouterDaoImpl.java @@ -23,10 +23,15 @@ import javax.ejb.Local; import org.apache.log4j.Logger; +import com.cloud.network.Network.GuestIpType; +import com.cloud.network.NetworkVO; +import com.cloud.network.dao.NetworkDaoImpl; import com.cloud.network.router.VirtualRouter.Role; +import com.cloud.utils.component.ComponentLocator; import com.cloud.utils.db.GenericDaoBase; import com.cloud.utils.db.SearchBuilder; import com.cloud.utils.db.SearchCriteria; +import com.cloud.utils.db.JoinBuilder.JoinType; import com.cloud.utils.db.SearchCriteria.Op; import com.cloud.utils.db.Transaction; import com.cloud.utils.db.UpdateBuilder; @@ -40,6 +45,7 @@ public class DomainRouterDaoImpl extends GenericDaoBase im protected final SearchBuilder AllFieldsSearch; protected final SearchBuilder IdStatesSearch; protected final SearchBuilder HostUpSearch; + NetworkDaoImpl _networksDao = ComponentLocator.inject(NetworkDaoImpl.class); protected DomainRouterDaoImpl() { AllFieldsSearch = createSearchBuilder(); @@ -62,6 +68,9 @@ public class DomainRouterDaoImpl extends GenericDaoBase im HostUpSearch = createSearchBuilder(); HostUpSearch.and("host", HostUpSearch.entity().getHostId(), Op.EQ); HostUpSearch.and("states", HostUpSearch.entity().getState(), Op.NIN); + SearchBuilder joinNetwork = _networksDao.createSearchBuilder(); + joinNetwork.and("guestType", joinNetwork.entity().getGuestType(), Op.EQ); + HostUpSearch.join("network", joinNetwork, joinNetwork.entity().getId(), HostUpSearch.entity().getNetworkId(), JoinType.INNER); HostUpSearch.done(); } @@ -121,12 +130,13 @@ public class DomainRouterDaoImpl extends GenericDaoBase im } @Override - public List listUpByHostId(Long hostId) { + public List listVirtualUpByHostId(Long hostId) { SearchCriteria sc = HostUpSearch.create(); if(hostId != null){ sc.setParameters("host", hostId); } sc.setParameters("states", State.Destroyed, State.Stopped, State.Expunging); + sc.setJoinParameters("network", "guestType", GuestIpType.Virtual); return listBy(sc); }