You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by an...@apache.org on 2014/07/29 00:19:20 UTC
git commit: Updating documentation and a configuration property name
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 <ro...@gmail.com>
Authored: Mon Jul 28 17:04:55 2014 +0200
Committer: Andrew Phillips <an...@apache.org>
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