mirror of https://github.com/apache/cloudstack.git
bug 9678: update user statistics in cloud_usage. Send network usage command to routers of virtual network only
status 9678: resolved fixed
This commit is contained in:
parent
c1cb1af320
commit
8c87c48486
|
|
@ -627,7 +627,10 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
|
|||
|
||||
@Override
|
||||
public void run() {
|
||||
final List<DomainRouterVO> routers = _routerDao.listUpByHostId(null);
|
||||
|
||||
|
||||
final List<DomainRouterVO> routers = _routerDao.listVirtualUpByHostId(null);
|
||||
|
||||
s_logger.debug("Found " + routers.size() + " running routers. ");
|
||||
|
||||
for (DomainRouterVO router : routers) {
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@ public interface DomainRouterDao extends GenericDao<DomainRouterVO, Long> {
|
|||
* @param hostId id of the host. null if to get all.
|
||||
* @return list of DomainRouterVO
|
||||
*/
|
||||
public List<DomainRouterVO> listUpByHostId(Long hostId);
|
||||
public List<DomainRouterVO> listVirtualUpByHostId(Long hostId);
|
||||
|
||||
/**
|
||||
* Find the list of domain routers for a domain
|
||||
|
|
|
|||
|
|
@ -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<DomainRouterVO, Long> im
|
|||
protected final SearchBuilder<DomainRouterVO> AllFieldsSearch;
|
||||
protected final SearchBuilder<DomainRouterVO> IdStatesSearch;
|
||||
protected final SearchBuilder<DomainRouterVO> HostUpSearch;
|
||||
NetworkDaoImpl _networksDao = ComponentLocator.inject(NetworkDaoImpl.class);
|
||||
|
||||
protected DomainRouterDaoImpl() {
|
||||
AllFieldsSearch = createSearchBuilder();
|
||||
|
|
@ -62,6 +68,9 @@ public class DomainRouterDaoImpl extends GenericDaoBase<DomainRouterVO, Long> im
|
|||
HostUpSearch = createSearchBuilder();
|
||||
HostUpSearch.and("host", HostUpSearch.entity().getHostId(), Op.EQ);
|
||||
HostUpSearch.and("states", HostUpSearch.entity().getState(), Op.NIN);
|
||||
SearchBuilder<NetworkVO> 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<DomainRouterVO, Long> im
|
|||
}
|
||||
|
||||
@Override
|
||||
public List<DomainRouterVO> listUpByHostId(Long hostId) {
|
||||
public List<DomainRouterVO> listVirtualUpByHostId(Long hostId) {
|
||||
SearchCriteria<DomainRouterVO> 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);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue