Repository: jclouds-karaf
Updated Branches:
  refs/heads/master 6bb5c5cb3 -> 086e1a0ca


JCLOUDS-1056: Added Google Compute Engine


Project: http://git-wip-us.apache.org/repos/asf/jclouds-karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds-karaf/commit/086e1a0c
Tree: http://git-wip-us.apache.org/repos/asf/jclouds-karaf/tree/086e1a0c
Diff: http://git-wip-us.apache.org/repos/asf/jclouds-karaf/diff/086e1a0c

Branch: refs/heads/master
Commit: 086e1a0caf938ec6d97d0ff0d0071f154a8dabc6
Parents: d0d62fc
Author: Ignasi Barrera <[email protected]>
Authored: Mon Jan 25 09:44:17 2016 +0100
Committer: Ignasi Barrera <[email protected]>
Committed: Mon Jan 25 11:50:51 2016 +0100

----------------------------------------------------------------------
 .../compute/ComputeCommandWithOptions.java      |  3 +++
 feature/pom.xml                                 |  1 +
 feature/src/main/resources/feature.xml          |  8 +++++++
 .../itests/MiscFeaturesInstallationTest.java    |  5 +++++
 pom.xml                                         |  5 +++++
 utils/pom.xml                                   |  4 ++++
 .../java/org/jclouds/karaf/utils/EnvHelper.java | 22 ++++++++++++++++++++
 7 files changed, 48 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds-karaf/blob/086e1a0c/commands/src/main/java/org/jclouds/karaf/commands/compute/ComputeCommandWithOptions.java
----------------------------------------------------------------------
diff --git 
a/commands/src/main/java/org/jclouds/karaf/commands/compute/ComputeCommandWithOptions.java
 
b/commands/src/main/java/org/jclouds/karaf/commands/compute/ComputeCommandWithOptions.java
index e1d6cfe..acf6dd0 100644
--- 
a/commands/src/main/java/org/jclouds/karaf/commands/compute/ComputeCommandWithOptions.java
+++ 
b/commands/src/main/java/org/jclouds/karaf/commands/compute/ComputeCommandWithOptions.java
@@ -87,6 +87,9 @@ public abstract class ComputeCommandWithOptions extends 
ComputeCommandBase {
       String apiValue = EnvHelper.getComputeApi(api);
       String identityValue = EnvHelper.getComputeIdentity(identity);
       String credentialValue = EnvHelper.getComputeCredential(credential);
+      if (providerValue.equals("google-compute-engine")) {
+         credentialValue = 
EnvHelper.getGoogleCredentialFromJsonFile(credentialValue);
+      }
       String endpointValue = EnvHelper.getComputeEndpoint(endpoint);
       boolean contextNameProvided = !Strings.isNullOrEmpty(name);
       boolean canCreateService = (!Strings.isNullOrEmpty(providerValue) || 
!Strings.isNullOrEmpty(apiValue))

http://git-wip-us.apache.org/repos/asf/jclouds-karaf/blob/086e1a0c/feature/pom.xml
----------------------------------------------------------------------
diff --git a/feature/pom.xml b/feature/pom.xml
index e99b367..f23fa93 100644
--- a/feature/pom.xml
+++ b/feature/pom.xml
@@ -139,6 +139,7 @@ limitations under the License.
                 <feature>jclouds-elastichosts-tor-p</feature>
                 <feature>jclouds-gogrid</feature>
                 <feature>jclouds-go2cloud-jhb1</feature>
+                <feature>jclouds-google-compute-engine</feature>
                 <feature>jclouds-glesys</feature>
                 <feature>jclouds-openhosting-east1</feature>
                 <feature>jclouds-rackspace-cloudfiles-us</feature>

http://git-wip-us.apache.org/repos/asf/jclouds-karaf/blob/086e1a0c/feature/src/main/resources/feature.xml
----------------------------------------------------------------------
diff --git a/feature/src/main/resources/feature.xml 
b/feature/src/main/resources/feature.xml
index fa6debc..a2f858a 100644
--- a/feature/src/main/resources/feature.xml
+++ b/feature/src/main/resources/feature.xml
@@ -327,6 +327,13 @@ limitations under the License.
         
<bundle>mvn:org.apache.jclouds.provider/digitalocean2/${jclouds.version}</bundle>
     </feature>
 
+    <feature name='jclouds-google-compute-engine' description='Components to 
access Google Compute Engine' version='${project.version}' resolver='(obr)'>
+        <feature version='${project.version}'>jclouds-compute</feature>
+        <bundle 
dependency='true'>mvn:org.apache.jclouds.api/oauth/${jclouds.version}</bundle>
+        <bundle 
dependency='true'>mvn:org.apache.jclouds.common/googlecloud/${jclouds.version}</bundle>
+        
<bundle>mvn:org.apache.jclouds.provider/google-compute-engine/${jclouds.version}</bundle>
+     </feature>
+
     <feature name='jclouds-serverlove-z1-man' description='Serverlove 
implementation targeted to Manchester' version='${project.version}' 
resolver='(obr)'>
         <feature version='${project.version}'>jclouds-compute</feature>
         <bundle 
dependency='true'>mvn:org.apache.jclouds.api/elasticstack/${jclouds.version}</bundle>
@@ -387,6 +394,7 @@ limitations under the License.
         <bundle 
dependency='true'>mvn:org.bouncycastle/bcprov-ext-jdk15on/${bcprov.version}</bundle>
         <bundle 
dependency='true'>mvn:org.apache.jclouds.driver/jclouds-bouncycastle/${jclouds.version}</bundle>
         <bundle 
dependency='true'>mvn:org.apache.jclouds.driver/jclouds-slf4j/${jclouds.version}</bundle>
+        <bundle 
dependency='true'>mvn:org.apache.jclouds.common/googlecloud/${jclouds.version}</bundle>
         
<bundle>mvn:org.apache.jclouds.driver/jclouds-jsch/${jclouds.version}</bundle>
         
<bundle>mvn:org.apache.jclouds.driver/jclouds-log4j/${jclouds.version}</bundle>
         <bundle>mvn:org.apache.jclouds.karaf/core/${project.version}</bundle>

http://git-wip-us.apache.org/repos/asf/jclouds-karaf/blob/086e1a0c/itests/src/test/java/org/jclouds/karaf/itests/MiscFeaturesInstallationTest.java
----------------------------------------------------------------------
diff --git 
a/itests/src/test/java/org/jclouds/karaf/itests/MiscFeaturesInstallationTest.java
 
b/itests/src/test/java/org/jclouds/karaf/itests/MiscFeaturesInstallationTest.java
index 8017718..c4860bc 100644
--- 
a/itests/src/test/java/org/jclouds/karaf/itests/MiscFeaturesInstallationTest.java
+++ 
b/itests/src/test/java/org/jclouds/karaf/itests/MiscFeaturesInstallationTest.java
@@ -93,4 +93,9 @@ public class MiscFeaturesInstallationTest extends 
JcloudsFeaturesTestSupport {
     public void testDigitalOcean2Feature() throws Exception {
         installAndCheckFeature("jclouds-digitalocean2");
     }
+
+    @Test
+    public void testGoogleComputeEngineFeature() throws Exception {
+        installAndCheckFeature("jclouds-google-compute-engine");
+    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-karaf/blob/086e1a0c/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index dae412b..6bdf654 100644
--- a/pom.xml
+++ b/pom.xml
@@ -543,6 +543,11 @@ limitations under the License.
         <artifactId>chef</artifactId>
         <version>${jclouds.chef.version}</version>
       </dependency>
+        <dependency>
+        <groupId>org.apache.jclouds.common</groupId>
+        <artifactId>googlecloud</artifactId>
+        <version>${jclouds.version}</version>
+      </dependency>
 
       <!-- Karaf Dependencies -->
       <dependency>

http://git-wip-us.apache.org/repos/asf/jclouds-karaf/blob/086e1a0c/utils/pom.xml
----------------------------------------------------------------------
diff --git a/utils/pom.xml b/utils/pom.xml
index 746e29f..bc66aeb 100644
--- a/utils/pom.xml
+++ b/utils/pom.xml
@@ -33,6 +33,10 @@ limitations under the License.
       <groupId>org.apache.jclouds.karaf</groupId>
       <artifactId>core</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.apache.jclouds.common</groupId>
+      <artifactId>googlecloud</artifactId>
+    </dependency>
   </dependencies>
 
 </project>

http://git-wip-us.apache.org/repos/asf/jclouds-karaf/blob/086e1a0c/utils/src/main/java/org/jclouds/karaf/utils/EnvHelper.java
----------------------------------------------------------------------
diff --git a/utils/src/main/java/org/jclouds/karaf/utils/EnvHelper.java 
b/utils/src/main/java/org/jclouds/karaf/utils/EnvHelper.java
index 54ecb39..f8cdd17 100644
--- a/utils/src/main/java/org/jclouds/karaf/utils/EnvHelper.java
+++ b/utils/src/main/java/org/jclouds/karaf/utils/EnvHelper.java
@@ -25,6 +25,12 @@ import java.util.Map;
 import java.util.Properties;
 
 import org.jclouds.Constants;
+import org.jclouds.domain.Credentials;
+import org.jclouds.googlecloud.GoogleCredentialsFromJson;
+
+import com.google.common.base.Charsets;
+import com.google.common.base.Supplier;
+import com.google.common.io.Files;
 
 public class EnvHelper {
 
@@ -92,6 +98,22 @@ public class EnvHelper {
     }
 
     /**
+     * Extracts the credential value from the Google Cloud credentials json 
file.
+     * @param jsonFile
+     * @return
+     */
+    public static String getGoogleCredentialFromJsonFile(String jsonFile) {
+        try {
+            String fileContents = Files.toString(new File(jsonFile), 
Charsets.UTF_8);
+            Supplier<Credentials> credentialSupplier = new 
GoogleCredentialsFromJson(fileContents);
+            String credential = credentialSupplier.get().credential;
+            return credential;
+         } catch (IOException e) {
+            return null;
+         }
+    }
+
+    /**
      * Returns the endpoint value and falls back to env if the specified value 
is null.
      *
      * @param endpoint

Reply via email to