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 +}