From bb313a61f0b4b0ed3640b2df416c23312b0205c2 Mon Sep 17 00:00:00 2001 From: Chiradeep Vittal Date: Fri, 5 Aug 2011 15:17:58 -0700 Subject: [PATCH] bug 10659: reuse unused elb vms if they are not gceed already --- .../cloud/network/lb/ElasticLoadBalancerManagerImpl.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/server/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java b/server/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java index a15ba2fb819..5d8d4838b96 100644 --- a/server/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java +++ b/server/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java @@ -23,6 +23,7 @@ import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Random; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.Executors; @@ -426,7 +427,10 @@ public class ElasticLoadBalancerManagerImpl implements } private DomainRouterVO findELBVmWithCapacity(Network guestNetwork, IPAddressVO ipAddr) { - List elbVms = _routerDao.listByNetworkAndRole(guestNetwork.getId(), Role.LB); + List unusedElbVms = _elbVmMapDao.listUnusedElbVms(); + if (unusedElbVms.size() > 0) { + return unusedElbVms.get(new Random().nextInt(unusedElbVms.size())); + } return null; }