Exemple #1
0
        public async Task <HttpResponseMessage> Stats()
        {
            var fileSystemsDocument = GetFileSystemsDocuments();
            var fileSystemsData     = GetFileSystemsData(fileSystemsDocument);
            var fileSystemsNames    = fileSystemsData.Select(fileSystemObject => fileSystemObject.Name).ToArray();

            var stats = new List <FileSystemStats>();

            foreach (var fileSystemName in fileSystemsNames)
            {
                Task <RavenFileSystem> fsTask;
                if (!FileSystemsLandlord.TryGetFileSystem(fileSystemName, out fsTask))                 // we only care about active file systems
                {
                    continue;
                }

                if (fsTask.IsCompleted == false)
                {
                    continue;                     // we don't care about in process of starting file systems
                }
                var ravenFileSystem = await fsTask;
                var fsStats         = ravenFileSystem.GetFileSystemStats();
                stats.Add(fsStats);
            }

            return(GetMessageWithObject(stats).WithNoCache());
        }