Code chamges to set endpoint of AWS Client and testing instanceId.
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/64799403 Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/64799403 Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/64799403 Branch: refs/heads/gsoc-projects-2015 Commit: 647994033661ad307114cd775dc532ecd08dd497 Parents: 75fe3e4 Author: swapnilpatilRajaram <[email protected]> Authored: Wed Jul 1 08:09:03 2015 +0000 Committer: swapnilpatilRajaram <[email protected]> Committed: Wed Jul 1 08:09:03 2015 +0000 ---------------------------------------------------------------------- extensions/load-balancer/aws-extension/pom.xml | 5 ++++ .../src/main/conf/aws-credentials.conf | 4 ++- .../apache/stratos/aws/extension/AWSHelper.java | 27 ++++++++++++++++++++ .../stratos/aws/extension/AWSLoadBalancer.java | 13 ++++++---- .../apache/stratos/aws/extension/Constants.java | 2 ++ 5 files changed, 45 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/64799403/extensions/load-balancer/aws-extension/pom.xml ---------------------------------------------------------------------- diff --git a/extensions/load-balancer/aws-extension/pom.xml b/extensions/load-balancer/aws-extension/pom.xml index 282c8ce..b99c062 100644 --- a/extensions/load-balancer/aws-extension/pom.xml +++ b/extensions/load-balancer/aws-extension/pom.xml @@ -71,6 +71,11 @@ <artifactId>aws-java-sdk</artifactId> <version>1.8.8</version> </dependency> + <dependency> + <groupId>org.apache.httpcomponents.wso2</groupId> + <artifactId>httpclient</artifactId> + <version>4.2.5.wso2v1</version> + </dependency> </dependencies> <build> http://git-wip-us.apache.org/repos/asf/stratos/blob/64799403/extensions/load-balancer/aws-extension/src/main/conf/aws-credentials.conf ---------------------------------------------------------------------- diff --git a/extensions/load-balancer/aws-extension/src/main/conf/aws-credentials.conf b/extensions/load-balancer/aws-extension/src/main/conf/aws-credentials.conf index d9d296c..0dbcb4a 100644 --- a/extensions/load-balancer/aws-extension/src/main/conf/aws-credentials.conf +++ b/extensions/load-balancer/aws-extension/src/main/conf/aws-credentials.conf @@ -1,2 +1,4 @@ access-key= -secret-key= \ No newline at end of file +secret-key= +availability-zone= +region= \ No newline at end of file http://git-wip-us.apache.org/repos/asf/stratos/blob/64799403/extensions/load-balancer/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSHelper.java ---------------------------------------------------------------------- diff --git a/extensions/load-balancer/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSHelper.java b/extensions/load-balancer/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSHelper.java index a9af51d..438289a 100644 --- a/extensions/load-balancer/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSHelper.java +++ b/extensions/load-balancer/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSHelper.java @@ -38,10 +38,15 @@ import com.amazonaws.auth.BasicAWSCredentials; import com.amazonaws.services.elasticloadbalancing.AmazonElasticLoadBalancingClient; import com.amazonaws.services.elasticloadbalancing.model.*; +/** + * @author swapnil + * + */ public class AWSHelper { private String awsAccessKey; private String awsSecretKey; private String availabilityZone; + private String region; private BasicAWSCredentials awsCredentials; private ClientConfiguration clientConfiguration; @@ -68,6 +73,9 @@ public class AWSHelper { .getProperty(Constants.AWS_ACCESS_KEY); this.awsSecretKey = properties .getProperty(Constants.AWS_SECRET_KEY); + this.availabilityZone = properties + .getProperty(Constants.AVAILABILITY_ZONE_KEY); + this.region = properties.getProperty(Constants.REGION_KEY); } catch (IOException e) { log.error("Error reading aws configuration file."); throw new LoadBalancerExtensionException( @@ -106,6 +114,8 @@ public class AWSHelper { AmazonElasticLoadBalancingClient lbClient = new AmazonElasticLoadBalancingClient( awsCredentials, clientConfiguration); + lbClient.setEndpoint("elasticloadbalancing." + this.region + + ".amazonaws.com"); CreateLoadBalancerResult clbResult = lbClient .createLoadBalancer(createLoadBalancerRequest); @@ -113,6 +123,7 @@ public class AWSHelper { return clbResult.getDNSName(); } catch (Exception e) { log.error("Could not create load balancer : " + name + "."); + e.printStackTrace(); return null; } } @@ -366,4 +377,20 @@ public class AWSHelper { return listeners; } + + /** + * Constructs name of the load balancer to be associated with the cluster + * + * @param clusterId + * @return name of the load balancer + */ + public String getLoadBalancerName(String clusterId) { + String name = null; + int length = clusterId.length(); + int endIndex = length > 31 ? 31 : length; + name = clusterId.substring(0, endIndex); + name = name.replace('.', '-'); + + return name; + } } http://git-wip-us.apache.org/repos/asf/stratos/blob/64799403/extensions/load-balancer/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSLoadBalancer.java ---------------------------------------------------------------------- diff --git a/extensions/load-balancer/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSLoadBalancer.java b/extensions/load-balancer/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSLoadBalancer.java index 530da8e..8aafce2 100644 --- a/extensions/load-balancer/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSLoadBalancer.java +++ b/extensions/load-balancer/aws-extension/src/main/java/org/apache/stratos/aws/extension/AWSLoadBalancer.java @@ -85,6 +85,9 @@ public class AWSLoadBalancer implements LoadBalancer { // if instance id of member is not in attachedInstances // add this to instancesToAddToLoadBalancer + System.out.println("Instance Id :"); + System.out.println(member.getInstanceId()); + Instance instance = new Instance(member.getInstanceId()); if (!attachedInstances.contains(instance)) { @@ -161,8 +164,7 @@ public class AWSLoadBalancer implements LoadBalancer { } else { // Create a new load balancer for this cluster - String loadBalancerName = service.getServiceName() + "-" - + cluster.getClusterId(); + String loadBalancerName = awsHelper.getLoadBalancerName(cluster.getClusterId()); String loadBalancerDNSName = awsHelper.createLoadBalancer( loadBalancerName, listenersForThisService); @@ -171,10 +173,11 @@ public class AWSLoadBalancer implements LoadBalancer { List<Instance> instances = new ArrayList<Instance>(); - for (Member m : cluster.getMembers()) { - String instanceId = ""; // of member // after making - // changes suggested in mail + for (Member member : cluster.getMembers()) { + String instanceId = member.getInstanceId(); + System.out.println("Instance id : " + instanceId); + Instance instance = new Instance(); instance.setInstanceId(instanceId); http://git-wip-us.apache.org/repos/asf/stratos/blob/64799403/extensions/load-balancer/aws-extension/src/main/java/org/apache/stratos/aws/extension/Constants.java ---------------------------------------------------------------------- diff --git a/extensions/load-balancer/aws-extension/src/main/java/org/apache/stratos/aws/extension/Constants.java b/extensions/load-balancer/aws-extension/src/main/java/org/apache/stratos/aws/extension/Constants.java index 71c7ef7..d3c4d42 100644 --- a/extensions/load-balancer/aws-extension/src/main/java/org/apache/stratos/aws/extension/Constants.java +++ b/extensions/load-balancer/aws-extension/src/main/java/org/apache/stratos/aws/extension/Constants.java @@ -32,4 +32,6 @@ public class Constants { public static final String AWS_CREDENTIALS_FILE="aws.credentials.file"; public static final String AWS_ACCESS_KEY = "access-key"; public static final String AWS_SECRET_KEY = "secret-key"; + public static final String AVAILABILITY_ZONE_KEY = "availability-zone"; + public static final String REGION_KEY = "region"; }
