From 9ac32aae385457392aaa7dccd799624a669490e3 Mon Sep 17 00:00:00 2001 From: Wei Zhou Date: Sat, 29 Jun 2019 08:39:36 +0200 Subject: [PATCH] server: VPC redundant vrs run on same hypervisor (#3421) For VPC supports redundant VRs, when start the second VR, the pod/cluster/host of first VR should be added to avoid list. This provides higher availability. The network VRs have the same process already. --- server/src/com/cloud/network/router/NetworkHelperImpl.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/server/src/com/cloud/network/router/NetworkHelperImpl.java b/server/src/com/cloud/network/router/NetworkHelperImpl.java index fa17e7bc315..1262158c847 100644 --- a/server/src/com/cloud/network/router/NetworkHelperImpl.java +++ b/server/src/com/cloud/network/router/NetworkHelperImpl.java @@ -375,8 +375,13 @@ public class NetworkHelperImpl implements NetworkHelper { final List networkIds = _routerDao.getRouterNetworks(router.getId()); DomainRouterVO routerToBeAvoid = null; + List routerList = null; if (networkIds.size() != 0) { - final List routerList = _routerDao.findByNetwork(networkIds.get(0)); + routerList = _routerDao.findByNetwork(networkIds.get(0)); + } else if (router.getVpcId() != null) { + routerList = _routerDao.listByVpcId(router.getVpcId()); + } + if (routerList != null) { for (final DomainRouterVO rrouter : routerList) { if (rrouter.getHostId() != null && rrouter.getIsRedundantRouter() && rrouter.getState() == State.Running) { if (routerToBeAvoid != null) {