Repository: stratos
Updated Branches:
  refs/heads/stratos-4.1.x b73ff9468 -> df2abb3ca


adding zone and region to LB Member (EC2) and adding app id to LB Cluster


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

Branch: refs/heads/stratos-4.1.x
Commit: 6b203369e7a46872edcf8a9b94f6ddfca020f91d
Parents: f7263a8
Author: Isuru Haththotuwa <[email protected]>
Authored: Wed Nov 4 09:51:27 2015 +0530
Committer: Isuru Haththotuwa <[email protected]>
Committed: Tue Nov 10 13:31:49 2015 +0530

----------------------------------------------------------------------
 .../services/impl/CloudControllerServiceImpl.java   | 16 ++++++++++++++++
 .../controller/util/CloudControllerConstants.java   |  3 +++
 .../load/balancer/common/domain/Cluster.java        |  9 +++++++++
 .../stratos/load/balancer/common/domain/Member.java | 10 ++++++++++
 .../LoadBalancerCommonTopologyEventReceiver.java    | 13 +++++++++++++
 5 files changed, 51 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/6b203369/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java
index c255189..fa2590c 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java
@@ -395,6 +395,22 @@ public class CloudControllerServiceImpl implements 
CloudControllerService {
 
             // Create member context
             String applicationId = clusterContext.getApplicationId();
+
+            // if the IaaS Provider type is 'ec2', add region and zone 
information to the Member via
+            // properties of Instance Context -> properties of Member Context
+            if 
(CloudControllerConstants.IAAS_TYPE_EC2.equalsIgnoreCase(iaasProvider.getType()))
 {
+                instanceContext.getProperties().addProperty(new 
Property(CloudControllerConstants.INSTANCE_CTXT_EC2_REGION,
+                        
instanceContext.getPartition().getProperties().getProperty(CloudControllerConstants.REGION_ELEMENT).getValue()));
+                instanceContext.getProperties().addProperty(new 
Property(CloudControllerConstants.INSTANCE_CTXT_EC2_AVAILABILITY_ZONE,
+                        
instanceContext.getPartition().getProperties().getProperty(CloudControllerConstants.ZONE_ELEMENT).getValue()));
+                if (log.isDebugEnabled()) {
+                    log.debug("ec2Region in InstanceContext: " + 
instanceContext.getProperties()
+                            
.getProperty(CloudControllerConstants.INSTANCE_CTXT_EC2_REGION));
+                    log.debug("ec2AvailabilityZone in InstanceContext: " + 
instanceContext.getProperties()
+                            
.getProperty(CloudControllerConstants.INSTANCE_CTXT_EC2_AVAILABILITY_ZONE));
+                }
+            }
+
             MemberContext memberContext = createMemberContext(applicationId, 
cartridgeType, memberId,
                     
CloudControllerUtil.getLoadBalancingIPTypeEnumFromString(cartridge.getLoadBalancingIPType()),
                     instanceContext);

http://git-wip-us.apache.org/repos/asf/stratos/blob/6b203369/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerConstants.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerConstants.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerConstants.java
index d8d7004..c025bb4 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerConstants.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerConstants.java
@@ -344,4 +344,7 @@ public final class CloudControllerConstants {
     public static final String PORT_NAME_LABEL = "portName";
     public static final String LOAD_BALANCER_IPS = "LOAD_BALANCER_IPS";
     public static final String NETWORK_PARTITION_ID_LIST = 
"NETWORK_PARTITION_ID_LIST";
+    public static final String IAAS_TYPE_EC2 = "ec2";
+    public static final String INSTANCE_CTXT_EC2_REGION = "EC2_REGION";
+    public static final String INSTANCE_CTXT_EC2_AVAILABILITY_ZONE = 
"EC2_AVAILABILITY_ZONE";
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/6b203369/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/domain/Cluster.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/domain/Cluster.java
 
b/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/domain/Cluster.java
index ccb0195..a396acd 100644
--- 
a/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/domain/Cluster.java
+++ 
b/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/domain/Cluster.java
@@ -40,6 +40,7 @@ public class Cluster {
     private Map<String, Member> memberMap;
     private Map<String, String> hostNameToContextPathMap;
     private String loadBalanceAlgorithmName;
+    private Properties properties;
 
     public Cluster(String serviceName, String clusterId) {
         this.serviceName = serviceName;
@@ -149,4 +150,12 @@ public class Cluster {
         hostNames.remove(hostName);
         hostNameToContextPathMap.remove(hostName);
     }
+
+    public Properties getProperties() {
+        return properties;
+    }
+
+    public void setProperties(Properties properties) {
+        this.properties = properties;
+    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/6b203369/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/domain/Member.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/domain/Member.java
 
b/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/domain/Member.java
index 1bb93c2..f892203 100644
--- 
a/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/domain/Member.java
+++ 
b/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/domain/Member.java
@@ -22,6 +22,7 @@ package org.apache.stratos.load.balancer.common.domain;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Properties;
 
 /**
  * Load balancer member definition.
@@ -34,6 +35,7 @@ public class Member {
     private String hostName;
     private Map<Integer, Port> portMap;
     private String instanceId;
+    private Properties properties;
 
        public Member(String serviceName, String clusterId, String memberId, 
String hostName) {
         this.serviceName = serviceName;
@@ -95,4 +97,12 @@ public class Member {
        public void setInstanceId(String instanceId) {
                this.instanceId = instanceId;
        }
+
+    public Properties getProperties() {
+        return properties;
+    }
+
+    public void setProperties(Properties properties) {
+        this.properties = properties;
+    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/6b203369/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonTopologyEventReceiver.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonTopologyEventReceiver.java
 
b/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonTopologyEventReceiver.java
index 4c9b5f1..4fb45a9 100644
--- 
a/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonTopologyEventReceiver.java
+++ 
b/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonTopologyEventReceiver.java
@@ -32,6 +32,8 @@ import org.apache.stratos.messaging.listener.topology.*;
 import 
org.apache.stratos.messaging.message.receiver.topology.TopologyEventReceiver;
 import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
 
+import java.util.Properties;
+
 /**
  * Load balancer common topology receiver updates the topology in the given 
topology provider
  * according to topology events.
@@ -422,6 +424,14 @@ public class LoadBalancerCommonTopologyEventReceiver 
extends TopologyEventReceiv
                 cluster.addHostName(hostName);
             }
         }
+
+        Properties messagingClusterProps = new Properties();
+        if (messagingCluster.getAppId() != null) {
+            messagingClusterProps.setProperty("applicationId", 
messagingCluster.getAppId());
+        }
+        cluster.setProperties(messagingClusterProps);
+
+
         return cluster;
     }
 
@@ -458,6 +468,9 @@ public class LoadBalancerCommonTopologyEventReceiver 
extends TopologyEventReceiv
         if (messagingMember.getInstanceId() != null) {
             member.setInstanceId(messagingMember.getInstanceId());
         }
+
+        member.setProperties(messagingMember.getProperties());
+
         return member;
     }
 }

Reply via email to