Refactor the 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/d134a286 Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/d134a286 Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/d134a286 Branch: refs/heads/stratos-4.1.x Commit: d134a2867b138e36f093423e4c60753491244ada Parents: 7d1e527 Author: gayangunarathne <[email protected]> Authored: Tue Dec 8 10:41:57 2015 +0530 Committer: Isuru Haththotuwa <[email protected]> Committed: Fri Dec 25 17:08:32 2015 +0530 ---------------------------------------------------------------------- .../stratos/aws/extension/AWSLoadBalancer.java | 37 +++++--------------- .../org/apache/stratos/aws/extension/Main.java | 3 +- 2 files changed, 11 insertions(+), 29 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/d134a286/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 f5210b9..1bfb10a 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 @@ -120,14 +120,12 @@ public class AWSLoadBalancer implements LoadBalancer { initialAvailabilityZones.add(region + zone); } } - - String loadBalancerDNSName = createAWSLoadBalancer(loadBalancerName, region, listenersForThisCluster,initialAvailabilityZones); log.info(String.format("Load balancer %s created for cluster %s " , loadBalancerDNSName, cluster.getClusterId())); - if(addClusterMembersInfo(clusterMembers, loadBalancerName, region,null)){ + if(addClusterMembersInfo(clusterMembers, loadBalancerName, region)){ activeClusters.add(cluster.getClusterId()); } @@ -143,7 +141,8 @@ public class AWSLoadBalancer implements LoadBalancer { cluster.getClusterId())); } clusterIdToLoadBalancerMap.put(cluster.getClusterId(), lbInfoDTO); - + LoadBalancerInfo loadBalancerInfo = new LoadBalancerInfo(loadBalancerName, region); + clusterIdToLoadBalancerMap.put(cluster.getClusterId(),loadBalancerInfo); } pause(3000); @@ -192,8 +191,7 @@ public class AWSLoadBalancer implements LoadBalancer { return true; } - private Boolean addClusterMembersInfo(Collection<Member> clusterMembers, String loadBalancerName, String region, - List<Instance> attachedInstances) { + private Boolean addClusterMembersInfo(Collection<Member> clusterMembers, String loadBalancerName, String region) { Boolean isUpdated=false; // Register instances in the cluster to load balancer List<Instance> instances = new ArrayList<Instance>(); @@ -209,22 +207,6 @@ 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); @@ -237,8 +219,7 @@ 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); @@ -295,10 +276,10 @@ public class AWSLoadBalancer implements LoadBalancer { private Boolean updateExistingLoadBalancer(Cluster cluster) { Boolean isUpdated=false; - LBInfoDTO lbInfoDTO = clusterIdToLoadBalancerMap.get(cluster.getClusterId()); + LoadBalancerInfo loadBalancerInfo = clusterIdToLoadBalancerMap.get(cluster.getClusterId()); - String loadBalancerName = lbInfoDTO.getName(); - String region = lbInfoDTO.getRegion(); + String loadBalancerName = loadBalancerInfo.getName(); + String region = loadBalancerInfo.getRegion(); // Get all the instances attached - Attach newly added instances to load balancer @@ -309,7 +290,7 @@ public class AWSLoadBalancer implements LoadBalancer { // clusterMembers stores all the members of a cluster. Collection<Member> clusterMembers = cluster.getMembers(); - isUpdated= addClusterMembersInfo(clusterMembers, loadBalancerName, region,attachedInstances); + isUpdated= addClusterMembersInfo(clusterMembers, loadBalancerName, region); return isUpdated; } http://git-wip-us.apache.org/repos/asf/stratos/blob/d134a286/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 928c599..3d404ac 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,6 +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 void main(String[] args) { @@ -59,7 +61,6 @@ public class Main { extension = new LoadBalancerExtension(new AWSLoadBalancer(), statisticsReader, topologyProvider); extension.setExecutorService(executor); - extension.execute(); // Add shutdown hook
