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";
 }

Reply via email to