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;
    }