You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ga...@apache.org on 2015/10/09 16:35:25 UTC

[12/32] stratos git commit: Code chamges to set endpoint of AWS Client and testing instanceId.

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 <sw...@students.iiit.ac.in>
Authored: Wed Jul 1 08:09:03 2015 +0000
Committer: swapnilpatilRajaram <sw...@students.iiit.ac.in>
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";
 }