From 2c1ca89e1ad95da56042df27f8d4aeaebcde6c7e Mon Sep 17 00:00:00 2001 From: Timur Alperovich Date: Thu, 25 Jun 2015 11:24:25 -0700 Subject: [PATCH] JCLOUDS-929: Add delimiter support to Azure. Plumb the delimiter option to the Azure blob store. --- .../functions/ListOptionsToListBlobsOptions.java | 9 ++++++++- .../integration/AzureBlobContainerLiveTest.java | 7 ------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/providers/azureblob/src/main/java/org/jclouds/azureblob/blobstore/functions/ListOptionsToListBlobsOptions.java b/providers/azureblob/src/main/java/org/jclouds/azureblob/blobstore/functions/ListOptionsToListBlobsOptions.java index 063a91aa0b..a2f9dca68a 100644 --- a/providers/azureblob/src/main/java/org/jclouds/azureblob/blobstore/functions/ListOptionsToListBlobsOptions.java +++ b/providers/azureblob/src/main/java/org/jclouds/azureblob/blobstore/functions/ListOptionsToListBlobsOptions.java @@ -33,8 +33,15 @@ public class ListOptionsToListBlobsOptions implements if (from.getDir() != null && from.getPrefix() != null) { throw new IllegalArgumentException("Cannot set both directory and prefix"); } + if (((from.getDir() != null) || from.isRecursive()) && from.getDelimiter() != null) { + throw new IllegalArgumentException("Cannot set delimiter and directory or recursive options together"); + } + ListBlobsOptions httpOptions = new ListBlobsOptions(); - if (!from.isRecursive()) { + if (from.getDelimiter() != null) { + httpOptions.delimiter(from.getDelimiter()); + } + if (!from.isRecursive() && httpOptions.getDelimiter() == null) { httpOptions.delimiter("/"); } if (from.getDir() != null) { diff --git a/providers/azureblob/src/test/java/org/jclouds/azureblob/blobstore/integration/AzureBlobContainerLiveTest.java b/providers/azureblob/src/test/java/org/jclouds/azureblob/blobstore/integration/AzureBlobContainerLiveTest.java index 78fdb36da8..5bfdcf2142 100644 --- a/providers/azureblob/src/test/java/org/jclouds/azureblob/blobstore/integration/AzureBlobContainerLiveTest.java +++ b/providers/azureblob/src/test/java/org/jclouds/azureblob/blobstore/integration/AzureBlobContainerLiveTest.java @@ -17,7 +17,6 @@ package org.jclouds.azureblob.blobstore.integration; import org.jclouds.blobstore.integration.internal.BaseContainerLiveTest; -import org.testng.SkipException; import org.testng.annotations.Test; @Test(groups = { "live" }) @@ -25,10 +24,4 @@ public class AzureBlobContainerLiveTest extends BaseContainerLiveTest { public AzureBlobContainerLiveTest() { provider = "azureblob"; } - - @Override - @Test - public void testDelimiterList() { - throw new SkipException("The delimiter support has not been plumbed through to Azure blob"); - } }