From 5f31d5008ed2d726eb7fe27a11cd6a49cf41b942 Mon Sep 17 00:00:00 2001 From: Sheng Yang Date: Tue, 9 Aug 2011 18:21:28 -0700 Subject: [PATCH] bug 10640: Update redundant virtual router allocation algorithm Try to put routers to two different primary storages with two hosts, not the same host. --- .../network/router/VirtualNetworkApplianceManagerImpl.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java index b2762dce7fd..97fd43c8646 100755 --- a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java +++ b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java @@ -977,12 +977,13 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian avoids[1] = new ExcludeList(); avoids[1].addCluster(_hostDao.findById(routerToBeAvoid.getHostId()).getClusterId()); avoids[2] = new ExcludeList(); - avoids[2].addHost(routerToBeAvoid.getHostId()); - avoids[3] = new ExcludeList(); List volumes = _volumeDao.findByInstanceAndType(routerToBeAvoid.getId(), Type.ROOT); if (volumes != null && volumes.size() != 0) { - avoids[3].addPool(volumes.get(0).getPoolId()); + avoids[2].addPool(volumes.get(0).getPoolId()); } + avoids[2].addHost(routerToBeAvoid.getHostId()); + avoids[3] = new ExcludeList(); + avoids[3].addHost(routerToBeAvoid.getHostId()); avoids[4] = new ExcludeList(); for (int i = 0; i < retryIndex; i++) {