mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
bug 8879: Send network usage command for domain routers in Running state only
status 8879: resolved fixed
This commit is contained in:
parent
61cdbd0e1f
commit
675ffe23e8
@ -652,7 +652,7 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
|
||||
@Override
|
||||
public void run() {
|
||||
|
||||
final List<DomainRouterVO> routers = _routerDao.listVirtualUpByHostId(null);
|
||||
final List<DomainRouterVO> routers = _routerDao.listByStateAndNetworkType(State.Running, GuestIpType.Virtual);
|
||||
s_logger.debug("Found " + routers.size() + " running routers. ");
|
||||
|
||||
for (DomainRouterVO router : routers) {
|
||||
|
||||
@ -19,9 +19,11 @@ package com.cloud.vm.dao;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.cloud.network.Network.GuestIpType;
|
||||
import com.cloud.network.router.VirtualRouter.Role;
|
||||
import com.cloud.utils.db.GenericDao;
|
||||
import com.cloud.vm.DomainRouterVO;
|
||||
import com.cloud.vm.VirtualMachine.State;
|
||||
|
||||
/**
|
||||
*
|
||||
@ -83,4 +85,10 @@ public interface DomainRouterDao extends GenericDao<DomainRouterVO, Long> {
|
||||
List<DomainRouterVO> findByNetworkAndPod(long networkId, long podId);
|
||||
|
||||
List<DomainRouterVO> listActive(long networkId);
|
||||
|
||||
/**
|
||||
* List domain routers by state and network type
|
||||
* @return
|
||||
*/
|
||||
List<DomainRouterVO> listByStateAndNetworkType(State state, GuestIpType ipType);
|
||||
}
|
||||
|
||||
@ -45,6 +45,7 @@ public class DomainRouterDaoImpl extends GenericDaoBase<DomainRouterVO, Long> im
|
||||
protected final SearchBuilder<DomainRouterVO> AllFieldsSearch;
|
||||
protected final SearchBuilder<DomainRouterVO> IdNetworkIdStatesSearch;
|
||||
protected final SearchBuilder<DomainRouterVO> HostUpSearch;
|
||||
protected final SearchBuilder<DomainRouterVO> StateNetworkTypeSearch;
|
||||
NetworkDaoImpl _networksDao = ComponentLocator.inject(NetworkDaoImpl.class);
|
||||
|
||||
protected DomainRouterDaoImpl() {
|
||||
@ -73,6 +74,13 @@ public class DomainRouterDaoImpl extends GenericDaoBase<DomainRouterVO, Long> im
|
||||
joinNetwork.and("guestType", joinNetwork.entity().getGuestType(), Op.EQ);
|
||||
HostUpSearch.join("network", joinNetwork, joinNetwork.entity().getId(), HostUpSearch.entity().getNetworkId(), JoinType.INNER);
|
||||
HostUpSearch.done();
|
||||
|
||||
StateNetworkTypeSearch = createSearchBuilder();
|
||||
StateNetworkTypeSearch.and("state", StateNetworkTypeSearch.entity().getState(), Op.EQ);
|
||||
SearchBuilder<NetworkVO> joinStateNetwork = _networksDao.createSearchBuilder();
|
||||
joinStateNetwork.and("guestType", joinStateNetwork.entity().getGuestType(), Op.EQ);
|
||||
StateNetworkTypeSearch.join("network", joinStateNetwork, joinStateNetwork.entity().getId(), StateNetworkTypeSearch.entity().getNetworkId(), JoinType.INNER);
|
||||
StateNetworkTypeSearch.done();
|
||||
|
||||
}
|
||||
|
||||
@ -178,4 +186,12 @@ public class DomainRouterDaoImpl extends GenericDaoBase<DomainRouterVO, Long> im
|
||||
sc.setParameters("states", State.Running, State.Migrating, State.Stopping, State.Starting);
|
||||
return listBy(sc);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<DomainRouterVO> listByStateAndNetworkType(State state, GuestIpType ipType) {
|
||||
SearchCriteria<DomainRouterVO> sc = StateNetworkTypeSearch.create();
|
||||
sc.setParameters("state", state);
|
||||
sc.setJoinParameters("network", "guestType", ipType);
|
||||
return listBy(sc);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user