CLOUDSTACK-6353 Fixed listing vm ip details for lb rule

Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/e6e4fe4d
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/e6e4fe4d
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/e6e4fe4d

Branch: refs/heads/marvin
Commit: e6e4fe4d2695c2f3b1a93a577341bd8b0d325013
Parents: e8227c8
Author: Jayapal <[email protected]>
Authored: Tue Apr 8 12:53:28 2014 +0530
Committer: Jayapal <[email protected]>
Committed: Tue Apr 8 12:56:02 2014 +0530

----------------------------------------------------------------------
 .../loadbalancer/ListLoadBalancerRuleInstancesCmdByAdmin.java   | 5 ++++-
 .../src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java | 5 +++++
 2 files changed, 9 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e6e4fe4d/api/src/org/apache/cloudstack/api/command/admin/loadbalancer/ListLoadBalancerRuleInstancesCmdByAdmin.java
----------------------------------------------------------------------
diff --git 
a/api/src/org/apache/cloudstack/api/command/admin/loadbalancer/ListLoadBalancerRuleInstancesCmdByAdmin.java
 
b/api/src/org/apache/cloudstack/api/command/admin/loadbalancer/ListLoadBalancerRuleInstancesCmdByAdmin.java
index 0e8c377..6c0d8a4 100644
--- 
a/api/src/org/apache/cloudstack/api/command/admin/loadbalancer/ListLoadBalancerRuleInstancesCmdByAdmin.java
+++ 
b/api/src/org/apache/cloudstack/api/command/admin/loadbalancer/ListLoadBalancerRuleInstancesCmdByAdmin.java
@@ -19,6 +19,7 @@ package org.apache.cloudstack.api.command.admin.loadbalancer;
 import java.util.ArrayList;
 import java.util.List;
 
+import com.cloud.vm.VirtualMachine;
 import org.apache.cloudstack.api.response.LoadBalancerRuleVmMapResponse;
 import org.apache.log4j.Logger;
 
@@ -75,7 +76,9 @@ public class ListLoadBalancerRuleInstancesCmdByAdmin extends 
ListLoadBalancerRul
                     LoadBalancerRuleVmMapResponse lbRuleVmIpResponse = new 
LoadBalancerRuleVmMapResponse();
                     vmResponses.get(i).setServiceState(serviceStates.get(i));
                     lbRuleVmIpResponse.setUserVmResponse(vmResponses.get(i));
-                    
lbRuleVmIpResponse.setIpAddr(_lbService.listLbVmIpAddress(getId(), 
result.get(i).getId()));
+                    //get vm id from the uuid
+                    VirtualMachine lbvm = 
_entityMgr.findByUuid(VirtualMachine.class, vmResponses.get(i).getId());
+                    
lbRuleVmIpResponse.setIpAddr(_lbService.listLbVmIpAddress(getId(), 
lbvm.getId()));
                     lbRuleVmIpResponse.setObjectName("lbrulevmidip");
                     listlbVmRes.add(lbRuleVmIpResponse);
                 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e6e4fe4d/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java 
b/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java
index db2817f..63912b3 100755
--- a/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java
+++ b/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java
@@ -1044,6 +1044,11 @@ public class LoadBalancingRulesManagerImpl<Type> extends 
ManagerBase implements
                 vmIpsList.add(priIp);
                 vmIdIpMap.put(instanceId, vmIpsList);
             } else {
+                // skip the primary ip from vm secondary ip comparisions
+                if (vmIpsList.contains(priIp)) {
+                    vmIpsList.remove(priIp);
+                }
+
                 //check if the ips belongs to nic secondary ip
                 for (String ip: vmIpsList) {
                     
if(_nicSecondaryIpDao.findByIp4AddressAndNicId(ip,nicInSameNetwork.getId()) == 
null) {

Reply via email to