Updating documentation and a configuration property name
Follow-on from 95d9b00
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 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 @@
}
/**
- * 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 @@
}, 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 @@
}
/**
- * 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 @@
}
/**
- * Creates a container
+ * Creates a container.
+ * Location is currently ignored.
*
* @param location
* currently ignored
@@ -164,7 +160,8 @@
}
/**
- * Creates a container
+ * Creates a container.
+ * Location and options are currently ignored.
*
* @param location
* currently ignored
@@ -181,14 +178,16 @@
}
/**
- * 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 @@
}
/**
- * 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 @@
}
/**
- * This implementation invokes {@link GlacierClient#uploadArchive}
+ * Stores a blob in a container.
*
* @param container
* container name
@@ -233,14 +234,14 @@
}
/**
- * 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 @@
/**
* 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 @@
/**
* 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 @@
}
/**
- * This implementation invokes {@link GlacierClient#deleteArchive(String, String)}
+ * Deletes the blob.
*
* @param container
* container name
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 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
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 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) {
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 com.google.common.base.Function;
-/**
- * Converts ListContainerOptions into InventoryRetrievalJobRequest
- */
public class ListContainerOptionsToInventoryRetrievalJobRequest implements Function<ListContainerOptions,
InventoryRetrievalJobRequest> {
@Override
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 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
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 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) {
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 @@
import org.jclouds.blobstore.domain.Blob;
-/**
- * Strategy for Multipart Uploads
- */
public interface MultipartUploadStrategy {
String execute(String container, Blob blob);
}
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;
}
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 @@
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;
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.Singleton;
/**
- * Base implementation of PollingStrategy.
* This implementation waits a fixed amount of time before start polling.
*/
@Singleton
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.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
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.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);
}
}
}
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.Singleton;
/**
- * Base implementation of MultipartUploadStrategy.
* This implementation uploads the parts sequentially.
*/
@Singleton