[ 
https://issues.apache.org/jira/browse/HADOOP-17725?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ivan updated HADOOP-17725:
--------------------------
    Description: 
It would be good to improve error messages for token providers in ABFS. 
Currently, when a configuration key is not found or mistyped, the error is not 
very clear on what went wrong. It would be good to indicate that the key was 
required but not found in Hadoop configuration when creating a token provider.

For example, when running the following code:
{code:java}
import org.apache.hadoop.conf._
import org.apache.hadoop.fs._

val conf = new Configuration()
conf.set("fs.azure.account.auth.type", "OAuth")
conf.set("fs.azure.account.oauth.provider.type", 
"org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider")
conf.set("fs.azure.account.oauth2.client.id", "my-client-id")
// 
conf.set("fs.azure.account.oauth2.client.secret.my-account.dfs.core.windows.net",
 "my-secret")
conf.set("fs.azure.account.oauth2.client.endpoint", "my-endpoint")

val path = new Path("abfss://contai...@my-account.dfs.core.windows.net/")
val fs = path.getFileSystem(conf)
fs.getFileStatus(path){code}
The following exception is thrown:
{code:java}
TokenAccessProviderException: Unable to load OAuth token provider class.
...
Caused by: UncheckedExecutionException: java.lang.NullPointerException: 
clientSecret
...
Caused by: NullPointerException: clientSecret {code}
which does not tell what configuration key was not loaded.

 

IMHO, it would be good if the exception was something like this:
{code:java}
TokenAccessProviderException: Unable to load OAuth token provider class.
...
Caused by: ConfigurationPropertyNotFoundException: Configuration property 
fs.azure.account.oauth2.client.secret not found. {code}

  was:
It would be good to improve error messages for token providers in ABFS. 
Currently, when a configuration key is not found or mistyped, the error is not 
very clear on what went wrong. It would be good to indicate that the key was 
required but not found in Hadoop configuration when creating a token provider.



For example, when running the following code:
{code:java}
import org.apache.hadoop.conf._
import org.apache.hadoop.fs._

val conf = new Configuration()
conf.set("fs.azure.account.auth.type", "OAuth")
conf.set("fs.azure.account.oauth.provider.type", 
"org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider")
conf.set("fs.azure.account.oauth2.client.id", "my-client-id")
// 
conf.set("fs.azure.account.oauth2.client.secret.abfsnamespace.dfs.core.windows.net",
 "my-secret")
conf.set("fs.azure.account.oauth2.client.endpoint", "my-endpoint")

val path = new Path("abfss://contai...@account.dfs.core.windows.net/")
val fs = path.getFileSystem(conf)
fs.getFileStatus(path){code}
The following exception is thrown:
{code:java}
TokenAccessProviderException: Unable to load OAuth token provider class.
...
Caused by: UncheckedExecutionException: java.lang.NullPointerException: 
clientSecret
...
Caused by: NullPointerException: clientSecret {code}
which does not tell what configuration key was not loaded.

 

IMHO, it would be good if the exception was something like this:
{code:java}
TokenAccessProviderException: Unable to load OAuth token provider class.
...
Caused by: ConfigurationPropertyNotFoundException: Configuration property 
fs.azure.account.oauth2.client.secret not found. {code}


> Improve error message for token providers in ABFS
> -------------------------------------------------
>
>                 Key: HADOOP-17725
>                 URL: https://issues.apache.org/jira/browse/HADOOP-17725
>             Project: Hadoop Common
>          Issue Type: Improvement
>          Components: fs/azure, hadoop-thirdparty
>    Affects Versions: 3.3.0
>            Reporter: Ivan
>            Priority: Major
>
> It would be good to improve error messages for token providers in ABFS. 
> Currently, when a configuration key is not found or mistyped, the error is 
> not very clear on what went wrong. It would be good to indicate that the key 
> was required but not found in Hadoop configuration when creating a token 
> provider.
> For example, when running the following code:
> {code:java}
> import org.apache.hadoop.conf._
> import org.apache.hadoop.fs._
> val conf = new Configuration()
> conf.set("fs.azure.account.auth.type", "OAuth")
> conf.set("fs.azure.account.oauth.provider.type", 
> "org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider")
> conf.set("fs.azure.account.oauth2.client.id", "my-client-id")
> // 
> conf.set("fs.azure.account.oauth2.client.secret.my-account.dfs.core.windows.net",
>  "my-secret")
> conf.set("fs.azure.account.oauth2.client.endpoint", "my-endpoint")
> val path = new Path("abfss://contai...@my-account.dfs.core.windows.net/")
> val fs = path.getFileSystem(conf)
> fs.getFileStatus(path){code}
> The following exception is thrown:
> {code:java}
> TokenAccessProviderException: Unable to load OAuth token provider class.
> ...
> Caused by: UncheckedExecutionException: java.lang.NullPointerException: 
> clientSecret
> ...
> Caused by: NullPointerException: clientSecret {code}
> which does not tell what configuration key was not loaded.
>  
> IMHO, it would be good if the exception was something like this:
> {code:java}
> TokenAccessProviderException: Unable to load OAuth token provider class.
> ...
> Caused by: ConfigurationPropertyNotFoundException: Configuration property 
> fs.azure.account.oauth2.client.secret not found. {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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

Reply via email to