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) {
