Updated Branches:
  refs/heads/master 328350095 -> c257ac859

fixing https://issues.apache.org/jira/browse/STRATOS-419


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

Branch: refs/heads/master
Commit: e980b797e4890a49758236f00ffd5e5e80930c3a
Parents: 3283500
Author: Nirmal Fernando <[email protected]>
Authored: Sat Feb 8 20:47:13 2014 +0530
Committer: Nirmal Fernando <[email protected]>
Committed: Sat Feb 8 20:47:13 2014 +0530

----------------------------------------------------------------------
 .../impl/CloudControllerServiceImpl.java        | 14 +++++--
 .../cloud/controller/pojo/ClusterContext.java   | 12 +++++-
 .../cloud/controller/pojo/MemberContext.java    | 39 ++++++++++++++++++++
 .../runtime/FasterLookUpDataHolder.java         |  3 ++
 .../controller/topology/TopologyBuilder.java    |  5 +--
 .../topology/TopologyEventPublisher.java        |  2 +-
 6 files changed, 65 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/e980b797/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java
index 86e4ed8..59ccb1a 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java
@@ -38,6 +38,7 @@ import 
org.apache.stratos.cloud.controller.util.CloudControllerUtil;
 import 
org.apache.stratos.cloud.controller.validate.interfaces.PartitionValidator;
 import org.apache.stratos.messaging.domain.topology.Member;
 import org.apache.stratos.messaging.domain.topology.MemberStatus;
+import org.apache.stratos.messaging.util.Constants;
 import org.jclouds.compute.ComputeService;
 import org.jclouds.compute.domain.NodeMetadata;
 import org.jclouds.compute.domain.Template;
@@ -46,6 +47,7 @@ import 
org.wso2.carbon.registry.core.exceptions.RegistryException;
 import java.lang.reflect.Constructor;
 import java.lang.reflect.InvocationTargetException;
 import java.util.*;
+import java.util.Properties;
 import java.util.concurrent.ConcurrentHashMap;
 
 /**
@@ -513,7 +515,7 @@ public class CloudControllerServiceImpl implements 
CloudControllerService {
                         ip = node.getPublicAddresses().iterator().next();
                         publicIp = ip;
                         memberContext.setPublicIpAddress(ip);
-                        log.info("Public IP Address has been set. " + 
memberContext.toString());
+                        log.info("Retrieving Public IP Address : " + 
memberContext.toString());
                     }
 
                     // private IP
@@ -521,7 +523,7 @@ public class CloudControllerServiceImpl implements 
CloudControllerService {
                         node.getPrivateAddresses().iterator().hasNext()) {
                         ip = node.getPrivateAddresses().iterator().next();
                         memberContext.setPrivateIpAddress(ip);
-                        log.info("Private IP Address has been set. " + 
memberContext.toString());
+                        log.info("Retrieving Private IP Address. " + 
memberContext.toString());
                     }
 
                     dataHolder.addMemberContext(memberContext);
@@ -830,8 +832,12 @@ public class CloudControllerServiceImpl implements 
CloudControllerService {
             throw new UnregisteredCartridgeException(msg);
         }
         
-           dataHolder.addClusterContext(new ClusterContext(clusterId, 
cartridgeType, payload, hostName));
-           TopologyBuilder.handleClusterCreated(registrant);
+        Properties props = 
CloudControllerUtil.toJavaUtilProperties(registrant.getProperties());
+        String property = props.getProperty(Constants.IS_LOAD_BALANCER);
+        boolean isLb = property != null ? Boolean.parseBoolean(property) : 
false;
+        
+           dataHolder.addClusterContext(new ClusterContext(clusterId, 
cartridgeType, payload, hostName, isLb));
+           TopologyBuilder.handleClusterCreated(registrant, isLb);
            
            persist();
            

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/e980b797/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/ClusterContext.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/ClusterContext.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/ClusterContext.java
index b4f7a70..591be5a 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/ClusterContext.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/ClusterContext.java
@@ -35,12 +35,14 @@ public class ClusterContext implements Serializable{
     // payload as a String
     private String payload;
     private String hostName;
+    private boolean isLbCluster;
 
-    public ClusterContext(String clusterId, String cartridgeType, String 
payload, String hostName) {
+    public ClusterContext(String clusterId, String cartridgeType, String 
payload, String hostName, boolean isLbCluster) {
         this.clusterId = clusterId;
         this.cartridgeType = cartridgeType;
         this.payload = payload;
         this.setHostName(hostName);
+        this.isLbCluster = isLbCluster;
     }
     
     public String getClusterId() {
@@ -70,4 +72,12 @@ public class ClusterContext implements Serializable{
         this.hostName = hostName;
     }
 
+       public boolean isLbCluster() {
+               return isLbCluster;
+       }
+
+       public void setLbCluster(boolean isLbCluster) {
+               this.isLbCluster = isLbCluster;
+       }
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/e980b797/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/MemberContext.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/MemberContext.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/MemberContext.java
index 168fd80..61c5665 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/MemberContext.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/MemberContext.java
@@ -151,4 +151,43 @@ public class MemberContext implements Serializable{
                allocatedIpAddress + ", initTime=" + initTime + ", 
lbClusterId=" + lbClusterId +
                ", networkPartitionId=" + networkPartitionId + "]";
     }
+
+       @Override
+       public int hashCode() {
+               final int prime = 31;
+               int result = 1;
+               result = prime * result
+                               + ((clusterId == null) ? 0 : 
clusterId.hashCode());
+               result = prime * result
+                               + ((memberId == null) ? 0 : 
memberId.hashCode());
+               result = prime * result + ((nodeId == null) ? 0 : 
nodeId.hashCode());
+               return result;
+       }
+
+       @Override
+       public boolean equals(Object obj) {
+               if (this == obj)
+                       return true;
+               if (obj == null)
+                       return false;
+               if (getClass() != obj.getClass())
+                       return false;
+               MemberContext other = (MemberContext) obj;
+               if (clusterId == null) {
+                       if (other.clusterId != null)
+                               return false;
+               } else if (!clusterId.equals(other.clusterId))
+                       return false;
+               if (memberId == null) {
+                       if (other.memberId != null)
+                               return false;
+               } else if (!memberId.equals(other.memberId))
+                       return false;
+               if (nodeId == null) {
+                       if (other.nodeId != null)
+                               return false;
+               } else if (!nodeId.equals(other.nodeId))
+                       return false;
+               return true;
+       }
 }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/e980b797/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/runtime/FasterLookUpDataHolder.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/runtime/FasterLookUpDataHolder.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/runtime/FasterLookUpDataHolder.java
index 3da47ed..ec9d057 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/runtime/FasterLookUpDataHolder.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/runtime/FasterLookUpDataHolder.java
@@ -423,6 +423,9 @@ public class FasterLookUpDataHolder implements Serializable{
         if((ctxts = clusterIdToMemberContext.get(ctxt.getClusterId())) == 
null) {
             ctxts = new ArrayList<MemberContext>();
         } 
+        if(ctxts.contains(ctxt)) {
+               ctxts.remove(ctxt);
+        }
         ctxts.add(ctxt);
         clusterIdToMemberContext.put(ctxt.getClusterId(), ctxts);
     }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/e980b797/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyBuilder.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyBuilder.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyBuilder.java
index f98327b..510f87b 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyBuilder.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyBuilder.java
@@ -105,7 +105,7 @@ public class TopologyBuilder {
         }
     }
 
-    public static void handleClusterCreated(Registrant registrant) {
+    public static void handleClusterCreated(Registrant registrant, boolean 
isLb) {
         Topology topology = TopologyManager.getTopology();
         Service service;
         try {
@@ -114,9 +114,6 @@ public class TopologyBuilder {
             service = topology.getService(cartridgeType);
             Properties props = 
CloudControllerUtil.toJavaUtilProperties(registrant.getProperties());
             
-            String property = props.getProperty(Constants.IS_LOAD_BALANCER);
-            boolean isLb = property != null ? Boolean.parseBoolean(property) : 
false;
-            
             Cluster cluster;
             String clusterId = registrant.getClusterId();
             if (service.clusterExists(clusterId)) {

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/e980b797/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyEventPublisher.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyEventPublisher.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyEventPublisher.java
index 7a9120a..0209fe3 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyEventPublisher.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyEventPublisher.java
@@ -86,7 +86,7 @@ public class TopologyEventPublisher {
 
     public static void sendClusterRemovedEvent(ClusterContext ctxt) {
 
-        ClusterRemovedEvent clusterRemovedEvent = new 
ClusterRemovedEvent(ctxt.getCartridgeType(), ctxt.getClusterId(), false);
+        ClusterRemovedEvent clusterRemovedEvent = new 
ClusterRemovedEvent(ctxt.getCartridgeType(), ctxt.getClusterId(), 
ctxt.isLbCluster());
 
         if(log.isInfoEnabled()) {
             log.info(String.format("Publishing cluster removed event: 
[service] %s [cluster] %s", ctxt.getCartridgeType(), ctxt.getClusterId()));

Reply via email to