Refactor AWS LB extension

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

Branch: refs/heads/stratos-4.1.x
Commit: fe640c60c7f82f786aab7f97a608f9afc559e047
Parents: 2e47aa7
Author: gayangunarathne <[email protected]>
Authored: Mon Dec 21 17:27:43 2015 +0530
Committer: Isuru Haththotuwa <[email protected]>
Committed: Fri Dec 25 17:10:00 2015 +0530

----------------------------------------------------------------------
 .../stratos/aws/extension/AWSLoadBalancer.java  | 26 +++++++++++++++++---
 .../org/apache/stratos/aws/extension/Main.java  |  4 +--
 2 files changed, 24 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/fe640c60/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSLoadBalancer.java
----------------------------------------------------------------------
diff --git 
a/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSLoadBalancer.java
 
b/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSLoadBalancer.java
index 0274172..466b70d 100644
--- 
a/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSLoadBalancer.java
+++ 
b/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSLoadBalancer.java
@@ -127,7 +127,7 @@ public class AWSLoadBalancer implements LoadBalancer {
 
                         log.info(String.format("Load balancer %s  created for 
cluster %s " , loadBalancerDNSName, cluster.getClusterId()));
 
-                           if(addClusterMembersInfo(clusterMembers, 
loadBalancerName, region)){
+                           if(addClusterMembersInfo(clusterMembers, 
loadBalancerName, region,null)){
                                    activeClusters.add(cluster.getClusterId());
                            }
 
@@ -191,7 +191,8 @@ public class AWSLoadBalancer implements LoadBalancer {
         return true;
     }
 
-       private Boolean addClusterMembersInfo(Collection<Member> 
clusterMembers, String loadBalancerName, String region) {
+       private Boolean addClusterMembersInfo(Collection<Member> 
clusterMembers, String loadBalancerName, String region,
+                                             List<Instance> attachedInstances) 
{
                Boolean isUpdated=false;
                // Register instances in the cluster to load balancer
                List<Instance> instances = new ArrayList<Instance>();
@@ -207,6 +208,22 @@ public class AWSLoadBalancer implements LoadBalancer {
                    }
 
                    Instance instance = new Instance();
+
+                       if (attachedInstances == null || 
!attachedInstances.contains(instance)) {
+                               instances.add(instance);
+
+                               if (log.isDebugEnabled()) {
+                                       log.debug("Instance " + 
awsHelper.getAWSInstanceName(member.getInstanceId()) +
+                                                 " needs to be registered to 
load balancer " + loadBalancerName);
+                               }
+
+                               // LB Common Member has a property 
'EC2_AVAILABILITY_ZONE' points to the ec2 availability zone
+                               // for this member. Use the property value to 
update the LB about the relevant zone
+                               String availabilityZone = 
getEC2AvaialbilityZoneOfMember(member);
+                               if (availabilityZone != null) {
+                                       availabilityZones.add(availabilityZone);
+                               }
+                       }
                    
instance.setInstanceId(awsHelper.getAWSInstanceName(instanceId));
 
                    instances.add(instance);
@@ -219,7 +236,8 @@ public class AWSLoadBalancer implements LoadBalancer {
 
                        // add stickiness policy
                        if (awsHelper.getAppStickySessionCookie() != null && 
!awsHelper.getAppStickySessionCookie().isEmpty()) {
-                               CreateAppCookieStickinessPolicyResult result = 
awsHelper.createStickySessionPolicy(loadBalancerName, 
awsHelper.getAppStickySessionCookie(),
+                               CreateAppCookieStickinessPolicyResult result = 
awsHelper.createStickySessionPolicy(loadBalancerName,
+                                                                               
                                   awsHelper.getAppStickySessionCookie(),
                                                                                
                                   Constants.STICKINESS_POLICY,
                                                                                
                                   region);
 
@@ -290,7 +308,7 @@ public class AWSLoadBalancer implements LoadBalancer {
                // clusterMembers stores all the members of a cluster.
                Collection<Member> clusterMembers = cluster.getMembers();
 
-               isUpdated= addClusterMembersInfo(clusterMembers, 
loadBalancerName, region);
+               isUpdated= addClusterMembersInfo(clusterMembers, 
loadBalancerName, region,attachedInstances);
 
                return isUpdated;
        }

http://git-wip-us.apache.org/repos/asf/stratos/blob/fe640c60/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/Main.java
----------------------------------------------------------------------
diff --git 
a/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/Main.java
 
b/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/Main.java
index 3d404ac..7a58df9 100644
--- 
a/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/Main.java
+++ 
b/extensions/load-balancer/modules/aws-extension/src/main/java/org/apache/stratos/aws/extension/Main.java
@@ -36,8 +36,8 @@ import java.util.concurrent.ThreadPoolExecutor;
 public class Main {
        private static final Log log = LogFactory.getLog(Main.class);
        private static ThreadPoolExecutor executor;
-       public static final String AWS_EXTENSION_THREAD_POOL = 
"aws.extension.thread.pool";
-       public static final int THREAD_POOL_SIZE = 10;
+//     public static final String AWS_EXTENSION_THREAD_POOL = 
"aws.extension.thread.pool";
+//     public static final int THREAD_POOL_SIZE = 10;
 
        public static void main(String[] args) {
 

Reply via email to