Class UGIResolver

java.lang.Object
org.apache.hadoop.hdfs.server.namenode.UGIResolver
Direct Known Subclasses:
FsUGIResolver, SingleUGIResolver

@Public @Unstable public abstract class UGIResolver extends Object
Pluggable class for mapping ownership and permissions from an external store to an FSImage.
  • Field Details

  • Constructor Details

    • UGIResolver

      public UGIResolver()
  • Method Details

    • buildPermissionStatus

      protected final long buildPermissionStatus(String owner, String group, short permission)
      Permission is serialized as a 64-bit long. [0:24):[25:48):[48:64) (in Big Endian). The first and the second parts are the string ids of the user and group name, and the last 16 bits are the permission bits.
      Parameters:
      owner - name of owner
      group - name of group
      permission - Permission octects
      Returns:
      FSImage encoding of permissions
    • ugiMap

      public Map<Integer,String> ugiMap()
    • addUser

      public abstract void addUser(String name)
    • addUser

      protected void addUser(String name, int id)
    • addGroup

      public abstract void addGroup(String name)
    • addGroup

      protected void addGroup(String name, int id)
    • resetUGInfo

      protected void resetUGInfo()
    • resolve

      public long resolve(FileStatus s)
    • user

      protected String user(String s)
    • group

      protected String group(String s)
    • permission

      public FsPermission permission(FsPermission s)
    • getPermissionsProto

      public long getPermissionsProto(FileStatus remoteStatus, AclStatus remoteAcl)
      Get the serialized, local permissions for the external FileStatus or AclStatus. remoteAcl is used when it is not null, otherwise remoteStatus is used.
      Parameters:
      remoteStatus - FileStatus on remote store.
      remoteAcl - AclStatus on external store.
      Returns:
      serialized, local permissions the FileStatus or AclStatus map to.