You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by ga...@apache.org on 2013/07/16 03:45:36 UTC
git commit: JCLOUDS-190: list a directory within a container
Updated Branches:
refs/heads/master b8bb4880d -> 11fbcaacd
JCLOUDS-190: list a directory within a container
Note that this commit removes the ability to list multiple containers
in the same command. Callers should issue multiple commands instead.
Project: http://git-wip-us.apache.org/repos/asf/incubator-jclouds-karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-jclouds-karaf/commit/11fbcaac
Tree: http://git-wip-us.apache.org/repos/asf/incubator-jclouds-karaf/tree/11fbcaac
Diff: http://git-wip-us.apache.org/repos/asf/incubator-jclouds-karaf/diff/11fbcaac
Branch: refs/heads/master
Commit: 11fbcaacd5b4260170c74b722645282b3ba5939c
Parents: b8bb488
Author: Andrew Gaul <ga...@apache.org>
Authored: Fri Jun 21 14:25:25 2013 -0700
Committer: Andrew Gaul <ga...@apache.org>
Committed: Mon Jul 15 18:43:01 2013 -0700
----------------------------------------------------------------------
.../commands/blobstore/BlobListCommand.java | 66 +++++++-------------
1 file changed, 24 insertions(+), 42 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-karaf/blob/11fbcaac/commands/src/main/java/org/jclouds/karaf/commands/blobstore/BlobListCommand.java
----------------------------------------------------------------------
diff --git a/commands/src/main/java/org/jclouds/karaf/commands/blobstore/BlobListCommand.java b/commands/src/main/java/org/jclouds/karaf/commands/blobstore/BlobListCommand.java
index 30bc5d4..88f7baa 100644
--- a/commands/src/main/java/org/jclouds/karaf/commands/blobstore/BlobListCommand.java
+++ b/commands/src/main/java/org/jclouds/karaf/commands/blobstore/BlobListCommand.java
@@ -40,11 +40,11 @@ import org.jclouds.blobstore.options.ListContainerOptions;
@Command(scope = "jclouds", name = "blobstore-list", description = "Lists blobs in a container")
public class BlobListCommand extends BlobStoreCommandWithOptions {
- @Argument(index = 0, name = "containerNames", description = "The name of the container", required = false, multiValued = true)
- final List<String> containerNames = Lists.newArrayList();
+ @Argument(index = 0, name = "containerName", description = "The name of the container", required = true)
+ String containerName;
- @Option(name = "-a", aliases = "--all", description = "List all containers", required = false)
- boolean listAllContainers = false;
+ @Argument(index = 1, name = "directoryPath", description = "List blobs only in this directory path", required = false)
+ String directoryPath;
private static final PrintStream out = System.out;
@@ -52,50 +52,32 @@ public class BlobListCommand extends BlobStoreCommandWithOptions {
protected Object doExecute() throws Exception {
BlobStore blobStore = getBlobStore();
- if (listAllContainers) {
- containerNames.clear();
- for (StorageMetadata containerMetadata : blobStore.list()) {
- String containerName = containerMetadata.getName();
- containerNames.add(containerName);
- cacheProvider.getProviderCacheForType("container").put(containerMetadata.getProviderId(), containerName);
- }
- } else if (containerNames.isEmpty()) {
- throw new CommandException("Must specify container names or --all");
+ ListContainerOptions options = ListContainerOptions.Builder.recursive();
+ if (directoryPath != null) {
+ options = options.inDirectory(directoryPath);
}
- for (int i = 0; i < containerNames.size(); ++i) {
- String containerName = containerNames.get(i);
- if (containerNames.size() > 1) {
- if (i != 0) {
- out.println();
- }
- out.println(containerName + ":");
- }
-
- ListContainerOptions options = ListContainerOptions.Builder.recursive();
-
- while (true) {
- PageSet<? extends StorageMetadata> blobStoreMetadatas = blobStore.list(containerName, options);
- List<String> blobNames = Lists.newArrayList();
+ while (true) {
+ PageSet<? extends StorageMetadata> blobStoreMetadatas = blobStore.list(containerName, options);
+ List<String> blobNames = Lists.newArrayList();
- for (StorageMetadata blobMetadata : blobStoreMetadatas) {
- String blobName = blobMetadata.getName();
- cacheProvider.getProviderCacheForType("blob").put(blobMetadata.getProviderId(), blobName);
- blobNames.add(blobName);
- }
-
- Collections.sort(blobNames);
- for (String blobName : blobNames) {
- out.println(blobName);
- }
+ for (StorageMetadata blobMetadata : blobStoreMetadatas) {
+ String blobName = blobMetadata.getName();
+ cacheProvider.getProviderCacheForType("blob").put(blobMetadata.getProviderId(), blobName);
+ blobNames.add(blobName);
+ }
- String marker = blobStoreMetadatas.getNextMarker();
- if (marker == null) {
- break;
- }
+ Collections.sort(blobNames);
+ for (String blobName : blobNames) {
+ out.println(blobName);
+ }
- options = options.afterMarker(marker);
+ String marker = blobStoreMetadatas.getNextMarker();
+ if (marker == null) {
+ break;
}
+
+ options = options.afterMarker(marker);
}
return null;
}