org.apache.hadoop.fs.XAttr#getValue ( )源码实例Demo

下面列出了org.apache.hadoop.fs.XAttr#getValue ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: hadoop   文件: XAttrHelper.java
/**
 * Build xattr map from <code>XAttr</code> list, the key is 
 * xattr name with prefix, and value is xattr value. 
 */
public static Map<String, byte[]> buildXAttrMap(List<XAttr> xAttrs) {
  if (xAttrs == null) {
    return null;
  }
  Map<String, byte[]> xAttrMap = Maps.newHashMap();
  for (XAttr xAttr : xAttrs) {
    String name = getPrefixName(xAttr);
    byte[] value = xAttr.getValue();
    if (value == null) {
      value = new byte[0];
    }
    xAttrMap.put(name, value);
  }
  
  return xAttrMap;
}
 
源代码2 项目: hadoop   文件: FSEditLogOp.java
private static void appendXAttrsToXml(ContentHandler contentHandler,
    List<XAttr> xAttrs) throws SAXException {
  for (XAttr xAttr: xAttrs) {
    contentHandler.startElement("", "", "XATTR", new AttributesImpl());
    XMLUtils.addSaxString(contentHandler, "NAMESPACE",
        xAttr.getNameSpace().toString());
    XMLUtils.addSaxString(contentHandler, "NAME", xAttr.getName());
    if (xAttr.getValue() != null) {
      try {
        XMLUtils.addSaxString(contentHandler, "VALUE",
            XAttrCodec.encodeValue(xAttr.getValue(), XAttrCodec.HEX));
      } catch (IOException e) {
        throw new SAXException(e);
      }
    }
    contentHandler.endElement("", "", "XATTR");
  }
}
 
源代码3 项目: hadoop   文件: FSImageFormatPBINode.java
private static XAttrFeatureProto.Builder buildXAttrs(XAttrFeature f,
    final SaverContext.DeduplicationMap<String> stringMap) {
  XAttrFeatureProto.Builder b = XAttrFeatureProto.newBuilder();
  for (XAttr a : f.getXAttrs()) {
    XAttrCompactProto.Builder xAttrCompactBuilder = XAttrCompactProto.
        newBuilder();
    int nsOrd = a.getNameSpace().ordinal();
    Preconditions.checkArgument(nsOrd < 8, "Too many namespaces.");
    int v = ((nsOrd & XATTR_NAMESPACE_MASK) << XATTR_NAMESPACE_OFFSET)
        | ((stringMap.getId(a.getName()) & XATTR_NAME_MASK) <<
            XATTR_NAME_OFFSET);
    v |= (((nsOrd >> 2) & XATTR_NAMESPACE_EXT_MASK) <<
        XATTR_NAMESPACE_EXT_OFFSET);
    xAttrCompactBuilder.setName(v);
    if (a.getValue() != null) {
      xAttrCompactBuilder.setValue(PBHelper.getByteString(a.getValue()));
    }
    b.addXAttrs(xAttrCompactBuilder.build());
  }
  
  return b;
}
 
源代码4 项目: hadoop   文件: XAttrPermissionFilter.java
static void checkPermissionForApi(FSPermissionChecker pc, XAttr xAttr,
    boolean isRawPath)
    throws AccessControlException {
  final boolean isSuperUser = pc.isSuperUser();
  if (xAttr.getNameSpace() == XAttr.NameSpace.USER || 
      (xAttr.getNameSpace() == XAttr.NameSpace.TRUSTED && isSuperUser)) {
    return;
  }
  if (xAttr.getNameSpace() == XAttr.NameSpace.RAW &&
      isRawPath && isSuperUser) {
    return;
  }
  if (XAttrHelper.getPrefixName(xAttr).
      equals(SECURITY_XATTR_UNREADABLE_BY_SUPERUSER)) {
    if (xAttr.getValue() != null) {
      throw new AccessControlException("Attempt to set a value for '" +
          SECURITY_XATTR_UNREADABLE_BY_SUPERUSER +
          "'. Values are not allowed for this xattr.");
    }
    return;
  }
  throw new AccessControlException("User doesn't have permission for xattr: "
      + XAttrHelper.getPrefixName(xAttr));
}
 
源代码5 项目: hadoop   文件: FSDirXAttrOp.java
/**
 * Verifies that the combined size of the name and value of an xattr is within
 * the configured limit. Setting a limit of zero disables this check.
 */
private static void checkXAttrSize(FSDirectory fsd, XAttr xAttr) {
  if (fsd.getXattrMaxSize() == 0) {
    return;
  }
  int size = xAttr.getName().getBytes(Charsets.UTF_8).length;
  if (xAttr.getValue() != null) {
    size += xAttr.getValue().length;
  }
  if (size > fsd.getXattrMaxSize()) {
    throw new HadoopIllegalArgumentException(
        "The XAttr is too big. The maximum combined size of the"
        + " name and value is " + fsd.getXattrMaxSize()
        + ", but the total size is " + size);
  }
}
 
源代码6 项目: hadoop   文件: PBHelper.java
public static List<XAttrProto> convertXAttrProto(
    List<XAttr> xAttrSpec) {
  if (xAttrSpec == null) {
    return Lists.newArrayListWithCapacity(0);
  }
  ArrayList<XAttrProto> xAttrs = Lists.newArrayListWithCapacity(
      xAttrSpec.size());
  for (XAttr a : xAttrSpec) {
    XAttrProto.Builder builder = XAttrProto.newBuilder();
    builder.setNamespace(convert(a.getNameSpace()));
    if (a.getName() != null) {
      builder.setName(a.getName());
    }
    if (a.getValue() != null) {
      builder.setValue(getByteString(a.getValue()));
    }
    xAttrs.add(builder.build());
  }
  return xAttrs;
}
 
源代码7 项目: big-c   文件: XAttrHelper.java
/**
 * Build xattr map from <code>XAttr</code> list, the key is 
 * xattr name with prefix, and value is xattr value. 
 */
public static Map<String, byte[]> buildXAttrMap(List<XAttr> xAttrs) {
  if (xAttrs == null) {
    return null;
  }
  Map<String, byte[]> xAttrMap = Maps.newHashMap();
  for (XAttr xAttr : xAttrs) {
    String name = getPrefixName(xAttr);
    byte[] value = xAttr.getValue();
    if (value == null) {
      value = new byte[0];
    }
    xAttrMap.put(name, value);
  }
  
  return xAttrMap;
}
 
源代码8 项目: big-c   文件: FSEditLogOp.java
private static void appendXAttrsToXml(ContentHandler contentHandler,
    List<XAttr> xAttrs) throws SAXException {
  for (XAttr xAttr: xAttrs) {
    contentHandler.startElement("", "", "XATTR", new AttributesImpl());
    XMLUtils.addSaxString(contentHandler, "NAMESPACE",
        xAttr.getNameSpace().toString());
    XMLUtils.addSaxString(contentHandler, "NAME", xAttr.getName());
    if (xAttr.getValue() != null) {
      try {
        XMLUtils.addSaxString(contentHandler, "VALUE",
            XAttrCodec.encodeValue(xAttr.getValue(), XAttrCodec.HEX));
      } catch (IOException e) {
        throw new SAXException(e);
      }
    }
    contentHandler.endElement("", "", "XATTR");
  }
}
 
源代码9 项目: big-c   文件: FSImageFormatPBINode.java
private static XAttrFeatureProto.Builder buildXAttrs(XAttrFeature f,
    final SaverContext.DeduplicationMap<String> stringMap) {
  XAttrFeatureProto.Builder b = XAttrFeatureProto.newBuilder();
  for (XAttr a : f.getXAttrs()) {
    XAttrCompactProto.Builder xAttrCompactBuilder = XAttrCompactProto.
        newBuilder();
    int nsOrd = a.getNameSpace().ordinal();
    Preconditions.checkArgument(nsOrd < 8, "Too many namespaces.");
    int v = ((nsOrd & XATTR_NAMESPACE_MASK) << XATTR_NAMESPACE_OFFSET)
        | ((stringMap.getId(a.getName()) & XATTR_NAME_MASK) <<
            XATTR_NAME_OFFSET);
    v |= (((nsOrd >> 2) & XATTR_NAMESPACE_EXT_MASK) <<
        XATTR_NAMESPACE_EXT_OFFSET);
    xAttrCompactBuilder.setName(v);
    if (a.getValue() != null) {
      xAttrCompactBuilder.setValue(PBHelper.getByteString(a.getValue()));
    }
    b.addXAttrs(xAttrCompactBuilder.build());
  }
  
  return b;
}
 
源代码10 项目: big-c   文件: XAttrPermissionFilter.java
static void checkPermissionForApi(FSPermissionChecker pc, XAttr xAttr,
    boolean isRawPath)
    throws AccessControlException {
  final boolean isSuperUser = pc.isSuperUser();
  if (xAttr.getNameSpace() == XAttr.NameSpace.USER || 
      (xAttr.getNameSpace() == XAttr.NameSpace.TRUSTED && isSuperUser)) {
    return;
  }
  if (xAttr.getNameSpace() == XAttr.NameSpace.RAW &&
      isRawPath && isSuperUser) {
    return;
  }
  if (XAttrHelper.getPrefixName(xAttr).
      equals(SECURITY_XATTR_UNREADABLE_BY_SUPERUSER)) {
    if (xAttr.getValue() != null) {
      throw new AccessControlException("Attempt to set a value for '" +
          SECURITY_XATTR_UNREADABLE_BY_SUPERUSER +
          "'. Values are not allowed for this xattr.");
    }
    return;
  }
  throw new AccessControlException("User doesn't have permission for xattr: "
      + XAttrHelper.getPrefixName(xAttr));
}
 
源代码11 项目: big-c   文件: FSDirXAttrOp.java
/**
 * Verifies that the combined size of the name and value of an xattr is within
 * the configured limit. Setting a limit of zero disables this check.
 */
private static void checkXAttrSize(FSDirectory fsd, XAttr xAttr) {
  if (fsd.getXattrMaxSize() == 0) {
    return;
  }
  int size = xAttr.getName().getBytes(Charsets.UTF_8).length;
  if (xAttr.getValue() != null) {
    size += xAttr.getValue().length;
  }
  if (size > fsd.getXattrMaxSize()) {
    throw new HadoopIllegalArgumentException(
        "The XAttr is too big. The maximum combined size of the"
        + " name and value is " + fsd.getXattrMaxSize()
        + ", but the total size is " + size);
  }
}
 
源代码12 项目: big-c   文件: PBHelper.java
public static List<XAttrProto> convertXAttrProto(
    List<XAttr> xAttrSpec) {
  if (xAttrSpec == null) {
    return Lists.newArrayListWithCapacity(0);
  }
  ArrayList<XAttrProto> xAttrs = Lists.newArrayListWithCapacity(
      xAttrSpec.size());
  for (XAttr a : xAttrSpec) {
    XAttrProto.Builder builder = XAttrProto.newBuilder();
    builder.setNamespace(convert(a.getNameSpace()));
    if (a.getName() != null) {
      builder.setName(a.getName());
    }
    if (a.getValue() != null) {
      builder.setValue(getByteString(a.getValue()));
    }
    xAttrs.add(builder.build());
  }
  return xAttrs;
}
 
源代码13 项目: hadoop   文件: XAttrHelper.java
/**
 * Get value of first xattr from <code>XAttr</code> list
 */
public static byte[] getFirstXAttrValue(List<XAttr> xAttrs) {
  byte[] value = null;
  XAttr xAttr = getFirstXAttr(xAttrs);
  if (xAttr != null) {
    value = xAttr.getValue();
    if (value == null) {
      value = new byte[0]; // xattr exists, but no value.
    }
  }
  return value;
}
 
源代码14 项目: hadoop   文件: INodeDirectory.java
@Override
public byte getLocalStoragePolicyID() {
  XAttrFeature f = getXAttrFeature();
  ImmutableList<XAttr> xattrs = f == null ? ImmutableList.<XAttr> of() : f
      .getXAttrs();
  for (XAttr xattr : xattrs) {
    if (BlockStoragePolicySuite.isStoragePolicyXAttr(xattr)) {
      return (xattr.getValue())[0];
    }
  }
  return ID_UNSPECIFIED;
}
 
源代码15 项目: hadoop   文件: PBHelper.java
public static XAttrProto convertXAttrProto(XAttr a) {
  XAttrProto.Builder builder = XAttrProto.newBuilder();
  builder.setNamespace(convert(a.getNameSpace()));
  if (a.getName() != null) {
    builder.setName(a.getName());
  }
  if (a.getValue() != null) {
    builder.setValue(getByteString(a.getValue()));
  }
  return builder.build();
}
 
源代码16 项目: big-c   文件: XAttrHelper.java
/**
 * Get value of first xattr from <code>XAttr</code> list
 */
public static byte[] getFirstXAttrValue(List<XAttr> xAttrs) {
  byte[] value = null;
  XAttr xAttr = getFirstXAttr(xAttrs);
  if (xAttr != null) {
    value = xAttr.getValue();
    if (value == null) {
      value = new byte[0]; // xattr exists, but no value.
    }
  }
  return value;
}
 
源代码17 项目: big-c   文件: INodeDirectory.java
@Override
public byte getLocalStoragePolicyID() {
  XAttrFeature f = getXAttrFeature();
  ImmutableList<XAttr> xattrs = f == null ? ImmutableList.<XAttr> of() : f
      .getXAttrs();
  for (XAttr xattr : xattrs) {
    if (BlockStoragePolicySuite.isStoragePolicyXAttr(xattr)) {
      return (xattr.getValue())[0];
    }
  }
  return ID_UNSPECIFIED;
}
 
源代码18 项目: big-c   文件: PBHelper.java
public static XAttrProto convertXAttrProto(XAttr a) {
  XAttrProto.Builder builder = XAttrProto.newBuilder();
  builder.setNamespace(convert(a.getNameSpace()));
  if (a.getName() != null) {
    builder.setName(a.getName());
  }
  if (a.getValue() != null) {
    builder.setValue(getByteString(a.getValue()));
  }
  return builder.build();
}