From 843e41752f0e85dc9b06f923de11b745b6b39961 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 9cfba5d02fa..1d5b925ef7c 100755 --- a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java +++ b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java @@ -844,8 +844,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 2e776c3a1c0..3d9218cc06c 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 ffaa0c775a9..98504f60926 100755 --- a/server/src/com/cloud/vm/dao/DomainRouterDaoImpl.java +++ b/server/src/com/cloud/vm/dao/DomainRouterDaoImpl.java @@ -145,6 +145,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();