test setfattr : Add an xattr -fs NAMENODE -touchz /file1 -fs NAMENODE -setfattr -n user.a1 -v 123456 /file1 -fs NAMENODE -getfattr -d /file1 -fs NAMENODE -rm /file1 SubstringComparator # file: /file1 SubstringComparator user.a1="123456" setfattr : Add an xattr which has wrong prefix -fs NAMENODE -touchz /file1 -fs NAMENODE -setfattr -n uuu.a1 -v 123456 /file1 -fs NAMENODE -rm /file1 SubstringComparator name must be prefixed with user/trusted/security/system/raw, followed by a '.' setfattr : Add an xattr of trusted namespace -fs NAMENODE -touchz /file1 -fs NAMENODE -setfattr -n trusted.a1 -v 123456 /file1 -fs NAMENODE -getfattr -d /file1 -fs NAMENODE -rm /file1 SubstringComparator # file: /file1 SubstringComparator trusted.a1="123456" setfattr : Add an xattr of system namespace -fs NAMENODE -touchz /file1 -fs NAMENODE -setfattr -n system.a1 -v 123456 /file1 -fs NAMENODE -rm /file1 SubstringComparator setfattr: User doesn't have permission for xattr: system.a1 setfattr : Add an xattr of security namespace -fs NAMENODE -touchz /file1 -fs NAMENODE -setfattr -n security.a1 -v 123456 /file1 -fs NAMENODE -rm /file1 SubstringComparator setfattr: User doesn't have permission for xattr: security.a1 setfattr : Add an xattr of raw namespace -fs NAMENODE -touchz /file1 -fs NAMENODE -setfattr -n raw.a1 -v 123456 /file1 -fs NAMENODE -rm /file1 SubstringComparator setfattr: User doesn't have permission for xattr: raw.a1 setfattr : Add an xattr of raw namespace -fs NAMENODE -touchz /file1 -fs NAMENODE -setfattr -n raw.a1 -v 123456 /.reserved/raw/file1 -fs NAMENODE -getfattr -n raw.a1 /.reserved/raw/file1 -fs NAMENODE -rm /file1 SubstringComparator raw.a1="123456" setfattr : Add an xattr, and encode is text -fs NAMENODE -touchz /file1 -fs NAMENODE -setfattr -n user.a1 -v "123456" /file1 -fs NAMENODE -getfattr -d /file1 -fs NAMENODE -rm /file1 SubstringComparator # file: /file1 SubstringComparator user.a1="123456" setfattr : Add an xattr, and encode is hex -fs NAMENODE -touchz /file1 -fs NAMENODE -setfattr -n user.a1 -v 0x313233343536 /file1 -fs NAMENODE -getfattr -d /file1 -fs NAMENODE -rm /file1 SubstringComparator # file: /file1 SubstringComparator user.a1="123456" setfattr : Add an xattr, and encode is base64 -fs NAMENODE -touchz /file1 -fs NAMENODE -setfattr -n user.a1 -v 0sMTIzNDU2 /file1 -fs NAMENODE -getfattr -d /file1 -fs NAMENODE -rm /file1 SubstringComparator # file: /file1 SubstringComparator user.a1="123456" setfattr : Add multiple xattrs -fs NAMENODE -touchz /file1 -fs NAMENODE -setfattr -n user.a1 -v 123456 /file1 -fs NAMENODE -setfattr -n user.a2 -v abc /file1 -fs NAMENODE -getfattr -d /file1 -fs NAMENODE -rm /file1 SubstringComparator # file: /file1 SubstringComparator user.a1="123456" SubstringComparator user.a2="abc" setfattr : Remove an xattr -fs NAMENODE -touchz /file1 -fs NAMENODE -setfattr -n user.a1 -v 123456 /file1 -fs NAMENODE -setfattr -n user.a2 -v abc /file1 -fs NAMENODE -setfattr -x user.a1 /file1 -fs NAMENODE -getfattr -d /file1 -fs NAMENODE -rm /file1 ExactComparator # file: /file1#LF#user.a2="abc"#LF# setfattr : Remove an xattr which doesn't exist -fs NAMENODE -touchz /file1 -fs NAMENODE -setfattr -n user.a1 -v 123456 /file1 -fs NAMENODE -setfattr -x user.a2 /file1 -fs NAMENODE -getfattr -d /file1 -fs NAMENODE -rm /file1 ExactComparator # file: /file1#LF#user.a1="123456"#LF# setfattr : Remove an xattr of raw namespace -fs NAMENODE -touchz /file1 -fs NAMENODE -setfattr -n raw.a1 -v 123456 /.reserved/raw/file1 -fs NAMENODE -setfattr -n raw.a2 -v 123456 /.reserved/raw/file1 -fs NAMENODE -setfattr -x raw.a2 /.reserved/raw/file1 -fs NAMENODE -getfattr -d /.reserved/raw/file1 -fs NAMENODE -rm /file1 SubstringComparator # file: /.reserved/raw/file1#LF#raw.a1="123456"#LF# getfattr : Get an xattr -fs NAMENODE -touchz /file1 -fs NAMENODE -setfattr -n user.a1 -v 123456 /file1 -fs NAMENODE -setfattr -n user.a2 -v abc /file1 -fs NAMENODE -getfattr -n user.a1 /file1 -fs NAMENODE -rm /file1 SubstringComparator # file: /file1 SubstringComparator user.a1="123456" getfattr : Get an xattr which doesn't exist -fs NAMENODE -touchz /file1 -fs NAMENODE -getfattr -n user.a1 /file1 -fs NAMENODE -rm /file1 ExactComparator # file: /file1#LF# getfattr : Get an xattr, and encode is text -fs NAMENODE -touchz /file1 -fs NAMENODE -setfattr -n user.a1 -v 123456 /file1 -fs NAMENODE -setfattr -n user.a2 -v abc /file1 -fs NAMENODE -getfattr -n user.a1 -e text /file1 -fs NAMENODE -rm /file1 SubstringComparator # file: /file1 SubstringComparator user.a1="123456" getfattr : Get an xattr, and encode is hex -fs NAMENODE -touchz /file1 -fs NAMENODE -setfattr -n user.a1 -v 123456 /file1 -fs NAMENODE -setfattr -n user.a2 -v abc /file1 -fs NAMENODE -getfattr -n user.a1 -e hex /file1 -fs NAMENODE -rm /file1 SubstringComparator # file: /file1 SubstringComparator user.a1=0x313233343536 getfattr : Get an xattr, and encode is base64 -fs NAMENODE -touchz /file1 -fs NAMENODE -setfattr -n user.a1 -v 123456 /file1 -fs NAMENODE -setfattr -n user.a2 -v abc /file1 -fs NAMENODE -getfattr -n user.a1 -e base64 /file1 -fs NAMENODE -rm /file1 SubstringComparator # file: /file1 SubstringComparator user.a1=0sMTIzNDU2 getfattr : Get an xattr, and encode is invalid -fs NAMENODE -touchz /file1 -fs NAMENODE -setfattr -n user.a1 -v 123456 /file1 -fs NAMENODE -setfattr -n user.a2 -v abc /file1 -fs NAMENODE -getfattr -n user.a1 -e invalid /file1 -fs NAMENODE -rm /file1 SubstringComparator Invalid/unsupported encoding option specified: invalid getfattr -R : recursive -fs NAMENODE -mkdir /dir1 -fs NAMENODE -setfattr -n user.a1 -v 123456 /dir1 -fs NAMENODE -mkdir /dir1/dir2 -fs NAMENODE -setfattr -n user.a2 -v abc /dir1/dir2 -fs NAMENODE -getfattr -R -d /dir1 -fs NAMENODE -rm -R /dir1 ExactComparator # file: /dir1#LF#user.a1="123456"#LF## file: /dir1/dir2#LF#user.a2="abc"#LF#