Allow S3ClientLiveTest (and AWSS3ClientLiveTest) to use a session token.
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/34d272ac Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/34d272ac Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/34d272ac Branch: refs/heads/master Commit: 34d272ac801971ef6115b01ab9c3984b5d523f7e Parents: f770455 Author: Jesse Glick <[email protected]> Authored: Tue Jul 10 17:59:25 2018 -0400 Committer: Ignasi Barrera <[email protected]> Committed: Wed Jul 11 09:35:34 2018 -0700 ---------------------------------------------------------------------- apis/s3/pom.xml | 2 ++ .../java/org/jclouds/s3/S3ClientLiveTest.java | 28 ++++++++++++++++++++ providers/aws-s3/README.md | 21 +++++++++++++++ providers/aws-s3/README.txt | 8 ------ providers/aws-s3/pom.xml | 2 ++ 5 files changed, 53 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds/blob/34d272ac/apis/s3/pom.xml ---------------------------------------------------------------------- diff --git a/apis/s3/pom.xml b/apis/s3/pom.xml index 07fcec7..e1a336c 100644 --- a/apis/s3/pom.xml +++ b/apis/s3/pom.xml @@ -37,6 +37,7 @@ <test.s3.build-version /> <test.s3.identity>${test.aws.identity}</test.s3.identity> <test.s3.credential>${test.aws.credential}</test.s3.credential> + <test.s3.sessionToken>${test.aws.sessionToken}</test.s3.sessionToken> <jclouds.osgi.export>org.jclouds.s3*;version="${project.version}"</jclouds.osgi.export> <jclouds.osgi.import>org.jclouds*;version="${project.version}",*</jclouds.osgi.import> @@ -131,6 +132,7 @@ <test.s3.build-version>${test.s3.build-version}</test.s3.build-version> <test.s3.identity>${test.s3.identity}</test.s3.identity> <test.s3.credential>${test.s3.credential}</test.s3.credential> + <test.s3.sessionToken>${test.s3.sessionToken}</test.s3.sessionToken> </systemPropertyVariables> </configuration> </execution> http://git-wip-us.apache.org/repos/asf/jclouds/blob/34d272ac/apis/s3/src/test/java/org/jclouds/s3/S3ClientLiveTest.java ---------------------------------------------------------------------- diff --git a/apis/s3/src/test/java/org/jclouds/s3/S3ClientLiveTest.java b/apis/s3/src/test/java/org/jclouds/s3/S3ClientLiveTest.java index ede5551..b6b53e0 100644 --- a/apis/s3/src/test/java/org/jclouds/s3/S3ClientLiveTest.java +++ b/apis/s3/src/test/java/org/jclouds/s3/S3ClientLiveTest.java @@ -37,15 +37,19 @@ import java.net.URI; import java.net.URL; import java.util.Date; import java.util.Map; +import java.util.Properties; import java.util.Set; import java.util.UUID; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeoutException; import java.util.concurrent.TimeUnit; +import org.jclouds.ContextBuilder; +import org.jclouds.aws.domain.SessionCredentials; import org.jclouds.blobstore.KeyNotFoundException; import org.jclouds.blobstore.domain.Blob; import org.jclouds.blobstore.integration.internal.BaseBlobStoreIntegrationTest; +import org.jclouds.domain.Credentials; import org.jclouds.http.HttpResponseException; import org.jclouds.io.ByteStreams2; import org.jclouds.io.Payload; @@ -66,6 +70,7 @@ import org.jclouds.util.Strings2; import org.jclouds.utils.TestUtils; import org.testng.annotations.Test; +import com.google.common.base.Supplier; import com.google.common.base.Throwables; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; @@ -80,10 +85,33 @@ public class S3ClientLiveTest extends BaseBlobStoreIntegrationTest { public static final String DEFAULT_OWNER_ID = "abc123"; private static final ByteSource oneHundredOneConstitutions = TestUtils.randomByteSource().slice(0, 5 * 1024 * 1024 + 1); + protected String sessionToken; + public S3ClientLiveTest() { this.provider = "s3"; } + @Override + protected Properties setupProperties() { + Properties overrides = super.setupProperties(); + sessionToken = setIfTestSystemPropertyPresent(overrides, provider + ".sessionToken"); + return overrides; + } + + @Override + protected ContextBuilder newBuilder() { + ContextBuilder builder = super.newBuilder(); + if (sessionToken != null) { + builder.credentialsSupplier(new Supplier<Credentials>() { + @Override + public Credentials get() { + return SessionCredentials.builder().identity(identity).credential(credential).sessionToken(sessionToken).build(); + } + }); + } + return builder; + } + public S3Client getApi() { return view.unwrapApi(S3Client.class); } http://git-wip-us.apache.org/repos/asf/jclouds/blob/34d272ac/providers/aws-s3/README.md ---------------------------------------------------------------------- diff --git a/providers/aws-s3/README.md b/providers/aws-s3/README.md new file mode 100644 index 0000000..84e9968 --- /dev/null +++ b/providers/aws-s3/README.md @@ -0,0 +1,21 @@ +# The jclouds provider for Amazon's S3 (http://aws.amazon.com/s3/) + +Expects the jclouds s3 API to be present on your application's classpath. + +* **TODO**: Implementation status. +* **TODO**: Supported features. +* **TODO**: Usage example. + +## Running live tests + +Try + +```sh +mvn clean install -Plive -pl :aws-s3 -Dtest=AWSS3ClientLiveTest -Dtest.aws-s3.identity=<aws_access_key_id> -Dtest.aws-s3.credential=<aws_secret_access_key> +``` + +optionally adding + +```sh +-Dtest.aws-s3.sessionToken=<aws_session_token> +``` http://git-wip-us.apache.org/repos/asf/jclouds/blob/34d272ac/providers/aws-s3/README.txt ---------------------------------------------------------------------- diff --git a/providers/aws-s3/README.txt b/providers/aws-s3/README.txt deleted file mode 100644 index edcab1d..0000000 --- a/providers/aws-s3/README.txt +++ /dev/null @@ -1,8 +0,0 @@ -# -# The jclouds provider for Amazon's S3 (http://aws.amazon.com/s3/). -# -# Expects the jclouds s3 API to be present on your application's classpath. -# -# TODO: Implementation status. -# TODO: Supported features. -# TODO: Usage example. http://git-wip-us.apache.org/repos/asf/jclouds/blob/34d272ac/providers/aws-s3/pom.xml ---------------------------------------------------------------------- diff --git a/providers/aws-s3/pom.xml b/providers/aws-s3/pom.xml index 8f555bc..e0e9f08 100644 --- a/providers/aws-s3/pom.xml +++ b/providers/aws-s3/pom.xml @@ -40,6 +40,7 @@ <test.aws-s3.build-version /> <test.aws-s3.identity>${test.aws.identity}</test.aws-s3.identity> <test.aws-s3.credential>${test.aws.credential}</test.aws-s3.credential> + <test.aws-s3.sessionToken>${test.aws.sessionToken}</test.aws-s3.sessionToken> <test.blobstore.container-count>25</test.blobstore.container-count> <jclouds.osgi.export>org.jclouds.aws.s3*;version="${project.version}"</jclouds.osgi.export> @@ -137,6 +138,7 @@ <test.aws-s3.build-version>${test.aws-s3.build-version}</test.aws-s3.build-version> <test.aws-s3.identity>${test.aws-s3.identity}</test.aws-s3.identity> <test.aws-s3.credential>${test.aws-s3.credential}</test.aws-s3.credential> + <test.aws-s3.sessionToken>${test.aws-s3.sessionToken}</test.aws-s3.sessionToken> <test.initializer>${test.initializer}</test.initializer> <jclouds.blobstore.httpstream.url>${jclouds.blobstore.httpstream.url}</jclouds.blobstore.httpstream.url> <jclouds.blobstore.httpstream.md5>${jclouds.blobstore.httpstream.md5}</jclouds.blobstore.httpstream.md5>
