diff --git a/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java b/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java index 2b6032f42d35..28855db83407 100644 --- a/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java +++ b/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java @@ -1543,9 +1543,15 @@ private SetMonitorServiceCommand createMonitorServiceCommand(DomainRouterVO rout command.setAccessDetail(SetMonitorServiceCommand.ROUTER_HEALTH_CHECKS_BASIC_INTERVAL, RouterHealthChecksBasicInterval.value().toString()); command.setAccessDetail(SetMonitorServiceCommand.ROUTER_HEALTH_CHECKS_ADVANCED_INTERVAL, RouterHealthChecksAdvancedInterval.value().toString()); String excludedTests = RouterHealthChecksToExclude.valueIn(router.getDataCenterId()); - if (router.getIsRedundantRouter() && RedundantState.BACKUP.equals(router.getRedundantState())) { - excludedTests = excludedTests.isEmpty() ? BACKUP_ROUTER_EXCLUDED_TESTS : excludedTests + "," + BACKUP_ROUTER_EXCLUDED_TESTS; + if (router.getIsRedundantRouter()) { + // Disable gateway check if VPC has no tiers or no active VM's in it + final List routerGuestNtwkIds = _routerDao.getRouterNetworks(router.getId()); + if (RedundantState.BACKUP.equals(router.getRedundantState()) || + routerGuestNtwkIds == null || routerGuestNtwkIds.isEmpty()) { + excludedTests = excludedTests.isEmpty() ? BACKUP_ROUTER_EXCLUDED_TESTS : excludedTests + "," + BACKUP_ROUTER_EXCLUDED_TESTS; + } } + command.setAccessDetail(SetMonitorServiceCommand.ROUTER_HEALTH_CHECKS_EXCLUDED, excludedTests); command.setHealthChecksConfig(getRouterHealthChecksConfig(router)); command.setReconfigureAfterUpdate(reconfigure);