From e0f122f2c47834b143b00b9a8dcfd1fcbb230ec7 Mon Sep 17 00:00:00 2001 From: Ryan Moore Date: Wed, 11 Feb 2015 14:25:10 -0700 Subject: [PATCH 1/3] Adding the Job status attribute to the MasterObjectList. Added a get bulk integration test to make sure that we can get objects back from ds3, and that the job status is reporting correctly. --- .../integration/BucketIntegration_Test.java | 46 ++++++++++++++++--- .../ds3client/models/bulk/JobInfo.java | 12 +++++ .../ds3client/models/bulk/JobStatus.java | 5 ++ 3 files changed, 57 insertions(+), 6 deletions(-) create mode 100644 ds3-sdk/src/main/java/com/spectralogic/ds3client/models/bulk/JobStatus.java diff --git a/ds3-sdk-integration/src/test/java/com/spectralogic/ds3client/integration/BucketIntegration_Test.java b/ds3-sdk-integration/src/test/java/com/spectralogic/ds3client/integration/BucketIntegration_Test.java index fb8079222..30490a333 100644 --- a/ds3-sdk-integration/src/test/java/com/spectralogic/ds3client/integration/BucketIntegration_Test.java +++ b/ds3-sdk-integration/src/test/java/com/spectralogic/ds3client/integration/BucketIntegration_Test.java @@ -9,18 +9,20 @@ import java.io.IOException; import java.net.URISyntaxException; +import java.nio.channels.SeekableByteChannel; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.StandardOpenOption; import java.security.SignatureException; +import java.util.UUID; +import com.spectralogic.ds3client.commands.*; +import com.spectralogic.ds3client.helpers.Ds3ClientHelpers; +import com.spectralogic.ds3client.models.bulk.JobStatus; import org.junit.BeforeClass; import org.junit.Test; import com.spectralogic.ds3client.Ds3Client; -import com.spectralogic.ds3client.commands.DeleteBucketRequest; -import com.spectralogic.ds3client.commands.GetBucketRequest; -import com.spectralogic.ds3client.commands.GetBucketResponse; -import com.spectralogic.ds3client.commands.HeadBucketRequest; -import com.spectralogic.ds3client.commands.HeadBucketResponse; -import com.spectralogic.ds3client.commands.PutBucketRequest; import com.spectralogic.ds3client.models.ListBucketResult; import com.spectralogic.ds3client.networking.FailedRequestException; import com.spectralogic.ds3client.serializer.XmlProcessingException; @@ -105,6 +107,38 @@ public void listContents() throws IOException, SignatureException, } } + @Test + public void getContents() throws IOException, SignatureException, URISyntaxException, XmlProcessingException { + final String bucketName = "test_get_contents"; + + try { + client.putBucket(new PutBucketRequest(bucketName)); + Util.loadBookTestData(client, bucketName); + + final Ds3ClientHelpers helpers = Ds3ClientHelpers.wrap(client); + + final Ds3ClientHelpers.Job job = helpers.startReadAllJob(bucketName); + + final UUID jobId = job.getJobId(); + + job.transfer(new Ds3ClientHelpers.ObjectChannelBuilder() { + @Override + public SeekableByteChannel buildChannel(final String key) throws IOException { + + final Path filePath = Files.createTempFile("ds3", key); + + return Files.newByteChannel(filePath, StandardOpenOption.DELETE_ON_CLOSE, StandardOpenOption.WRITE); + } + }); + + final GetJobResponse jobResponse = client.getJob(new GetJobRequest(jobId)); + assertThat(jobResponse.getMasterObjectList().getStatus(), is(JobStatus.COMPLETED)); + + } finally { + Util.deleteAllContents(client, bucketName); + } + } + @Test public void negativeDeleteNonEmptyBucket() throws IOException, SignatureException, XmlProcessingException, URISyntaxException { diff --git a/ds3-sdk/src/main/java/com/spectralogic/ds3client/models/bulk/JobInfo.java b/ds3-sdk/src/main/java/com/spectralogic/ds3client/models/bulk/JobInfo.java index 324f2480f..b73930b0b 100644 --- a/ds3-sdk/src/main/java/com/spectralogic/ds3client/models/bulk/JobInfo.java +++ b/ds3-sdk/src/main/java/com/spectralogic/ds3client/models/bulk/JobInfo.java @@ -62,9 +62,13 @@ public class JobInfo { @JsonProperty("ChunkClientProcessingOrderGuarantee") private ChunkClientProcessingOrderGuarantee chunkClientProcessingOrderGuarantee; + @JsonProperty("Status") + private JobStatus status; + public UUID getJobId() { return this.jobId; } + public void setJobId(final UUID jobId) { this.jobId = jobId; } @@ -164,4 +168,12 @@ public UUID getUserId() { public void setUserId(final UUID userId) { this.userId = userId; } + + public JobStatus getStatus() { + return status; + } + + public void setStatus(JobStatus status) { + this.status = status; + } } diff --git a/ds3-sdk/src/main/java/com/spectralogic/ds3client/models/bulk/JobStatus.java b/ds3-sdk/src/main/java/com/spectralogic/ds3client/models/bulk/JobStatus.java new file mode 100644 index 000000000..2b805983f --- /dev/null +++ b/ds3-sdk/src/main/java/com/spectralogic/ds3client/models/bulk/JobStatus.java @@ -0,0 +1,5 @@ +package com.spectralogic.ds3client.models.bulk; + +public enum JobStatus { + IN_PROGRESS, COMPLETED, CANCELED +} From c749fcefc8d833590c8e81fa5a581972dbb68e2c Mon Sep 17 00:00:00 2001 From: Ryan Moore Date: Wed, 11 Feb 2015 14:25:55 -0700 Subject: [PATCH 2/3] Updating the version rev. --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 47c87f8ab..10b79eb96 100644 --- a/build.gradle +++ b/build.gradle @@ -15,7 +15,7 @@ allprojects { group = 'com.spectralogic.ds3' - version = '0.7.7-SNAPSHOT' + version = '0.7.8-SNAPSHOT' } subprojects { From 2acb90ad83cb04fe1ed04f73eb0b97b83ce868d2 Mon Sep 17 00:00:00 2001 From: Ryan Moore Date: Wed, 11 Feb 2015 14:45:16 -0700 Subject: [PATCH 3/3] Reving to 1.1 since the job status attribute is a 1.1 feature. --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 10b79eb96..c158bb713 100644 --- a/build.gradle +++ b/build.gradle @@ -15,7 +15,7 @@ allprojects { group = 'com.spectralogic.ds3' - version = '0.7.8-SNAPSHOT' + version = '1.1.0-SNAPSHOT' } subprojects {