From 28daaf0eb206d723d2baf0f9d91e43d98bb2fd26 Mon Sep 17 00:00:00 2001 From: Mingliang Liu Date: Tue, 7 Mar 2017 14:55:52 -0800 Subject: [PATCH] HADOOP-14150. Implement getHomeDirectory() method in NativeAzureFileSystem. Contributed by Santhosh G Nayak --- .../apache/hadoop/fs/azure/NativeAzureFileSystem.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/NativeAzureFileSystem.java b/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/NativeAzureFileSystem.java index 6de0a285a84..9aebbb5a22e 100644 --- a/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/NativeAzureFileSystem.java +++ b/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/NativeAzureFileSystem.java @@ -84,6 +84,7 @@ import com.microsoft.azure.storage.StorageException; @InterfaceStability.Stable public class NativeAzureFileSystem extends FileSystem { private static final int USER_WX_PERMISION = 0300; + private static final String USER_HOME_DIR_PREFIX_DEFAULT = "/user"; /** * A description of a folder rename operation, including the source and * destination keys, and descriptions of the files in the source folder. @@ -1129,6 +1130,8 @@ public class NativeAzureFileSystem extends FileSystem { */ private WasbAuthorizerInterface authorizer = null; + private UserGroupInformation ugi; + private String delegationToken = null; public NativeAzureFileSystem() { @@ -1247,6 +1250,7 @@ public class NativeAzureFileSystem extends FileSystem { store.initialize(uri, conf, instrumentation); setConf(conf); + this.ugi = UserGroupInformation.getCurrentUser(); this.uri = URI.create(uri.getScheme() + "://" + uri.getAuthority()); this.workingDir = new Path("/user", UserGroupInformation.getCurrentUser() .getShortUserName()).makeQualified(getUri(), getWorkingDirectory()); @@ -1276,6 +1280,12 @@ public class NativeAzureFileSystem extends FileSystem { } } + @Override + public Path getHomeDirectory() { + return makeQualified(new Path( + USER_HOME_DIR_PREFIX_DEFAULT + "/" + this.ugi.getShortUserName())); + } + @VisibleForTesting public void updateWasbAuthorizer(WasbAuthorizerInterface authorizer) { this.authorizer = authorizer;