From b34750c6ff549cf6f5cc45cb44018150a0028b9e Mon Sep 17 00:00:00 2001 From: Sheng Yang Date: Thu, 18 Aug 2011 22:49:51 -0700 Subject: [PATCH] Update redundant router status even router is down We need to update the status to UNKNOWN if router is down(also ensure we can't contact the router if the state is Stopped in our database). --- .../router/VirtualNetworkApplianceManagerImpl.java | 4 ++-- server/src/com/cloud/vm/dao/DomainRouterDao.java | 9 +++++++++ server/src/com/cloud/vm/dao/DomainRouterDaoImpl.java | 10 ++++++++++ 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java index 85e7236a4bb..1d518e79e02 100755 --- a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java +++ b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java @@ -846,8 +846,8 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian @Override public void run() { try { - final List routers = _routerDao.listVirtualUpByHostId(null); - s_logger.debug("Found " + routers.size() + " running routers. "); + final List routers = _routerDao.listVirtualByHostId(null); + s_logger.debug("Found " + routers.size() + " routers. "); updateRoutersRedundantState(routers); diff --git a/server/src/com/cloud/vm/dao/DomainRouterDao.java b/server/src/com/cloud/vm/dao/DomainRouterDao.java index e6d8f8ec852..62e748221af 100755 --- a/server/src/com/cloud/vm/dao/DomainRouterDao.java +++ b/server/src/com/cloud/vm/dao/DomainRouterDao.java @@ -62,6 +62,15 @@ public interface DomainRouterDao extends GenericDao { public List listByHostId(Long hostId); public List listByLastHostId(Long hostId); + /** + * list virtual machine routers by host id. + * pass in null to get all + * virtual machine routers. + * @param hostId id of the host. null if to get all. + * @return list of DomainRouterVO + */ + public List listVirtualByHostId(Long hostId); + /** * list virtual machine routers by host id. exclude destroyed, stopped, expunging VM, * pass in null to get all diff --git a/server/src/com/cloud/vm/dao/DomainRouterDaoImpl.java b/server/src/com/cloud/vm/dao/DomainRouterDaoImpl.java index a8a5cc9b606..fd350173f59 100755 --- a/server/src/com/cloud/vm/dao/DomainRouterDaoImpl.java +++ b/server/src/com/cloud/vm/dao/DomainRouterDaoImpl.java @@ -144,6 +144,16 @@ public class DomainRouterDaoImpl extends GenericDaoBase im return listBy(sc); } + @Override + public List listVirtualByHostId(Long hostId) { + SearchCriteria sc = HostUpSearch.create(); + if (hostId != null) { + sc.setParameters("host", hostId); + } + sc.setJoinParameters("network", "guestType", GuestIpType.Virtual); + return listBy(sc); + } + @Override public List listVirtualUpByHostId(Long hostId) { SearchCriteria sc = HostUpSearch.create();