HADOOP-12608. Fix exception message in WASB when connecting with anonymous 
credential. Contributed by Dushyanth.

(cherry picked from commit 007a8decc61750720033e06b6d08861ac3788e41)
(cherry picked from commit a65e159c59de41d26e12212dd1b7c28c28265cc3)


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/8b57be10
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/8b57be10
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/8b57be10

Branch: refs/heads/HDFS-7240
Commit: 8b57be108f9de3b74c5d6465828241fd436bcb99
Parents: ed6ff5c
Author: Xiaoyu Yao <x...@apache.org>
Authored: Wed Dec 30 11:10:50 2015 -0800
Committer: Andrew Wang <w...@apache.org>
Committed: Mon Aug 29 15:30:49 2016 -0700

----------------------------------------------------------------------
 .../fs/azure/AzureNativeFileSystemStore.java    |  5 +-
 ...TestFileSystemOperationExceptionMessage.java | 78 ++++++++++++++++++++
 2 files changed, 81 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/8b57be10/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/AzureNativeFileSystemStore.java
----------------------------------------------------------------------
diff --git 
a/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/AzureNativeFileSystemStore.java
 
b/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/AzureNativeFileSystemStore.java
index 2615174..eaca82e 100644
--- 
a/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/AzureNativeFileSystemStore.java
+++ 
b/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/AzureNativeFileSystemStore.java
@@ -742,8 +742,9 @@ public class AzureNativeFileSystemStore implements 
NativeFileSystemStore {
     try {
       if (!container.exists(getInstrumentedContext())) {
         throw new AzureException("Container " + containerName + " in account "
-            + accountName + " not found, and we can't create "
-            + " it using anoynomous credentials.");
+            + accountName + " not found, and we can't create"
+            + " it using anoynomous credentials, and no credentials found for 
them"
+            + " in the configuration.");
       }
     } catch (StorageException ex) {
       throw new AzureException("Unable to access container " + containerName

http://git-wip-us.apache.org/repos/asf/hadoop/blob/8b57be10/hadoop-tools/hadoop-azure/src/test/java/org/apache/hadoop/fs/azure/TestFileSystemOperationExceptionMessage.java
----------------------------------------------------------------------
diff --git 
a/hadoop-tools/hadoop-azure/src/test/java/org/apache/hadoop/fs/azure/TestFileSystemOperationExceptionMessage.java
 
b/hadoop-tools/hadoop-azure/src/test/java/org/apache/hadoop/fs/azure/TestFileSystemOperationExceptionMessage.java
new file mode 100644
index 0000000..57920a4
--- /dev/null
+++ 
b/hadoop-tools/hadoop-azure/src/test/java/org/apache/hadoop/fs/azure/TestFileSystemOperationExceptionMessage.java
@@ -0,0 +1,78 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.fs.azure;
+import java.net.URI;
+import java.util.UUID;
+
+import org.apache.hadoop.conf.Configuration;
+import org.junit.Assert;
+import org.junit.Test;
+
+
+public class TestFileSystemOperationExceptionMessage extends
+  NativeAzureFileSystemBaseTest {
+
+  @Test
+  public void testAnonymouseCredentialExceptionMessage() throws Throwable{
+
+    Configuration conf = AzureBlobStorageTestAccount.createTestConfiguration();
+    String testStorageAccount = conf.get("fs.azure.test.account.name");
+    conf = new Configuration();
+    conf.set("fs.AbstractFileSystem.wasb.impl", 
"org.apache.hadoop.fs.azure.Wasb");
+    conf.set("fs.azure.skip.metrics", "true");
+
+    String testContainer = UUID.randomUUID().toString();
+    String wasbUri = String.format("wasb://%s@%s",
+        testContainer, testStorageAccount);
+
+    String expectedErrorMessage =
+        String.format("Container %s in account %s not found, and we can't 
create it "
+            + "using anoynomous credentials, and no credentials found for "
+            + "them in the configuration.", testContainer, testStorageAccount);
+
+    fs = new NativeAzureFileSystem();
+    try {
+      fs.initialize(new URI(wasbUri), conf);
+    } catch (Exception ex) {
+
+      Throwable innerException = ex.getCause();
+      while (innerException != null
+             && !(innerException instanceof AzureException)) {
+        innerException = innerException.getCause();
+      }
+
+      if (innerException != null) {
+        String exceptionMessage = innerException.getMessage();
+        if (exceptionMessage == null
+            || exceptionMessage.length() == 0) {
+          Assert.fail();}
+        else {
+          Assert.assertTrue(exceptionMessage.equals(expectedErrorMessage));
+        }
+      } else {
+        Assert.fail();
+      }
+    }
+  }
+
+  @Override
+  protected AzureBlobStorageTestAccount createTestAccount() throws Exception {
+    return AzureBlobStorageTestAccount.create();
+  }
+}
\ No newline at end of file


---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org
For additional commands, e-mail: common-commits-h...@hadoop.apache.org

Reply via email to