Repository: jclouds-labs-aws Updated Branches: refs/heads/master 95d9b002e -> 7ca9836a4
Updating documentation and a configuration property name Follow-on from 95d9b00 Project: http://git-wip-us.apache.org/repos/asf/jclouds-labs-aws/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds-labs-aws/commit/7ca9836a Tree: http://git-wip-us.apache.org/repos/asf/jclouds-labs-aws/tree/7ca9836a Diff: http://git-wip-us.apache.org/repos/asf/jclouds-labs-aws/diff/7ca9836a Branch: refs/heads/master Commit: 7ca9836a44c22ba38bda41075e31d7636a0a8d09 Parents: 95d9b00 Author: Roman Coedo <[email protected]> Authored: Mon Jul 28 17:04:55 2014 +0200 Committer: Andrew Phillips <[email protected]> Committed: Mon Jul 28 18:18:11 2014 -0400 ---------------------------------------------------------------------- .../glacier/blobstore/GlacierBlobStore.java | 57 ++++++++++---------- ...hiveMetadataCollectionToStorageMetadata.java | 3 -- .../ArchiveMetadataToBlobMetadata.java | 3 -- ...erOptionsToInventoryRetrievalJobRequest.java | 3 -- ...ginatedVaultCollectionToStorageMetadata.java | 3 -- .../VaultMetadataToStorageMetadata.java | 3 -- .../strategy/MultipartUploadStrategy.java | 3 -- .../blobstore/strategy/PollingStrategy.java | 3 -- .../blobstore/strategy/SlicingStrategy.java | 3 -- .../strategy/internal/BasePollingStrategy.java | 1 - .../strategy/internal/BaseSlicingStrategy.java | 1 - .../strategy/internal/ClearVaultStrategy.java | 19 +++---- .../SequentialMultipartUploadStrategy.java | 1 - 13 files changed, 39 insertions(+), 64 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds-labs-aws/blob/7ca9836a/glacier/src/main/java/org/jclouds/glacier/blobstore/GlacierBlobStore.java ---------------------------------------------------------------------- diff --git a/glacier/src/main/java/org/jclouds/glacier/blobstore/GlacierBlobStore.java b/glacier/src/main/java/org/jclouds/glacier/blobstore/GlacierBlobStore.java index eba0732..c4cd152 100644 --- a/glacier/src/main/java/org/jclouds/glacier/blobstore/GlacierBlobStore.java +++ b/glacier/src/main/java/org/jclouds/glacier/blobstore/GlacierBlobStore.java @@ -62,7 +62,7 @@ public class GlacierBlobStore extends BaseBlobStore { public static final long DEFAULT_INVENTORY_UPDATE_TIME = TimeUnit.HOURS.toMillis(24); @Inject(optional = true) - @Named("jclouds.inventory.update.time") + @Named("jclouds.glacier.inventory.update.time") private final long inventoryUpdateTime = DEFAULT_INVENTORY_UPDATE_TIME; private final GlacierClient sync; @@ -90,11 +90,13 @@ public class GlacierBlobStore extends BaseBlobStore { } /** - * Delete the container and all its blobs. - * This may be a VERY long duration method. + * Deletes the container and all its blobs. + * Inventories will be retrieved until the container is gone. Since inventories need 24 hours to be updated this + * operation may take days. * * @param container * container name + * @see <a href="http://aws.amazon.com/glacier/faqs/#data-inventories" /> */ @Override public void deleteContainer(String container) { @@ -114,23 +116,15 @@ public class GlacierBlobStore extends BaseBlobStore { }, inventoryUpdateTime).apply(container), "%s still exists after deleting!", container); } - /** - * Delete the container if empty. - * This method is idempotent. - * - * @param container - * container name - * @return false if the container still exists, true otherwise - */ @Override protected boolean deleteAndVerifyContainerGone(String container) { return sync.deleteVault(container); } /** - * Lists the containers + * Lists the containers. * - * @return the container list + * @return a PageSet of StorageMetadata */ @Override public PageSet<? extends StorageMetadata> list() { @@ -138,7 +132,8 @@ public class GlacierBlobStore extends BaseBlobStore { } /** - * This implementation invokes {@link GlacierClient#describeVault(String)} + * Checks if the container exists. + * This implementation invokes {@link GlacierClient#describeVault(String)}. * * @param container * container name @@ -150,7 +145,8 @@ public class GlacierBlobStore extends BaseBlobStore { } /** - * Creates a container + * Creates a container. + * Location is currently ignored. * * @param location * currently ignored @@ -164,7 +160,8 @@ public class GlacierBlobStore extends BaseBlobStore { } /** - * Creates a container + * Creates a container. + * Location and options are currently ignored. * * @param location * currently ignored @@ -181,14 +178,16 @@ public class GlacierBlobStore extends BaseBlobStore { } /** - * Lists the blobs in the container - * This is a long duration method. The result may be inaccurate since it depends on the Glacier Inventory status. + * Lists the blobs in the container. + * An inventory will be retrieved to obtain the list. Note that this will take hours and the result may be + * inaccurate (Inventories are updated every 24 hours). * * @param container * container name * @param listContainerOptions * list options * @return the blob list + * @see <a href="http://aws.amazon.com/glacier/faqs/#data-inventories" /> */ @Override public PageSet<? extends StorageMetadata> list(String container, ListContainerOptions listContainerOptions) { @@ -204,14 +203,16 @@ public class GlacierBlobStore extends BaseBlobStore { } /** - * This implementation invokes {@link GlacierBlobStore#blobMetadata} - * This is a long duration method. The result may be inaccurate since it depends on the Glacier Inventory status. + * Checks if the blob exists in the container. + * An inventory will be retrieved to obtain the blob list and the method will iterate through it. This operation + * will take several hours and the result may be inaccurate (Inventories are updated every 24 hours). * * @param container * container name * @param key * blob key * @return true if the blob exists, false otherwise + * @see <a href="http://aws.amazon.com/glacier/faqs/#data-inventories" /> */ @Override public boolean blobExists(String container, String key) { @@ -219,7 +220,7 @@ public class GlacierBlobStore extends BaseBlobStore { } /** - * This implementation invokes {@link GlacierClient#uploadArchive} + * Stores a blob in a container. * * @param container * container name @@ -233,14 +234,14 @@ public class GlacierBlobStore extends BaseBlobStore { } /** - * Puts the blob in the container. + * Stores the blob in a container. * * @param container * container name * @param blob * blob to upload * @param options - * upload options. If multipart is set, multiple rpcs will be issued. + * upload options. * @return the blob name */ @Override @@ -253,13 +254,15 @@ public class GlacierBlobStore extends BaseBlobStore { /** * Retrieves the blob metadata. - * This is a long duration method. The result may be inaccurate since it depends on the Glacier Inventory status. + * An inventory will be retrieved to obtain the blob list and the method will iterate through it. This operation + * will take several hours and the result may be inaccurate (Inventories are updated every 24 hours). * * @param container * container name * @param key * blob name * @return null if the blob doesn't exist, the blob metadata otherwise + * @see <a href="http://aws.amazon.com/glacier/faqs/#data-inventories" /> */ @Override public BlobMetadata blobMetadata(String container, String key) { @@ -285,14 +288,12 @@ public class GlacierBlobStore extends BaseBlobStore { /** * Retrieves the blob - * This is a long duration method. + * This operation will take several hours. * * @param container * container name * @param key * blob name - * @param getOptions - * getOptions * @return null if the blob doesn't exist or the archive retrieval fails, the blob otherwise */ @Override @@ -315,7 +316,7 @@ public class GlacierBlobStore extends BaseBlobStore { } /** - * This implementation invokes {@link GlacierClient#deleteArchive(String, String)} + * Deletes the blob. * * @param container * container name http://git-wip-us.apache.org/repos/asf/jclouds-labs-aws/blob/7ca9836a/glacier/src/main/java/org/jclouds/glacier/blobstore/functions/ArchiveMetadataCollectionToStorageMetadata.java ---------------------------------------------------------------------- diff --git a/glacier/src/main/java/org/jclouds/glacier/blobstore/functions/ArchiveMetadataCollectionToStorageMetadata.java b/glacier/src/main/java/org/jclouds/glacier/blobstore/functions/ArchiveMetadataCollectionToStorageMetadata.java index 06d6884..2df2016 100644 --- a/glacier/src/main/java/org/jclouds/glacier/blobstore/functions/ArchiveMetadataCollectionToStorageMetadata.java +++ b/glacier/src/main/java/org/jclouds/glacier/blobstore/functions/ArchiveMetadataCollectionToStorageMetadata.java @@ -24,9 +24,6 @@ import org.jclouds.glacier.domain.ArchiveMetadataCollection; import com.google.common.base.Function; import com.google.common.collect.Iterables; -/** - * Converts ArchiveMetadataCollection into PageSet<StorageMetadata> - */ public class ArchiveMetadataCollectionToStorageMetadata implements Function<ArchiveMetadataCollection, PageSet<? extends StorageMetadata>> { @Override http://git-wip-us.apache.org/repos/asf/jclouds-labs-aws/blob/7ca9836a/glacier/src/main/java/org/jclouds/glacier/blobstore/functions/ArchiveMetadataToBlobMetadata.java ---------------------------------------------------------------------- diff --git a/glacier/src/main/java/org/jclouds/glacier/blobstore/functions/ArchiveMetadataToBlobMetadata.java b/glacier/src/main/java/org/jclouds/glacier/blobstore/functions/ArchiveMetadataToBlobMetadata.java index f8b9a58..255252a 100644 --- a/glacier/src/main/java/org/jclouds/glacier/blobstore/functions/ArchiveMetadataToBlobMetadata.java +++ b/glacier/src/main/java/org/jclouds/glacier/blobstore/functions/ArchiveMetadataToBlobMetadata.java @@ -25,9 +25,6 @@ import org.jclouds.io.payloads.BaseMutableContentMetadata; import com.google.common.base.Function; import com.google.common.collect.ImmutableMap; -/** - * Converts ArchiveMetadata into BlobMetadata - */ public class ArchiveMetadataToBlobMetadata implements Function<ArchiveMetadata, MutableBlobMetadata> { @Override public MutableBlobMetadata apply(ArchiveMetadata from) { http://git-wip-us.apache.org/repos/asf/jclouds-labs-aws/blob/7ca9836a/glacier/src/main/java/org/jclouds/glacier/blobstore/functions/ListContainerOptionsToInventoryRetrievalJobRequest.java ---------------------------------------------------------------------- diff --git a/glacier/src/main/java/org/jclouds/glacier/blobstore/functions/ListContainerOptionsToInventoryRetrievalJobRequest.java b/glacier/src/main/java/org/jclouds/glacier/blobstore/functions/ListContainerOptionsToInventoryRetrievalJobRequest.java index 3c0ad4b..4bf5297 100644 --- a/glacier/src/main/java/org/jclouds/glacier/blobstore/functions/ListContainerOptionsToInventoryRetrievalJobRequest.java +++ b/glacier/src/main/java/org/jclouds/glacier/blobstore/functions/ListContainerOptionsToInventoryRetrievalJobRequest.java @@ -21,9 +21,6 @@ import org.jclouds.glacier.domain.InventoryRetrievalJobRequest; import com.google.common.base.Function; -/** - * Converts ListContainerOptions into InventoryRetrievalJobRequest - */ public class ListContainerOptionsToInventoryRetrievalJobRequest implements Function<ListContainerOptions, InventoryRetrievalJobRequest> { @Override http://git-wip-us.apache.org/repos/asf/jclouds-labs-aws/blob/7ca9836a/glacier/src/main/java/org/jclouds/glacier/blobstore/functions/PaginatedVaultCollectionToStorageMetadata.java ---------------------------------------------------------------------- diff --git a/glacier/src/main/java/org/jclouds/glacier/blobstore/functions/PaginatedVaultCollectionToStorageMetadata.java b/glacier/src/main/java/org/jclouds/glacier/blobstore/functions/PaginatedVaultCollectionToStorageMetadata.java index 51aba1b..67e4d9c 100644 --- a/glacier/src/main/java/org/jclouds/glacier/blobstore/functions/PaginatedVaultCollectionToStorageMetadata.java +++ b/glacier/src/main/java/org/jclouds/glacier/blobstore/functions/PaginatedVaultCollectionToStorageMetadata.java @@ -24,9 +24,6 @@ import org.jclouds.glacier.domain.PaginatedVaultCollection; import com.google.common.base.Function; import com.google.common.collect.Iterables; -/** - * Converts PaginatedVaultCollection into PageSet<StorageMetadata> - */ public class PaginatedVaultCollectionToStorageMetadata implements Function<PaginatedVaultCollection, PageSet<? extends StorageMetadata>> { @Override http://git-wip-us.apache.org/repos/asf/jclouds-labs-aws/blob/7ca9836a/glacier/src/main/java/org/jclouds/glacier/blobstore/functions/VaultMetadataToStorageMetadata.java ---------------------------------------------------------------------- diff --git a/glacier/src/main/java/org/jclouds/glacier/blobstore/functions/VaultMetadataToStorageMetadata.java b/glacier/src/main/java/org/jclouds/glacier/blobstore/functions/VaultMetadataToStorageMetadata.java index 873747d..54e8ba3 100644 --- a/glacier/src/main/java/org/jclouds/glacier/blobstore/functions/VaultMetadataToStorageMetadata.java +++ b/glacier/src/main/java/org/jclouds/glacier/blobstore/functions/VaultMetadataToStorageMetadata.java @@ -24,9 +24,6 @@ import org.jclouds.glacier.domain.VaultMetadata; import com.google.common.base.Function; import com.google.common.collect.ImmutableMap; -/** - * Converts VaultMetadata into StorageMetadata - */ public class VaultMetadataToStorageMetadata implements Function<VaultMetadata, StorageMetadata> { @Override public StorageMetadata apply(VaultMetadata vault) { http://git-wip-us.apache.org/repos/asf/jclouds-labs-aws/blob/7ca9836a/glacier/src/main/java/org/jclouds/glacier/blobstore/strategy/MultipartUploadStrategy.java ---------------------------------------------------------------------- diff --git a/glacier/src/main/java/org/jclouds/glacier/blobstore/strategy/MultipartUploadStrategy.java b/glacier/src/main/java/org/jclouds/glacier/blobstore/strategy/MultipartUploadStrategy.java index fd6b723..3afb970 100644 --- a/glacier/src/main/java/org/jclouds/glacier/blobstore/strategy/MultipartUploadStrategy.java +++ b/glacier/src/main/java/org/jclouds/glacier/blobstore/strategy/MultipartUploadStrategy.java @@ -18,9 +18,6 @@ package org.jclouds.glacier.blobstore.strategy; import org.jclouds.blobstore.domain.Blob; -/** - * Strategy for Multipart Uploads - */ public interface MultipartUploadStrategy { String execute(String container, Blob blob); } http://git-wip-us.apache.org/repos/asf/jclouds-labs-aws/blob/7ca9836a/glacier/src/main/java/org/jclouds/glacier/blobstore/strategy/PollingStrategy.java ---------------------------------------------------------------------- diff --git a/glacier/src/main/java/org/jclouds/glacier/blobstore/strategy/PollingStrategy.java b/glacier/src/main/java/org/jclouds/glacier/blobstore/strategy/PollingStrategy.java index f5be082..b208809 100644 --- a/glacier/src/main/java/org/jclouds/glacier/blobstore/strategy/PollingStrategy.java +++ b/glacier/src/main/java/org/jclouds/glacier/blobstore/strategy/PollingStrategy.java @@ -16,9 +16,6 @@ */ package org.jclouds.glacier.blobstore.strategy; -/** - * Strategy for polling jobs - */ public interface PollingStrategy { boolean waitForSuccess(String vault, String job) throws InterruptedException; } http://git-wip-us.apache.org/repos/asf/jclouds-labs-aws/blob/7ca9836a/glacier/src/main/java/org/jclouds/glacier/blobstore/strategy/SlicingStrategy.java ---------------------------------------------------------------------- diff --git a/glacier/src/main/java/org/jclouds/glacier/blobstore/strategy/SlicingStrategy.java b/glacier/src/main/java/org/jclouds/glacier/blobstore/strategy/SlicingStrategy.java index ab986e2..03dc96c 100644 --- a/glacier/src/main/java/org/jclouds/glacier/blobstore/strategy/SlicingStrategy.java +++ b/glacier/src/main/java/org/jclouds/glacier/blobstore/strategy/SlicingStrategy.java @@ -18,9 +18,6 @@ package org.jclouds.glacier.blobstore.strategy; import org.jclouds.io.Payload; -/** - * Strategy for payload slicing - */ public interface SlicingStrategy { public static final int MAX_LIST_PARTS_RETURNED = 1000; public static final int MAX_LIST_MPU_RETURNED = 1000; http://git-wip-us.apache.org/repos/asf/jclouds-labs-aws/blob/7ca9836a/glacier/src/main/java/org/jclouds/glacier/blobstore/strategy/internal/BasePollingStrategy.java ---------------------------------------------------------------------- diff --git a/glacier/src/main/java/org/jclouds/glacier/blobstore/strategy/internal/BasePollingStrategy.java b/glacier/src/main/java/org/jclouds/glacier/blobstore/strategy/internal/BasePollingStrategy.java index d4997ec..7c68bda 100644 --- a/glacier/src/main/java/org/jclouds/glacier/blobstore/strategy/internal/BasePollingStrategy.java +++ b/glacier/src/main/java/org/jclouds/glacier/blobstore/strategy/internal/BasePollingStrategy.java @@ -29,7 +29,6 @@ import com.google.inject.Inject; import com.google.inject.Singleton; /** - * Base implementation of PollingStrategy. * This implementation waits a fixed amount of time before start polling. */ @Singleton http://git-wip-us.apache.org/repos/asf/jclouds-labs-aws/blob/7ca9836a/glacier/src/main/java/org/jclouds/glacier/blobstore/strategy/internal/BaseSlicingStrategy.java ---------------------------------------------------------------------- diff --git a/glacier/src/main/java/org/jclouds/glacier/blobstore/strategy/internal/BaseSlicingStrategy.java b/glacier/src/main/java/org/jclouds/glacier/blobstore/strategy/internal/BaseSlicingStrategy.java index ebb42b5..181110c 100644 --- a/glacier/src/main/java/org/jclouds/glacier/blobstore/strategy/internal/BaseSlicingStrategy.java +++ b/glacier/src/main/java/org/jclouds/glacier/blobstore/strategy/internal/BaseSlicingStrategy.java @@ -31,7 +31,6 @@ import com.google.inject.Inject; import com.google.inject.name.Named; /** - * Base implementation of SlicingStrategy. * This implementation slice a payload based on the (part size)/(number of parts) ratio. This ratio may be overriden. */ @Singleton http://git-wip-us.apache.org/repos/asf/jclouds-labs-aws/blob/7ca9836a/glacier/src/main/java/org/jclouds/glacier/blobstore/strategy/internal/ClearVaultStrategy.java ---------------------------------------------------------------------- diff --git a/glacier/src/main/java/org/jclouds/glacier/blobstore/strategy/internal/ClearVaultStrategy.java b/glacier/src/main/java/org/jclouds/glacier/blobstore/strategy/internal/ClearVaultStrategy.java index 68dfe01..277552a 100644 --- a/glacier/src/main/java/org/jclouds/glacier/blobstore/strategy/internal/ClearVaultStrategy.java +++ b/glacier/src/main/java/org/jclouds/glacier/blobstore/strategy/internal/ClearVaultStrategy.java @@ -27,39 +27,40 @@ import org.jclouds.glacier.domain.ArchiveMetadataCollection; import org.jclouds.glacier.domain.InventoryRetrievalJobRequest; import org.jclouds.rest.ResourceNotFoundException; +import com.google.common.base.Throwables; import com.google.inject.Inject; import com.google.inject.Singleton; /** - * Implementation of ClearListStrategy. - * This is a long duration operation. + * An inventory will be retrieved to obtain the blob list and the method will iterate through it deleting the blobs. + * This operation will take several hours and the result may be inaccurate (Inventories are updated every 24 hours). */ @Singleton public class ClearVaultStrategy implements ClearListStrategy { - private final GlacierClient sync; + private final GlacierClient client; private final PollingStrategy pollingStrategy; @Inject - public ClearVaultStrategy(GlacierClient sync, PollingStrategy pollingStrategy) { + public ClearVaultStrategy(GlacierClient client, PollingStrategy pollingStrategy) { + this.client = checkNotNull(client, "client"); this.pollingStrategy = checkNotNull(pollingStrategy, "pollingStrategy"); - this.sync = checkNotNull(sync, "sync"); } @Override public void execute(String container, ListContainerOptions listContainerOptions) { - String jobId = sync.initiateJob(container, InventoryRetrievalJobRequest.builder().build()); + String jobId = client.initiateJob(container, InventoryRetrievalJobRequest.builder().build()); try { if (pollingStrategy.waitForSuccess(container, jobId)) { - ArchiveMetadataCollection archives = sync.getInventoryRetrievalOutput(container, jobId); + ArchiveMetadataCollection archives = client.getInventoryRetrievalOutput(container, jobId); for (ArchiveMetadata archive : archives) { try { - sync.deleteArchive(container, archive.getArchiveId()); + client.deleteArchive(container, archive.getArchiveId()); } catch (ResourceNotFoundException ignored) { } } } } catch (InterruptedException e) { - throw new RuntimeException(e); + Throwables.propagate(e); } } } http://git-wip-us.apache.org/repos/asf/jclouds-labs-aws/blob/7ca9836a/glacier/src/main/java/org/jclouds/glacier/blobstore/strategy/internal/SequentialMultipartUploadStrategy.java ---------------------------------------------------------------------- diff --git a/glacier/src/main/java/org/jclouds/glacier/blobstore/strategy/internal/SequentialMultipartUploadStrategy.java b/glacier/src/main/java/org/jclouds/glacier/blobstore/strategy/internal/SequentialMultipartUploadStrategy.java index 4ef4468..d81bcbc 100644 --- a/glacier/src/main/java/org/jclouds/glacier/blobstore/strategy/internal/SequentialMultipartUploadStrategy.java +++ b/glacier/src/main/java/org/jclouds/glacier/blobstore/strategy/internal/SequentialMultipartUploadStrategy.java @@ -30,7 +30,6 @@ import com.google.inject.Inject; import com.google.inject.Singleton; /** - * Base implementation of MultipartUploadStrategy. * This implementation uploads the parts sequentially. */ @Singleton
