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
