Java 类org.apache.hadoop.fs.XAttrSetFlag 实例源码

项目:hadoop-oss    文件:NuCypherExtClientNamenodeProtocolTranslatorPB.java   
@Override
public void setXAttrs(Map<String, List<XAttr>> xAttrsToSet, EnumSet<XAttrSetFlag> flag)
    throws IOException {

  SetXAttrsRequestProto.Builder builder = SetXAttrsRequestProto.newBuilder();
  for (String src : xAttrsToSet.keySet()) {
    List<XAttr> xAttrs = xAttrsToSet.get(src);
    SetXAttrSingleRequestProto singleReq = SetXAttrSingleRequestProto.newBuilder()
        .setSrc(src)
        .addAllXAttr(NuCypherExtPBHelperClient.convertXAttrProto(xAttrs))
        .build();
    builder.addXAttrsToSet(singleReq);
  }
  SetXAttrsRequestProto req = builder.setFlag(NuCypherExtPBHelperClient.convert(flag)).build();
  try {
    rpcProxy.setXAttrs(null, req);
  } catch (ServiceException e) {
    throw ProtobufHelper.getRemoteException(e);
  }
}
项目:hadoop    文件:DFSClient.java   
public void setXAttr(String src, String name, byte[] value, 
    EnumSet<XAttrSetFlag> flag) throws IOException {
  checkOpen();
  TraceScope scope = getPathTraceScope("setXAttr", src);
  try {
    namenode.setXAttr(src, XAttrHelper.buildXAttr(name, value), flag);
  } catch (RemoteException re) {
    throw re.unwrapRemoteException(AccessControlException.class,
                                   FileNotFoundException.class,
                                   NSQuotaExceededException.class,
                                   SafeModeException.class,
                                   SnapshotAccessControlException.class,
                                   UnresolvedPathException.class);
  } finally {
    scope.close();
  }
}
项目:hadoop    文件:FSDirectory.java   
/**
 * Set the FileEncryptionInfo for an INode.
 */
void setFileEncryptionInfo(String src, FileEncryptionInfo info)
    throws IOException {
  // Make the PB for the xattr
  final HdfsProtos.PerFileEncryptionInfoProto proto =
      PBHelper.convertPerFileEncInfo(info);
  final byte[] protoBytes = proto.toByteArray();
  final XAttr fileEncryptionAttr =
      XAttrHelper.buildXAttr(CRYPTO_XATTR_FILE_ENCRYPTION_INFO, protoBytes);
  final List<XAttr> xAttrs = Lists.newArrayListWithCapacity(1);
  xAttrs.add(fileEncryptionAttr);

  writeLock();
  try {
    FSDirXAttrOp.unprotectedSetXAttrs(this, src, xAttrs,
                                      EnumSet.of(XAttrSetFlag.CREATE));
  } finally {
    writeUnlock();
  }
}
项目:hadoop    文件:FSNamesystem.java   
void setXAttr(String src, XAttr xAttr, EnumSet<XAttrSetFlag> flag,
              boolean logRetryCache)
    throws IOException {
  checkOperation(OperationCategory.WRITE);
  HdfsFileStatus auditStat = null;
  writeLock();
  try {
    checkOperation(OperationCategory.WRITE);
    checkNameNodeSafeMode("Cannot set XAttr on " + src);
    auditStat = FSDirXAttrOp.setXAttr(dir, src, xAttr, flag, logRetryCache);
  } catch (AccessControlException e) {
    logAuditEvent(false, "setXAttr", src);
    throw e;
  } finally {
    writeUnlock();
  }
  getEditLog().logSync();
  logAuditEvent(true, "setXAttr", src, null, auditStat);
}
项目:hadoop    文件:NameNodeRpcServer.java   
@Override // ClientProtocol
public void setXAttr(String src, XAttr xAttr, EnumSet<XAttrSetFlag> flag)
    throws IOException {
  checkNNStartup();
  CacheEntry cacheEntry = RetryCache.waitForCompletion(retryCache);
  if (cacheEntry != null && cacheEntry.isSuccess()) {
    return; // Return previous response
  }
  boolean success = false;
  try {
    namesystem.setXAttr(src, xAttr, flag, cacheEntry != null);
    success = true;
  } finally {
    RetryCache.setState(cacheEntry, success);
  }
}
项目:hadoop    文件:FSDirXAttrOp.java   
/**
 * Set xattr for a file or directory.
 *
 * @param src
 *          - path on which it sets the xattr
 * @param xAttr
 *          - xAttr details to set
 * @param flag
 *          - xAttrs flags
 * @throws IOException
 */
static HdfsFileStatus setXAttr(
    FSDirectory fsd, String src, XAttr xAttr, EnumSet<XAttrSetFlag> flag,
    boolean logRetryCache)
    throws IOException {
  checkXAttrsConfigFlag(fsd);
  checkXAttrSize(fsd, xAttr);
  FSPermissionChecker pc = fsd.getPermissionChecker();
  XAttrPermissionFilter.checkPermissionForApi(
      pc, xAttr, FSDirectory.isReservedRawName(src));
  byte[][] pathComponents = FSDirectory.getPathComponentsForReservedPath(src);
  src = fsd.resolvePath(pc, src, pathComponents);
  List<XAttr> xAttrs = Lists.newArrayListWithCapacity(1);
  xAttrs.add(xAttr);
  INodesInPath iip;
  fsd.writeLock();
  try {
    iip = fsd.getINodesInPath4Write(src);
    checkXAttrChangeAccess(fsd, iip, xAttr, pc);
    unprotectedSetXAttrs(fsd, src, xAttrs, flag);
  } finally {
    fsd.writeUnlock();
  }
  fsd.getEditLog().logSetXAttrs(src, xAttrs, logRetryCache);
  return fsd.getAuditFileInfo(iip);
}
项目:hadoop    文件:TestXAttrsWithHA.java   
/**
 * Test that xattrs are properly tracked by the standby
 */
@Test(timeout = 60000)
public void testXAttrsTrackedOnStandby() throws Exception {
  fs.create(path).close();
  fs.setXAttr(path, name1, value1, EnumSet.of(XAttrSetFlag.CREATE));
  fs.setXAttr(path, name2, value2, EnumSet.of(XAttrSetFlag.CREATE));

  HATestUtil.waitForStandbyToCatchUp(nn0, nn1);
  List<XAttr> xAttrs = nn1.getRpcServer().getXAttrs("/file", null);
  assertEquals(2, xAttrs.size());
  cluster.shutdownNameNode(0);

  // Failover the current standby to active.
  cluster.shutdownNameNode(0);
  cluster.transitionToActive(1);

  Map<String, byte[]> xattrs = fs.getXAttrs(path);
  Assert.assertEquals(xattrs.size(), 2);
  Assert.assertArrayEquals(value1, xattrs.get(name1));
  Assert.assertArrayEquals(value2, xattrs.get(name2));

  fs.delete(path, true);
}
项目:aliyun-oss-hadoop-fs    文件:FSNamesystem.java   
void setXAttr(String src, XAttr xAttr, EnumSet<XAttrSetFlag> flag,
              boolean logRetryCache)
    throws IOException {
  HdfsFileStatus auditStat = null;
  writeLock();
  try {
    checkOperation(OperationCategory.WRITE);
    checkNameNodeSafeMode("Cannot set XAttr on " + src);
    auditStat = FSDirXAttrOp.setXAttr(dir, src, xAttr, flag, logRetryCache);
  } catch (AccessControlException e) {
    logAuditEvent(false, "setXAttr", src);
    throw e;
  } finally {
    writeUnlock();
  }
  getEditLog().logSync();
  logAuditEvent(true, "setXAttr", src, null, auditStat);
}
项目:aliyun-oss-hadoop-fs    文件:FSDirEncryptionZoneOp.java   
/**
 * Set the FileEncryptionInfo for an INode.
 *
 * @param fsd fsdirectory
 * @param src the path of a directory which will be the root of the
 *            encryption zone.
 * @param info file encryption information
 * @throws IOException
 */
static void setFileEncryptionInfo(final FSDirectory fsd, final String src,
    final FileEncryptionInfo info) throws IOException {
  // Make the PB for the xattr
  final HdfsProtos.PerFileEncryptionInfoProto proto =
      PBHelperClient.convertPerFileEncInfo(info);
  final byte[] protoBytes = proto.toByteArray();
  final XAttr fileEncryptionAttr =
      XAttrHelper.buildXAttr(CRYPTO_XATTR_FILE_ENCRYPTION_INFO, protoBytes);
  final List<XAttr> xAttrs = Lists.newArrayListWithCapacity(1);
  xAttrs.add(fileEncryptionAttr);
  fsd.writeLock();
  try {
    FSDirXAttrOp.unprotectedSetXAttrs(fsd, src, xAttrs,
                                      EnumSet.of(XAttrSetFlag.CREATE));
  } finally {
    fsd.writeUnlock();
  }
}
项目:aliyun-oss-hadoop-fs    文件:NameNodeRpcServer.java   
@Override // ClientProtocol
public void setXAttr(String src, XAttr xAttr, EnumSet<XAttrSetFlag> flag)
    throws IOException {
  checkNNStartup();
  namesystem.checkOperation(OperationCategory.WRITE);
  CacheEntry cacheEntry = RetryCache.waitForCompletion(retryCache);
  if (cacheEntry != null && cacheEntry.isSuccess()) {
    return; // Return previous response
  }
  boolean success = false;
  try {
    namesystem.setXAttr(src, xAttr, flag, cacheEntry != null);
    success = true;
  } finally {
    RetryCache.setState(cacheEntry, success);
  }
}
项目:aliyun-oss-hadoop-fs    文件:FSDirXAttrOp.java   
/**
 * Set xattr for a file or directory.
 *
 * @param src
 *          - path on which it sets the xattr
 * @param xAttr
 *          - xAttr details to set
 * @param flag
 *          - xAttrs flags
 * @throws IOException
 */
static HdfsFileStatus setXAttr(
    FSDirectory fsd, String src, XAttr xAttr, EnumSet<XAttrSetFlag> flag,
    boolean logRetryCache)
    throws IOException {
  checkXAttrsConfigFlag(fsd);
  checkXAttrSize(fsd, xAttr);
  FSPermissionChecker pc = fsd.getPermissionChecker();
  XAttrPermissionFilter.checkPermissionForApi(
      pc, xAttr, FSDirectory.isReservedRawName(src));
  byte[][] pathComponents = FSDirectory.getPathComponentsForReservedPath(src);
  src = fsd.resolvePath(pc, src, pathComponents);
  List<XAttr> xAttrs = Lists.newArrayListWithCapacity(1);
  xAttrs.add(xAttr);
  INodesInPath iip;
  fsd.writeLock();
  try {
    iip = fsd.getINodesInPath4Write(src);
    checkXAttrChangeAccess(fsd, iip, xAttr, pc);
    unprotectedSetXAttrs(fsd, src, xAttrs, flag);
  } finally {
    fsd.writeUnlock();
  }
  fsd.getEditLog().logSetXAttrs(src, xAttrs, logRetryCache);
  return fsd.getAuditFileInfo(iip);
}
项目:aliyun-oss-hadoop-fs    文件:TestXAttrsWithHA.java   
/**
 * Test that xattrs are properly tracked by the standby
 */
@Test(timeout = 60000)
public void testXAttrsTrackedOnStandby() throws Exception {
  fs.create(path).close();
  fs.setXAttr(path, name1, value1, EnumSet.of(XAttrSetFlag.CREATE));
  fs.setXAttr(path, name2, value2, EnumSet.of(XAttrSetFlag.CREATE));

  HATestUtil.waitForStandbyToCatchUp(nn0, nn1);
  List<XAttr> xAttrs = nn1.getRpcServer().getXAttrs("/file", null);
  assertEquals(2, xAttrs.size());
  cluster.shutdownNameNode(0);

  // Failover the current standby to active.
  cluster.shutdownNameNode(0);
  cluster.transitionToActive(1);

  Map<String, byte[]> xattrs = fs.getXAttrs(path);
  Assert.assertEquals(xattrs.size(), 2);
  Assert.assertArrayEquals(value1, xattrs.get(name1));
  Assert.assertArrayEquals(value2, xattrs.get(name2));

  fs.delete(path, true);
}
项目:big-c    文件:DFSClient.java   
public void setXAttr(String src, String name, byte[] value, 
    EnumSet<XAttrSetFlag> flag) throws IOException {
  checkOpen();
  TraceScope scope = getPathTraceScope("setXAttr", src);
  try {
    namenode.setXAttr(src, XAttrHelper.buildXAttr(name, value), flag);
  } catch (RemoteException re) {
    throw re.unwrapRemoteException(AccessControlException.class,
                                   FileNotFoundException.class,
                                   NSQuotaExceededException.class,
                                   SafeModeException.class,
                                   SnapshotAccessControlException.class,
                                   UnresolvedPathException.class);
  } finally {
    scope.close();
  }
}
项目:big-c    文件:FSDirectory.java   
/**
 * Set the FileEncryptionInfo for an INode.
 */
void setFileEncryptionInfo(String src, FileEncryptionInfo info)
    throws IOException {
  // Make the PB for the xattr
  final HdfsProtos.PerFileEncryptionInfoProto proto =
      PBHelper.convertPerFileEncInfo(info);
  final byte[] protoBytes = proto.toByteArray();
  final XAttr fileEncryptionAttr =
      XAttrHelper.buildXAttr(CRYPTO_XATTR_FILE_ENCRYPTION_INFO, protoBytes);
  final List<XAttr> xAttrs = Lists.newArrayListWithCapacity(1);
  xAttrs.add(fileEncryptionAttr);

  writeLock();
  try {
    FSDirXAttrOp.unprotectedSetXAttrs(this, src, xAttrs,
                                      EnumSet.of(XAttrSetFlag.CREATE));
  } finally {
    writeUnlock();
  }
}
项目:big-c    文件:FSNamesystem.java   
void setXAttr(String src, XAttr xAttr, EnumSet<XAttrSetFlag> flag,
              boolean logRetryCache)
    throws IOException {
  checkOperation(OperationCategory.WRITE);
  HdfsFileStatus auditStat = null;
  writeLock();
  try {
    checkOperation(OperationCategory.WRITE);
    checkNameNodeSafeMode("Cannot set XAttr on " + src);
    auditStat = FSDirXAttrOp.setXAttr(dir, src, xAttr, flag, logRetryCache);
  } catch (AccessControlException e) {
    logAuditEvent(false, "setXAttr", src);
    throw e;
  } finally {
    writeUnlock();
  }
  getEditLog().logSync();
  logAuditEvent(true, "setXAttr", src, null, auditStat);
}
项目:big-c    文件:NameNodeRpcServer.java   
@Override // ClientProtocol
public void setXAttr(String src, XAttr xAttr, EnumSet<XAttrSetFlag> flag)
    throws IOException {
  checkNNStartup();
  CacheEntry cacheEntry = RetryCache.waitForCompletion(retryCache);
  if (cacheEntry != null && cacheEntry.isSuccess()) {
    return; // Return previous response
  }
  boolean success = false;
  try {
    namesystem.setXAttr(src, xAttr, flag, cacheEntry != null);
    success = true;
  } finally {
    RetryCache.setState(cacheEntry, success);
  }
}
项目:big-c    文件:FSDirXAttrOp.java   
/**
 * Set xattr for a file or directory.
 *
 * @param src
 *          - path on which it sets the xattr
 * @param xAttr
 *          - xAttr details to set
 * @param flag
 *          - xAttrs flags
 * @throws IOException
 */
static HdfsFileStatus setXAttr(
    FSDirectory fsd, String src, XAttr xAttr, EnumSet<XAttrSetFlag> flag,
    boolean logRetryCache)
    throws IOException {
  checkXAttrsConfigFlag(fsd);
  checkXAttrSize(fsd, xAttr);
  FSPermissionChecker pc = fsd.getPermissionChecker();
  XAttrPermissionFilter.checkPermissionForApi(
      pc, xAttr, FSDirectory.isReservedRawName(src));
  byte[][] pathComponents = FSDirectory.getPathComponentsForReservedPath(src);
  src = fsd.resolvePath(pc, src, pathComponents);
  List<XAttr> xAttrs = Lists.newArrayListWithCapacity(1);
  xAttrs.add(xAttr);
  INodesInPath iip;
  fsd.writeLock();
  try {
    iip = fsd.getINodesInPath4Write(src);
    checkXAttrChangeAccess(fsd, iip, xAttr, pc);
    unprotectedSetXAttrs(fsd, src, xAttrs, flag);
  } finally {
    fsd.writeUnlock();
  }
  fsd.getEditLog().logSetXAttrs(src, xAttrs, logRetryCache);
  return fsd.getAuditFileInfo(iip);
}
项目:big-c    文件:TestXAttrsWithHA.java   
/**
 * Test that xattrs are properly tracked by the standby
 */
@Test(timeout = 60000)
public void testXAttrsTrackedOnStandby() throws Exception {
  fs.create(path).close();
  fs.setXAttr(path, name1, value1, EnumSet.of(XAttrSetFlag.CREATE));
  fs.setXAttr(path, name2, value2, EnumSet.of(XAttrSetFlag.CREATE));

  HATestUtil.waitForStandbyToCatchUp(nn0, nn1);
  List<XAttr> xAttrs = nn1.getRpcServer().getXAttrs("/file", null);
  assertEquals(2, xAttrs.size());
  cluster.shutdownNameNode(0);

  // Failover the current standby to active.
  cluster.shutdownNameNode(0);
  cluster.transitionToActive(1);

  Map<String, byte[]> xattrs = fs.getXAttrs(path);
  Assert.assertEquals(xattrs.size(), 2);
  Assert.assertArrayEquals(value1, xattrs.get(name1));
  Assert.assertArrayEquals(value2, xattrs.get(name2));

  fs.delete(path, true);
}
项目:hadoop-2.6.0-cdh5.4.3    文件:FSDirectory.java   
/**
 * Set the FileEncryptionInfo for an INode.
 */
void setFileEncryptionInfo(String src, FileEncryptionInfo info)
    throws IOException {
  // Make the PB for the xattr
  final HdfsProtos.PerFileEncryptionInfoProto proto =
      PBHelper.convertPerFileEncInfo(info);
  final byte[] protoBytes = proto.toByteArray();
  final XAttr fileEncryptionAttr =
      XAttrHelper.buildXAttr(CRYPTO_XATTR_FILE_ENCRYPTION_INFO, protoBytes);
  final List<XAttr> xAttrs = Lists.newArrayListWithCapacity(1);
  xAttrs.add(fileEncryptionAttr);

  writeLock();
  try {
    unprotectedSetXAttrs(src, xAttrs, EnumSet.of(XAttrSetFlag.CREATE));
  } finally {
    writeUnlock();
  }
}
项目:hadoop-2.6.0-cdh5.4.3    文件:FSNamesystem.java   
/**
 * Set xattr for a file or directory.
 * 
 * @param src
 *          - path on which it sets the xattr
 * @param xAttr
 *          - xAttr details to set
 * @param flag
 *          - xAttrs flags
 * @throws AccessControlException
 * @throws SafeModeException
 * @throws UnresolvedLinkException
 * @throws IOException
 */
void setXAttr(String src, XAttr xAttr, EnumSet<XAttrSetFlag> flag)
    throws AccessControlException, SafeModeException,
    UnresolvedLinkException, IOException {
  CacheEntry cacheEntry = RetryCache.waitForCompletion(retryCache);
  if (cacheEntry != null && cacheEntry.isSuccess()) {
    return; // Return previous response
  }
  boolean success = false;
  try {
    setXAttrInt(src, xAttr, flag, cacheEntry != null);
    success = true;
  } catch (AccessControlException e) {
    logAuditEvent(false, "setXAttr", src);
    throw e;
  } finally {
    RetryCache.setState(cacheEntry, success);
  }
}
项目:hadoop-2.6.0-cdh5.4.3    文件:TestXAttrsWithHA.java   
/**
 * Test that xattrs are properly tracked by the standby
 */
@Test(timeout = 60000)
public void testXAttrsTrackedOnStandby() throws Exception {
  fs.create(path).close();
  fs.setXAttr(path, name1, value1, EnumSet.of(XAttrSetFlag.CREATE));
  fs.setXAttr(path, name2, value2, EnumSet.of(XAttrSetFlag.CREATE));

  HATestUtil.waitForStandbyToCatchUp(nn0, nn1);
  List<XAttr> xAttrs = nn1.getRpcServer().getXAttrs("/file", null);
  assertEquals(2, xAttrs.size());
  cluster.shutdownNameNode(0);

  // Failover the current standby to active.
  cluster.shutdownNameNode(0);
  cluster.transitionToActive(1);

  Map<String, byte[]> xattrs = fs.getXAttrs(path);
  Assert.assertEquals(xattrs.size(), 2);
  Assert.assertArrayEquals(value1, xattrs.get(name1));
  Assert.assertArrayEquals(value2, xattrs.get(name2));

  fs.delete(path, true);
}
项目:FlexMap    文件:FSDirectory.java   
/**
 * Set the FileEncryptionInfo for an INode.
 */
void setFileEncryptionInfo(String src, FileEncryptionInfo info)
    throws IOException {
  // Make the PB for the xattr
  final HdfsProtos.PerFileEncryptionInfoProto proto =
      PBHelper.convertPerFileEncInfo(info);
  final byte[] protoBytes = proto.toByteArray();
  final XAttr fileEncryptionAttr =
      XAttrHelper.buildXAttr(CRYPTO_XATTR_FILE_ENCRYPTION_INFO, protoBytes);
  final List<XAttr> xAttrs = Lists.newArrayListWithCapacity(1);
  xAttrs.add(fileEncryptionAttr);

  writeLock();
  try {
    unprotectedSetXAttrs(src, xAttrs, EnumSet.of(XAttrSetFlag.CREATE));
  } finally {
    writeUnlock();
  }
}
项目:FlexMap    文件:FSNamesystem.java   
/**
 * Set xattr for a file or directory.
 * 
 * @param src
 *          - path on which it sets the xattr
 * @param xAttr
 *          - xAttr details to set
 * @param flag
 *          - xAttrs flags
 * @throws AccessControlException
 * @throws SafeModeException
 * @throws UnresolvedLinkException
 * @throws IOException
 */
void setXAttr(String src, XAttr xAttr, EnumSet<XAttrSetFlag> flag)
    throws AccessControlException, SafeModeException,
    UnresolvedLinkException, IOException {
  CacheEntry cacheEntry = RetryCache.waitForCompletion(retryCache);
  if (cacheEntry != null && cacheEntry.isSuccess()) {
    return; // Return previous response
  }
  boolean success = false;
  try {
    setXAttrInt(src, xAttr, flag, cacheEntry != null);
    success = true;
  } catch (AccessControlException e) {
    logAuditEvent(false, "setXAttr", src);
    throw e;
  } finally {
    RetryCache.setState(cacheEntry, success);
  }
}
项目:FlexMap    文件:TestXAttrsWithHA.java   
/**
 * Test that xattrs are properly tracked by the standby
 */
@Test(timeout = 60000)
public void testXAttrsTrackedOnStandby() throws Exception {
  fs.create(path).close();
  fs.setXAttr(path, name1, value1, EnumSet.of(XAttrSetFlag.CREATE));
  fs.setXAttr(path, name2, value2, EnumSet.of(XAttrSetFlag.CREATE));

  HATestUtil.waitForStandbyToCatchUp(nn0, nn1);
  List<XAttr> xAttrs = nn1.getRpcServer().getXAttrs("/file", null);
  assertEquals(2, xAttrs.size());
  cluster.shutdownNameNode(0);

  // Failover the current standby to active.
  cluster.shutdownNameNode(0);
  cluster.transitionToActive(1);

  Map<String, byte[]> xattrs = fs.getXAttrs(path);
  Assert.assertEquals(xattrs.size(), 2);
  Assert.assertArrayEquals(value1, xattrs.get(name1));
  Assert.assertArrayEquals(value2, xattrs.get(name2));

  fs.delete(path, true);
}
项目:hadoop-oss    文件:ViewFileSystem.java   
@Override
public void setXAttr(Path path, String name, byte[] value,
    EnumSet<XAttrSetFlag> flag) throws IOException {
  InodeTree.ResolveResult<FileSystem> res =
      fsState.resolve(getUriPath(path), true);
  res.targetFileSystem.setXAttr(res.remainingPath, name, value, flag);
}
项目:hadoop-oss    文件:ViewFs.java   
@Override
public void setXAttr(Path path, String name, byte[] value,
                     EnumSet<XAttrSetFlag> flag) throws IOException {
  InodeTree.ResolveResult<AbstractFileSystem> res =
      fsState.resolve(getUriPath(path), true);
  res.targetFileSystem.setXAttr(res.remainingPath, name, value, flag);
}
项目:hadoop-oss    文件:NuCypherExtPBHelperClient.java   
public static EnumSet<XAttrSetFlag> convert(int flag) {
  EnumSet<XAttrSetFlag> result =
      EnumSet.noneOf(XAttrSetFlag.class);
  if ((flag & XAttrProtos.XAttrSetFlagProto.XATTR_CREATE_VALUE) ==
      XAttrProtos.XAttrSetFlagProto.XATTR_CREATE_VALUE) {
    result.add(XAttrSetFlag.CREATE);
  }
  if ((flag & XAttrProtos.XAttrSetFlagProto.XATTR_REPLACE_VALUE) ==
      XAttrProtos.XAttrSetFlagProto.XATTR_REPLACE_VALUE) {
    result.add(XAttrSetFlag.REPLACE);
  }
  return result;
}
项目:hadoop-oss    文件:NuCypherExtPBHelperClient.java   
/**
 * The flag field in PB is a bitmask whose values are the same a the
 * emum values of XAttrSetFlag
 */
public static int convert(EnumSet<XAttrSetFlag> flag) {
  int value = 0;
  if (flag.contains(XAttrSetFlag.CREATE)) {
    value |= XAttrProtos.XAttrSetFlagProto.XATTR_CREATE.getNumber();
  }
  if (flag.contains(XAttrSetFlag.REPLACE)) {
    value |= XAttrProtos.XAttrSetFlagProto.XATTR_REPLACE.getNumber();
  }
  return value;
}
项目:hadoop    文件:FileSystemRMStateStore.java   
private void setUnreadableBySuperuserXattrib(Path p)
        throws IOException {
  if (fs.getScheme().toLowerCase().contains("hdfs")
      && intermediateEncryptionEnabled
      && !fs.getXAttrs(p).containsKey(UNREADABLE_BY_SUPERUSER_XATTRIB)) {
    fs.setXAttr(p, UNREADABLE_BY_SUPERUSER_XATTRIB, null,
      EnumSet.of(XAttrSetFlag.CREATE));
  }
}
项目:hadoop    文件:HttpFSFileSystem.java   
@Override
public void setXAttr(Path f, String name, byte[] value,
    EnumSet<XAttrSetFlag> flag) throws IOException {
  Map<String, String> params = new HashMap<String, String>();
  params.put(OP_PARAM, Operation.SETXATTR.toString());
  params.put(XATTR_NAME_PARAM, name);
  if (value != null) {
    params.put(XATTR_VALUE_PARAM, 
        XAttrCodec.encodeValue(value, XAttrCodec.HEX));
  }
  params.put(XATTR_SET_FLAG_PARAM, EnumSetParam.toString(flag));
  HttpURLConnection conn = getConnection(Operation.SETXATTR.getMethod(),
      params, f, true);
  HttpExceptionUtils.validateResponse(conn, HttpURLConnection.HTTP_OK);
}
项目:hadoop    文件:FSOperations.java   
public FSSetXAttr(String path, String name, String encodedValue, 
    EnumSet<XAttrSetFlag> flag) throws IOException {
  this.path = new Path(path);
  this.name = name;
  this.value = XAttrCodec.decodeValue(encodedValue);
  this.flag = flag;
}
项目:hadoop    文件:WebHdfsFileSystem.java   
@Override
public void setXAttr(Path p, String name, byte[] value, 
    EnumSet<XAttrSetFlag> flag) throws IOException {
  statistics.incrementWriteOps(1);
  final HttpOpParam.Op op = PutOpParam.Op.SETXATTR;
  if (value != null) {
    new FsPathRunner(op, p, new XAttrNameParam(name), new XAttrValueParam(
        XAttrCodec.encodeValue(value, XAttrCodec.HEX)), 
        new XAttrSetFlagParam(flag)).run();
  } else {
    new FsPathRunner(op, p, new XAttrNameParam(name), 
        new XAttrSetFlagParam(flag)).run();
  }
}
项目:hadoop    文件:FSDirAttrOp.java   
private static void setDirStoragePolicy(
    FSDirectory fsd, INodeDirectory inode, byte policyId,
    int latestSnapshotId) throws IOException {
  List<XAttr> existingXAttrs = XAttrStorage.readINodeXAttrs(inode);
  XAttr xAttr = BlockStoragePolicySuite.buildXAttr(policyId);
  List<XAttr> newXAttrs = FSDirXAttrOp.setINodeXAttrs(fsd, existingXAttrs,
                                                      Arrays.asList(xAttr),
                                                      EnumSet.of(
                                                          XAttrSetFlag.CREATE,
                                                          XAttrSetFlag.REPLACE));
  XAttrStorage.updateINodeXAttrs(inode, newXAttrs, latestSnapshotId);
}
项目:hadoop    文件:FSDirXAttrOp.java   
static INode unprotectedSetXAttrs(
    FSDirectory fsd, final String src, final List<XAttr> xAttrs,
    final EnumSet<XAttrSetFlag> flag)
    throws IOException {
  assert fsd.hasWriteLock();
  INodesInPath iip = fsd.getINodesInPath4Write(FSDirectory.normalizePath(src),
      true);
  INode inode = FSDirectory.resolveLastINode(iip);
  int snapshotId = iip.getLatestSnapshotId();
  List<XAttr> existingXAttrs = XAttrStorage.readINodeXAttrs(inode);
  List<XAttr> newXAttrs = setINodeXAttrs(fsd, existingXAttrs, xAttrs, flag);
  final boolean isFile = inode.isFile();

  for (XAttr xattr : newXAttrs) {
    final String xaName = XAttrHelper.getPrefixName(xattr);

    /*
     * If we're adding the encryption zone xattr, then add src to the list
     * of encryption zones.
     */
    if (CRYPTO_XATTR_ENCRYPTION_ZONE.equals(xaName)) {
      final HdfsProtos.ZoneEncryptionInfoProto ezProto =
          HdfsProtos.ZoneEncryptionInfoProto.parseFrom(xattr.getValue());
      fsd.ezManager.addEncryptionZone(inode.getId(),
                                      PBHelper.convert(ezProto.getSuite()),
                                      PBHelper.convert(
                                          ezProto.getCryptoProtocolVersion()),
                                      ezProto.getKeyName());
    }

    if (!isFile && SECURITY_XATTR_UNREADABLE_BY_SUPERUSER.equals(xaName)) {
      throw new IOException("Can only set '" +
          SECURITY_XATTR_UNREADABLE_BY_SUPERUSER + "' on a file.");
    }
  }

  XAttrStorage.updateINodeXAttrs(inode, newXAttrs, snapshotId);
  return inode;
}
项目:hadoop    文件:PBHelper.java   
/**
 * The flag field in PB is a bitmask whose values are the same a the 
 * emum values of XAttrSetFlag
 */
public static int convert(EnumSet<XAttrSetFlag> flag) {
  int value = 0;
  if (flag.contains(XAttrSetFlag.CREATE)) {
    value |= XAttrSetFlagProto.XATTR_CREATE.getNumber();
  }
  if (flag.contains(XAttrSetFlag.REPLACE)) {
    value |= XAttrSetFlagProto.XATTR_REPLACE.getNumber();
  }
  return value;
}
项目:hadoop    文件:PBHelper.java   
public static EnumSet<XAttrSetFlag> convert(int flag) {
  EnumSet<XAttrSetFlag> result = 
      EnumSet.noneOf(XAttrSetFlag.class);
  if ((flag & XAttrSetFlagProto.XATTR_CREATE_VALUE) == 
      XAttrSetFlagProto.XATTR_CREATE_VALUE) {
    result.add(XAttrSetFlag.CREATE);
  }
  if ((flag & XAttrSetFlagProto.XATTR_REPLACE_VALUE) == 
      XAttrSetFlagProto.XATTR_REPLACE_VALUE) {
    result.add(XAttrSetFlag.REPLACE);
  }
  return result;
}
项目:hadoop    文件:ClientNamenodeProtocolTranslatorPB.java   
@Override
public void setXAttr(String src, XAttr xAttr, EnumSet<XAttrSetFlag> flag)
    throws IOException {
  SetXAttrRequestProto req = SetXAttrRequestProto.newBuilder()
      .setSrc(src)
      .setXAttr(PBHelper.convertXAttrProto(xAttr))
      .setFlag(PBHelper.convert(flag))
      .build();
  try {
    rpcProxy.setXAttr(null, req);
  } catch (ServiceException e) {
    throw ProtobufHelper.getRemoteException(e);
  }
}
项目:hadoop    文件:TestParam.java   
@Test
public void testXAttrSetFlagParam() {
  EnumSet<XAttrSetFlag> flag = EnumSet.of(
      XAttrSetFlag.CREATE, XAttrSetFlag.REPLACE);
  final XAttrSetFlagParam p = new XAttrSetFlagParam(flag);
  Assert.assertEquals(p.getFlag(), flag);
  final XAttrSetFlagParam p1 = new XAttrSetFlagParam(p.getValueString());
  Assert.assertEquals(p1.getFlag(), flag);
}
项目:hadoop    文件:TestFSImageWithXAttr.java   
private void testXAttr(boolean persistNamespace) throws IOException {
  Path path = new Path("/p");
  DistributedFileSystem fs = cluster.getFileSystem();
  fs.create(path).close();

  fs.setXAttr(path, name1, value1, EnumSet.of(XAttrSetFlag.CREATE));
  fs.setXAttr(path, name2, value2, EnumSet.of(XAttrSetFlag.CREATE));
  fs.setXAttr(path, name3, null, EnumSet.of(XAttrSetFlag.CREATE));

  restart(fs, persistNamespace);

  Map<String, byte[]> xattrs = fs.getXAttrs(path);
  Assert.assertEquals(xattrs.size(), 3);
  Assert.assertArrayEquals(value1, xattrs.get(name1));
  Assert.assertArrayEquals(value2, xattrs.get(name2));
  Assert.assertArrayEquals(value3, xattrs.get(name3));

  fs.setXAttr(path, name1, newValue1, EnumSet.of(XAttrSetFlag.REPLACE));

  restart(fs, persistNamespace);

  xattrs = fs.getXAttrs(path);
  Assert.assertEquals(xattrs.size(), 3);
  Assert.assertArrayEquals(newValue1, xattrs.get(name1));
  Assert.assertArrayEquals(value2, xattrs.get(name2));
  Assert.assertArrayEquals(value3, xattrs.get(name3));

  fs.removeXAttr(path, name1);
  fs.removeXAttr(path, name2);
  fs.removeXAttr(path, name3);

  restart(fs, persistNamespace);
  xattrs = fs.getXAttrs(path);
  Assert.assertEquals(xattrs.size(), 0);
}
项目:hadoop    文件:TestRetryCacheWithHA.java   
@Override
void prepare() throws Exception {
  Path p = new Path(src);
  if (!dfs.exists(p)) {
    DFSTestUtil.createFile(dfs, p, BlockSize, DataNodes, 0);
    client.setXAttr(src, "user.key", "value".getBytes(),
      EnumSet.of(XAttrSetFlag.CREATE));
  }
}