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