Changes to read AWS credentials from config file.
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/313db960 Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/313db960 Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/313db960 Branch: refs/heads/gsoc-projects-2015 Commit: 313db960f35607180a5e8cdb70ac761a1ace1dbe Parents: 31f5a72 Author: swapnilpatilRajaram <[email protected]> Authored: Thu Jun 18 15:36:17 2015 +0000 Committer: swapnilpatilRajaram <[email protected]> Committed: Thu Jun 18 15:36:17 2015 +0000 ---------------------------------------------------------------------- .../load-balancer/aws-extension/INSTALL.md | 8 +++-- extensions/load-balancer/aws-extension/pom.xml | 2 +- .../aws-extension/src/main/assembly/bin.xml | 1 + .../aws-extension/src/main/bin/aws-extension.sh | 1 + .../src/main/conf/aws-credentials.conf | 2 ++ .../apache/stratos/aws/extension/AWSHelper.java | 35 +++++++++++++++++++- .../stratos/aws/extension/AWSLoadBalancer.java | 7 ++-- .../apache/stratos/aws/extension/Constants.java | 5 ++- 8 files changed, 53 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/313db960/extensions/load-balancer/aws-extension/INSTALL.md ---------------------------------------------------------------------- diff --git a/extensions/load-balancer/aws-extension/INSTALL.md b/extensions/load-balancer/aws-extension/INSTALL.md index 444f619..0ab671f 100644 --- a/extensions/load-balancer/aws-extension/INSTALL.md +++ b/extensions/load-balancer/aws-extension/INSTALL.md @@ -24,7 +24,9 @@ below steps to proceed with the installation: 1. Extract org.apache.stratos.aws.extension-<version>.zip to a desired location: <aws-extension-home>. -2. Open <aws-extension-home>/bin/aws-extension.sh file in a text editor and update following system properties: +2. Open <aws-extension-home>/conf/aws-credentials.conf file in text editor and update AWS access key and secret key information. + +3. Open <aws-extension-home>/bin/aws-extension.sh file in a text editor and update following system properties: ``` # Enable/disable cep statistics publisher: -Dcep.stats.publisher.enabled=false @@ -35,9 +37,9 @@ below steps to proceed with the installation: -Dnetwork.partition.id=network-partition-1 ``` -3. Open <aws-extension-home>/conf/jndi.properties file in a text editor and update message broker information: +4. Open <aws-extension-home>/conf/jndi.properties file in a text editor and update message broker information: ``` java.naming.provider.url=tcp://localhost:61616 ``` -4. Run <aws-extension-home>/bin/aws-extension.sh as the root user. +5. Run <aws-extension-home>/bin/aws-extension.sh as the root user. http://git-wip-us.apache.org/repos/asf/stratos/blob/313db960/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 68f0ad1..282c8ce 100644 --- a/extensions/load-balancer/aws-extension/pom.xml +++ b/extensions/load-balancer/aws-extension/pom.xml @@ -69,7 +69,7 @@ <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk</artifactId> - <version>1.9.24</version> + <version>1.8.8</version> </dependency> </dependencies> http://git-wip-us.apache.org/repos/asf/stratos/blob/313db960/extensions/load-balancer/aws-extension/src/main/assembly/bin.xml ---------------------------------------------------------------------- diff --git a/extensions/load-balancer/aws-extension/src/main/assembly/bin.xml b/extensions/load-balancer/aws-extension/src/main/assembly/bin.xml index b6c924b..036ad1c 100644 --- a/extensions/load-balancer/aws-extension/src/main/assembly/bin.xml +++ b/extensions/load-balancer/aws-extension/src/main/assembly/bin.xml @@ -41,6 +41,7 @@ <include>jndi.properties</include> <include>log4j.properties</include> <include>thrift-client-config.xml</include> + <include>aws-credentials.conf</include> </includes> </fileSet> <fileSet> http://git-wip-us.apache.org/repos/asf/stratos/blob/313db960/extensions/load-balancer/aws-extension/src/main/bin/aws-extension.sh ---------------------------------------------------------------------- diff --git a/extensions/load-balancer/aws-extension/src/main/bin/aws-extension.sh b/extensions/load-balancer/aws-extension/src/main/bin/aws-extension.sh index 6c6c2e7..4451ace 100755 --- a/extensions/load-balancer/aws-extension/src/main/bin/aws-extension.sh +++ b/extensions/load-balancer/aws-extension/src/main/bin/aws-extension.sh @@ -26,6 +26,7 @@ lib_path=${script_path}/../lib/ class_path=`echo ${lib_path}/*.jar | tr ' ' ':'` properties="-Djndi.properties.dir=${script_path}/../conf -Dlog4j.properties.file.path=${script_path}/../conf/log4j.properties + -Daws.credentials.file=${script_path}/../conf/aws-credentials.conf -Djavax.net.ssl.trustStore=${script_path}/../security/client-truststore.jks -Djavax.net.ssl.trustStorePassword=wso2carbon -Dthrift.client.config.file.path=${script_path}/../conf/thrift-client-config.xml http://git-wip-us.apache.org/repos/asf/stratos/blob/313db960/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 new file mode 100644 index 0000000..d9d296c --- /dev/null +++ b/extensions/load-balancer/aws-extension/src/main/conf/aws-credentials.conf @@ -0,0 +1,2 @@ +access-key= +secret-key= \ No newline at end of file http://git-wip-us.apache.org/repos/asf/stratos/blob/313db960/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 16ac7ae..a9af51d 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 @@ -19,14 +19,19 @@ package org.apache.stratos.aws.extension; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; import java.util.ArrayList; import java.util.HashSet; import java.util.List; +import java.util.Properties; import java.util.Set; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.stratos.load.balancer.common.domain.*; +import org.apache.stratos.load.balancer.extension.api.exception.LoadBalancerExtensionException; import com.amazonaws.ClientConfiguration; import com.amazonaws.auth.BasicAWSCredentials; @@ -43,10 +48,38 @@ public class AWSHelper { private static final Log log = LogFactory.getLog(AWSHelper.class); - public AWSHelper() { + public AWSHelper() throws LoadBalancerExtensionException { // Read values for awsAccessKey, awsSecretKey etc. from config file // Throw a proper exception / log warning if cant read credentials ? + String awsCredentialsFile = System + .getProperty(Constants.AWS_CREDENTIALS_FILE); + + Properties properties = new Properties(); + + InputStream inputStream = null; + + try { + inputStream = new FileInputStream(awsCredentialsFile); + + properties.load(inputStream); + + this.awsAccessKey = properties + .getProperty(Constants.AWS_ACCESS_KEY); + this.awsSecretKey = properties + .getProperty(Constants.AWS_SECRET_KEY); + } catch (IOException e) { + log.error("Error reading aws configuration file."); + throw new LoadBalancerExtensionException( + "Error reading aws configuration file.", e); + } finally { + try { + inputStream.close(); + } catch (Exception e) { + log.warn("Failed to close input stream to aws configuration file."); + } + } + awsCredentials = new BasicAWSCredentials(awsAccessKey, awsSecretKey); clientConfiguration = new ClientConfiguration(); } http://git-wip-us.apache.org/repos/asf/stratos/blob/313db960/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 b3656b4..c2e9e45 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 @@ -42,7 +42,7 @@ public class AWSLoadBalancer implements LoadBalancer { private AWSHelper awsHelper; - public AWSLoadBalancer() { + public AWSLoadBalancer() throws LoadBalancerExtensionException { clusterIdToLoadBalancerMap = new HashMap<String, String>(); awsHelper = new AWSHelper(); } @@ -50,6 +50,8 @@ public class AWSLoadBalancer implements LoadBalancer { public boolean configure(Topology topology) throws LoadBalancerExtensionException { + log.info("AWS load balancer extension re-configured."); + for (Service service : topology.getServices()) { List<Listener> listenersForThisService = awsHelper @@ -190,11 +192,12 @@ public class AWSLoadBalancer implements LoadBalancer { public void start() throws LoadBalancerExtensionException { - log.info("Started AWS load balancer extension."); + log.info("AWS load balancer extension started."); } public void reload() throws LoadBalancerExtensionException { // Check what is appropriate to do here. + log.info("AWS load balancer extension reloaded."); } public void stop() throws LoadBalancerExtensionException { http://git-wip-us.apache.org/repos/asf/stratos/blob/313db960/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 0e501f2..71c7ef7 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 @@ -20,7 +20,7 @@ package org.apache.stratos.aws.extension; /** - * HA proxy extension constants. + * AWS proxy extension constants. */ public class Constants { public static final String CEP_STATS_PUBLISHER_ENABLED = "cep.stats.publisher.enabled"; @@ -29,4 +29,7 @@ public class Constants { public static final String NETWORK_PARTITION_ID = "network.partition.id"; public static final String CLUSTER_ID = "cluster.id"; public static final String SERVICE_NAME = "service.name"; + 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"; }
