Updated Branches:
  refs/heads/1.6.x c2a95cdab -> 333c762f8

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/333c762f
Tree: 
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-karaf/tree/333c762f
Diff: 
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-karaf/diff/333c762f

Branch: refs/heads/1.6.x
Commit: 333c762f800d60347a91554b22108c78d31db320
Parents: c2a95cd
Author: Andrew Gaul <[email protected]>
Authored: Fri Jun 21 14:25:25 2013 -0700
Committer: Andrew Gaul <[email protected]>
Committed: Mon Jul 15 18:47:22 2013 -0700

----------------------------------------------------------------------
 .../commands/blobstore/BlobListCommand.java     | 61 ++++++++------------
 1 file changed, 23 insertions(+), 38 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-jclouds-karaf/blob/333c762f/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 566f995..f541b60 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
@@ -41,11 +41,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 Collection<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;
 
@@ -53,47 +53,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 (String containerName : containerNames) {
-         out.println(containerName + ":");
-         out.println();
-
-         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;
          }
 
-         out.println();
+         options = options.afterMarker(marker);
       }
       return null;
    }

Reply via email to