Search in sources :

Example 1 with Stanza

use of org.apache.hadoop.hdfs.util.XMLUtils.Stanza in project hadoop by apache.

the class FSEditLogOp method readAclEntriesFromXml.

private static List<AclEntry> readAclEntriesFromXml(Stanza st) {
    List<AclEntry> aclEntries = Lists.newArrayList();
    if (!st.hasChildren("ENTRY"))
        return null;
    List<Stanza> stanzas = st.getChildren("ENTRY");
    for (Stanza s : stanzas) {
        AclEntry e = new AclEntry.Builder().setScope(AclEntryScope.valueOf(s.getValue("SCOPE"))).setType(AclEntryType.valueOf(s.getValue("TYPE"))).setName(s.getValueOrNull("NAME")).setPermission(fsActionFromXml(s)).build();
        aclEntries.add(e);
    }
    return aclEntries;
}
Also used : Stanza(org.apache.hadoop.hdfs.util.XMLUtils.Stanza) AclEntry(org.apache.hadoop.fs.permission.AclEntry)

Example 2 with Stanza

use of org.apache.hadoop.hdfs.util.XMLUtils.Stanza in project hadoop by apache.

the class FSEditLogOp method permissionStatusFromXml.

public static PermissionStatus permissionStatusFromXml(Stanza st) throws InvalidXmlException {
    Stanza status = st.getChildren("PERMISSION_STATUS").get(0);
    String username = status.getValue("USERNAME");
    String groupname = status.getValue("GROUPNAME");
    FsPermission mode = fsPermissionFromXml(status);
    return new PermissionStatus(username, groupname, mode);
}
Also used : Stanza(org.apache.hadoop.hdfs.util.XMLUtils.Stanza) FsPermission(org.apache.hadoop.fs.permission.FsPermission) PermissionStatus(org.apache.hadoop.fs.permission.PermissionStatus)

Example 3 with Stanza

use of org.apache.hadoop.hdfs.util.XMLUtils.Stanza in project hadoop by apache.

the class FSEditLogOp method readXAttrsFromXml.

private static List<XAttr> readXAttrsFromXml(Stanza st) throws InvalidXmlException {
    if (!st.hasChildren("XATTR")) {
        return null;
    }
    List<Stanza> stanzas = st.getChildren("XATTR");
    List<XAttr> xattrs = Lists.newArrayListWithCapacity(stanzas.size());
    for (Stanza a : stanzas) {
        XAttr.Builder builder = new XAttr.Builder();
        builder.setNameSpace(XAttr.NameSpace.valueOf(a.getValue("NAMESPACE"))).setName(a.getValue("NAME"));
        String v = a.getValueOrNull("VALUE");
        if (v != null) {
            try {
                builder.setValue(XAttrCodec.decodeValue(v));
            } catch (IOException e) {
                throw new InvalidXmlException(e.toString());
            }
        }
        xattrs.add(builder.build());
    }
    return xattrs;
}
Also used : InvalidXmlException(org.apache.hadoop.hdfs.util.XMLUtils.InvalidXmlException) Stanza(org.apache.hadoop.hdfs.util.XMLUtils.Stanza) IOException(java.io.IOException) XAttr(org.apache.hadoop.fs.XAttr)

Example 4 with Stanza

use of org.apache.hadoop.hdfs.util.XMLUtils.Stanza in project hadoop by apache.

the class OfflineEditsXmlLoader method startElement.

@Override
public void startElement(String uri, String name, String qName, Attributes atts) {
    switch(state) {
        case EXPECT_EDITS_TAG:
            if (!name.equals("EDITS")) {
                throw new InvalidXmlException("you must put " + "<EDITS> at the top of the XML file! " + "Got tag " + name + " instead");
            }
            state = ParseState.EXPECT_VERSION;
            break;
        case EXPECT_VERSION:
            if (!name.equals("EDITS_VERSION")) {
                throw new InvalidXmlException("you must put " + "<EDITS_VERSION> at the top of the XML file! " + "Got tag " + name + " instead");
            }
            break;
        case EXPECT_RECORD:
            if (!name.equals("RECORD")) {
                throw new InvalidXmlException("expected a <RECORD> tag");
            }
            state = ParseState.EXPECT_OPCODE;
            break;
        case EXPECT_OPCODE:
            if (!name.equals("OPCODE")) {
                throw new InvalidXmlException("expected an <OPCODE> tag");
            }
            break;
        case EXPECT_DATA:
            if (!name.equals("DATA")) {
                throw new InvalidXmlException("expected a <DATA> tag");
            }
            stanza = new Stanza();
            state = ParseState.HANDLE_DATA;
            break;
        case HANDLE_DATA:
            Stanza parent = stanza;
            Stanza child = new Stanza();
            stanzaStack.push(parent);
            stanza = child;
            parent.addChild(name, child);
            break;
        case EXPECT_END:
            throw new InvalidXmlException("not expecting anything after </EDITS>");
    }
}
Also used : InvalidXmlException(org.apache.hadoop.hdfs.util.XMLUtils.InvalidXmlException) Stanza(org.apache.hadoop.hdfs.util.XMLUtils.Stanza)

Aggregations

Stanza (org.apache.hadoop.hdfs.util.XMLUtils.Stanza)4 InvalidXmlException (org.apache.hadoop.hdfs.util.XMLUtils.InvalidXmlException)2 IOException (java.io.IOException)1 XAttr (org.apache.hadoop.fs.XAttr)1 AclEntry (org.apache.hadoop.fs.permission.AclEntry)1 FsPermission (org.apache.hadoop.fs.permission.FsPermission)1 PermissionStatus (org.apache.hadoop.fs.permission.PermissionStatus)1