示例#1
0
        /// <summary>Convert a AclStatus object to a Json string.</summary>
        public static string ToJsonString(AclStatus status)
        {
            if (status == null)
            {
                return(null);
            }
            IDictionary <string, object> m = new SortedDictionary <string, object>();

            m["owner"]     = status.GetOwner();
            m["group"]     = status.GetGroup();
            m["stickyBit"] = status.IsStickyBit();
            IList <string> stringEntries = new AList <string>();

            foreach (AclEntry entry in status.GetEntries())
            {
                stringEntries.AddItem(entry.ToString());
            }
            m["entries"] = stringEntries;
            FsPermission perm = status.GetPermission();

            if (perm != null)
            {
                m["permission"] = ToString(perm);
                if (perm.GetAclBit())
                {
                    m["aclBit"] = true;
                }
                if (perm.GetEncryptedBit())
                {
                    m["encBit"] = true;
                }
            }
            IDictionary <string, IDictionary <string, object> > finalMap = new SortedDictionary <
                string, IDictionary <string, object> >();

            finalMap[typeof(AclStatus).Name] = m;
            ObjectMapper mapper = new ObjectMapper();

            try
            {
                return(mapper.WriteValueAsString(finalMap));
            }
            catch (IOException)
            {
            }
            return(null);
        }
示例#2
0
        /// <summary>Convert a HdfsFileStatus object to a Json string.</summary>
        public static string ToJsonString(HdfsFileStatus status, bool includeType)
        {
            if (status == null)
            {
                return(null);
            }
            IDictionary <string, object> m = new SortedDictionary <string, object>();

            m["pathSuffix"] = status.GetLocalName();
            m["type"]       = JsonUtil.PathType.ValueOf(status);
            if (status.IsSymlink())
            {
                m["symlink"] = status.GetSymlink();
            }
            m["length"] = status.GetLen();
            m["owner"]  = status.GetOwner();
            m["group"]  = status.GetGroup();
            FsPermission perm = status.GetPermission();

            m["permission"] = ToString(perm);
            if (perm.GetAclBit())
            {
                m["aclBit"] = true;
            }
            if (perm.GetEncryptedBit())
            {
                m["encBit"] = true;
            }
            m["accessTime"]       = status.GetAccessTime();
            m["modificationTime"] = status.GetModificationTime();
            m["blockSize"]        = status.GetBlockSize();
            m["replication"]      = status.GetReplication();
            m["fileId"]           = status.GetFileId();
            m["childrenNum"]      = status.GetChildrenNum();
            m["storagePolicy"]    = status.GetStoragePolicy();
            ObjectMapper mapper = new ObjectMapper();

            try
            {
                return(includeType ? ToJsonString(typeof(FileStatus), m) : mapper.WriteValueAsString
                           (m));
            }
            catch (IOException)
            {
            }
            return(null);
        }
示例#3
0
 /// <summary>Tell whether the underlying file or directory is encrypted or not.</summary>
 /// <returns>true if the underlying file is encrypted.</returns>
 public virtual bool IsEncrypted()
 {
     return(permission.GetEncryptedBit());
 }