private string get_DiskUsageInfo() { StringBuilder sb = new StringBuilder(); KeyValuePair <string, string>[] dirs = new KeyValuePair <string, string>[] { new KeyValuePair <string, string>("Thumbnails", Program.thumb_save_dir), new KeyValuePair <string, string>("Full files", Program.file_save_dir), new KeyValuePair <string, string>("API Cached files", Program.api_cache_dir), new KeyValuePair <string, string>("Post files", Program.post_files_dir), // new KeyValuePair<string, string>("Temporary files", Program.temp_files_dir), }; foreach (KeyValuePair <string, string> a in dirs.OrderBy(x => x.Key)) { DirectoryStatsEntry ds = FileSystemStats.GetDirStats(a.Value); if (ds != null) { sb.Append("<tr>"); sb.AppendFormat("<td>{0}</td>", ds.FileCount); sb.AppendFormat("<td>{0}</td>", a.Key); sb.AppendFormat("<td>{0}</td>", Program.format_size_string(ds.TotalSize)); sb.AppendFormat("<td>{0}</td>", Program.format_size_string(ds.AverageFileSize)); sb.AppendFormat("<td>{0}</td>", Program.format_size_string(ds.LargestFile)); sb.AppendFormat("<td>{0}</td>", Program.format_size_string(ds.SmallestFile)); sb.Append("</tr>"); } } return(sb.ToString()); }
public static string GetStatsReportLine(FileSystemStats stats) { return(PadIntToLength(stats.FilesRead, 12) + " " + PadIntToLength(stats.FilesWritten, 12) + " " + PadIntToLength(stats.BytesRead, 12) + " " + PadIntToLength(stats.BytesWritten, 12)); }
public static void AssertZeroStats(FileSystemStats stats) { Assert.IsNotNull(stats); Assert.AreEqual(0, stats.FilesRead); Assert.AreEqual(0, stats.FilesWritten); Assert.AreEqual(0, stats.BytesRead); Assert.AreEqual(0, stats.BytesWritten); }
public static FileSystemStats CopyStats(FileSystemStats stats) { return(new FileSystemStats() { FilesRead = stats.FilesRead, FilesWritten = stats.FilesWritten, BytesRead = stats.BytesRead, BytesWritten = stats.BytesWritten }); }
//FsctlAllowExtendedDasdIo //FsctlCreateOrGetObjectId //FsctlDeleteObjectId //FsctlDeleteReparsePoint //FsctlDismountVolume //FsctlDumpPropertyData //FsctlEnableUpgrade //FsctlEncryptionFsctlIo //FsctlExtendVolume /// <summary><see cref="http://msdn.microsoft.com/en-us/library/windows/desktop/aa364565(v=vs.85).aspx"/></summary> public FileSystemStats[] FileSystemGetStatistics() { byte[] data = DeviceIoControlHelper.InvokeIoControlUnknownSize(Handle, IOControlCode.FsctlFileSystemGetStatistics, 512); FileSystemStats[] res; using (UnmanagedMemory mem = new UnmanagedMemory(data)) { IntPtr currentDataPtr = mem; FILESYSTEM_STATISTICS firstStats = (FILESYSTEM_STATISTICS)Marshal.PtrToStructure(currentDataPtr, typeof(FILESYSTEM_STATISTICS)); int fsStatsSize = Marshal.SizeOf(typeof(FILESYSTEM_STATISTICS)); int elementSize = (int)firstStats.SizeOfCompleteStructure; int procCount = data.Length / elementSize; res = new FileSystemStats[procCount]; for (int i = 0; i < procCount; i++) { res[i] = new FileSystemStats(); res[i].Stats = (FILESYSTEM_STATISTICS)Marshal.PtrToStructure(currentDataPtr, typeof(FILESYSTEM_STATISTICS)); switch (res[i].Stats.FileSystemType) { case FILESYSTEM_STATISTICS_TYPE.FILESYSTEM_STATISTICS_TYPE_NTFS: NTFS_STATISTICS ntfsStats = (NTFS_STATISTICS)Marshal.PtrToStructure(currentDataPtr + fsStatsSize, typeof(NTFS_STATISTICS)); res[i].FSStats = ntfsStats; break; case FILESYSTEM_STATISTICS_TYPE.FILESYSTEM_STATISTICS_TYPE_FAT: FAT_STATISTICS fatStats = (FAT_STATISTICS)Marshal.PtrToStructure(currentDataPtr + fsStatsSize, typeof(FAT_STATISTICS)); res[i].FSStats = fatStats; break; case FILESYSTEM_STATISTICS_TYPE.FILESYSTEM_STATISTICS_TYPE_EXFAT: EXFAT_STATISTICS exFatStats = (EXFAT_STATISTICS)Marshal.PtrToStructure(currentDataPtr + fsStatsSize, typeof(EXFAT_STATISTICS)); res[i].FSStats = exFatStats; break; default: throw new ArgumentOutOfRangeException(); } currentDataPtr += elementSize; } } return(res); }
public FileSystemStats GetFileSystemStats() { var fsStats = new FileSystemStats { Name = Name, Metrics = CreateMetrics(), ActiveSyncs = SynchronizationTask.Queue.Active.ToList(), PendingSyncs = SynchronizationTask.Queue.Pending.ToList(), }; Storage.Batch(accessor => { fsStats.FileCount = accessor.GetFileCount(); }); return(fsStats); }
private List <FileSystemData> GetFileSystemsData(IEnumerable <RavenJToken> fileSystems) { return(fileSystems .Select(fileSystem => { var bundles = new string[] { }; var settings = fileSystem.Value <RavenJObject>("Settings"); if (settings != null) { var activeBundles = settings.Value <string>("Raven/ActiveBundles"); if (activeBundles != null) { bundles = activeBundles.Split(';'); } } var fsName = fileSystem.Value <RavenJObject>("@metadata").Value <string>("@id").Replace(Constants.FileSystem.Prefix, string.Empty); var isFileSystemLoaded = FileSystemsLandlord.IsFileSystemLoaded(fsName); FileSystemStats stats = null; if (isFileSystemLoaded) { try { var fs = FileSystemsLandlord.GetResourceInternal(fsName).Result; if (fs != null) { stats = fs.GetFileSystemStats(); } } catch (Exception) { //the file system is shutting down or locked //we can ignore this } } return new FileSystemData { Name = fsName, Disabled = fileSystem.Value <bool>("Disabled"), Bundles = bundles, IsAdminCurrentTenant = true, IsLoaded = isFileSystemLoaded, Stats = stats }; }).ToList()); }
protected void Assert(FileSystemStats fileSystem) { fileSystem.Should().NotBeNull(); //fileSystem.Timestamp.Should().BeGreaterThan(0); fileSystem.Total.Should().NotBeNull(); //fileSystem.Total.AvailableInBytes.Should().BeGreaterThan(0); //fileSystem.Total.FreeInBytes.Should().BeGreaterThan(0); //fileSystem.Total.TotalInBytes.Should().BeGreaterThan(0); fileSystem.Data.Should().NotBeEmpty(); var path = fileSystem.Data.First(); //path.AvailableInBytes.Should().BeGreaterThan(0); //path.FreeInBytes.Should().BeGreaterThan(0); //path.TotalInBytes.Should().BeGreaterThan(0); path.Mount.Should().NotBeNullOrWhiteSpace(); path.Path.Should().NotBeNullOrWhiteSpace(); path.Type.Should().NotBeNullOrWhiteSpace(); }
public HttpResponseMessage Get() { var count = 0; Storage.Batch(accessor => { count = accessor.GetFileCount(); }); var stats = new FileSystemStats { Name = FileSystemName, FileCount = count, Metrics = FileSystem.CreateMetrics(), ActiveSyncs = FileSystem.SynchronizationTask.Queue.Active.ToList(), PendingSyncs = FileSystem.SynchronizationTask.Queue.Pending.ToList() }; return(this.GetMessageWithObject(stats).WithNoCache()); }
public Task <FileSystemStats[]> GetStats() { var count = 0; filesystem.Storage.Batch(accessor => { count = accessor.GetFileCount(); }); var stats = new FileSystemStats { Name = filesystem.Name, FileCount = count, Metrics = filesystem.CreateMetrics(), ActiveSyncs = filesystem.SynchronizationTask.Queue.Active.ToList(), PendingSyncs = filesystem.SynchronizationTask.Queue.Pending.ToList() }; return(new CompletedTask <FileSystemStats[]>(new [] { stats })); }
public override bool Process(HttpServer.IHttpRequest request, HttpServer.IHttpResponse response, HttpServer.Sessions.IHttpSession session) { string command = request.UriPath; if (command == "/settings") { StringBuilder page = new StringBuilder(Properties.Resources.settings_page); //-------------------- General Settings -------------------------- if (Settings.AutoStartManuallyAddedThreads) { page.Replace("{gs0c}", Checked); } else { page.Replace("{gs0c}", ""); } if (Settings.ThumbnailOnly) { page.Replace("{gs1c}", Checked); } else { page.Replace("{gs1c}", ""); } if (Settings.EnableFileStats) { page.Replace("{gs2c}", Checked); } else { page.Replace("{gs2c}", ""); } if (Settings.UseHttps) { page.Replace("{gs3c}", Checked); } else { page.Replace("{gs3c}", ""); } if (Settings.RemoveThreadsWhenTheyEnterArchivedState) { page.Replace("{gs4c}", Checked); } else { page.Replace("{gs4c}", ""); } if (Settings.SaveBannedFileThumbnail) { page.Replace("{gs5c}", Checked); } else { page.Replace("{gs5c}", ""); } if (Settings.CacheAPIFilesInMemory) { page.Replace("{gs6c}", Checked); } else { page.Replace("{gs6c}", ""); } //-------------------- Security Settings -------------------------- if (Settings.EnableAuthentication) { page.Replace("{ss0c}", Checked); } else { page.Replace("{ss0c}", ""); } if (Settings.AllowGuestAccess) { page.Replace("{ss1c}", Checked); } else { page.Replace("{ss1c}", ""); } page.Replace("{bauser}", string.IsNullOrEmpty(Settings.AuthUsername) ? "" : Settings.AuthUsername); page.Replace("{bapass}", string.IsNullOrEmpty(Settings.AuthPassword) ? "" : Settings.AuthPassword); //-------------------- FFMPEG Settings -------------------------- page.Replace("{ffpath}", Program.ffmpeg_path); if (Settings.ConvertGifsToWebm) { page.Replace("{ff0c}", Checked); } else { page.Replace("{ff0c}", ""); } if (Settings.ConvertWebmToMp4) { page.Replace("{ff1c}", Checked); } else { page.Replace("{ff1c}", ""); } if (Settings.Convert_Webmgif_To_Target) { page.Replace("{ff2c}", Checked); } else { page.Replace("{ff2c}", ""); } if (Settings.Convert_Webmgif_Target == Settings.X_Target.GIF) { page.Replace("{ff2s1o1c}", Selected); page.Replace("{ff2s1o2c}", ""); } else { page.Replace("{ff2s1o1c}", ""); page.Replace("{ff2s1o2c}", Selected); } if (Settings.Convert_Webmgif_only_devices) { page.Replace("{ff2s2o1c}", Selected); page.Replace("{ff2s2o2c}", ""); } else { page.Replace("{ff2s2o1c}", ""); page.Replace("{ff2s2o2c}", Selected); } //-------------------- File Queue Settings -------------------------- if (Settings.ListThumbsInQueue) { page.Replace("{fq0c}", Checked); } else { page.Replace("{fq0c}", ""); } /* * if (Settings.PrioritizeBumpLimit) * { * page.Replace("{fq1c}", Checked); * } * else * { * page.Replace("{fq1c}", ""); * } * * switch (Settings.FilePrioritizeMode) * { * case Settings.FilePrioritizeModeEnum.BoardSpeed: * page.Replace("{fq2s1o1c}", ""); * page.Replace("{fq2s1o2c}", ""); * page.Replace("{fq2s1o3c}", Selected); * break; * case Settings.FilePrioritizeModeEnum.LargerFirst: * page.Replace("{fq2s1o1c}", ""); * page.Replace("{fq2s1o2c}", Selected); * page.Replace("{fq2s1o3c}", ""); * break; * case Settings.FilePrioritizeModeEnum.SmallerFirst: * page.Replace("{fq2s1o1c}", Selected); * page.Replace("{fq2s1o2c}", ""); * page.Replace("{fq2s1o3c}", ""); * break; * default: * break; * } */ if (Settings.AutoRemoveCompleteFiles) { page.Replace("{fq3c}", Checked); } else { page.Replace("{fq3c}", ""); } response.Status = System.Net.HttpStatusCode.OK; response.ContentType = "text/html"; byte[] data = Encoding.UTF8.GetBytes(page.ToString()); response.ContentLength = data.Length; response.SendHeaders(); response.SendBody(data); return(true); } if (command.StartsWith("/settings/")) { // -------------- General Settings ------------ Settings.AutoStartManuallyAddedThreads = request.QueryString["gs0"].Value == "1"; Settings.ThumbnailOnly = request.QueryString["gs1"].Value == "1"; Settings.EnableFileStats = request.QueryString["gs2"].Value == "1"; Settings.UseHttps = request.QueryString["gs3"].Value == "1"; Settings.RemoveThreadsWhenTheyEnterArchivedState = request.QueryString["gs4"].Value == "1"; Settings.SaveBannedFileThumbnail = request.QueryString["gs5"].Value == "1"; Settings.CacheAPIFilesInMemory = request.QueryString["gs6"].Value == "1"; if (Settings.EnableFileStats) { FileSystemStats.Init(); } // -------------- Security Settings ------------ Settings.EnableAuthentication = request.QueryString["ss0"].Value == "1"; Settings.AllowGuestAccess = request.QueryString["ss1"].Value == "1"; Settings.AuthUsername = request.QueryString["ba_user"].Value; Settings.AuthPassword = request.QueryString["ba_pass"].Value; // -------------- FFMPEG Settings ------------ Settings.ConvertGifsToWebm = request.QueryString["ff0"].Value == "1"; Settings.ConvertWebmToMp4 = request.QueryString["ff1"].Value == "1"; Settings.Convert_Webmgif_To_Target = request.QueryString["ff2"].Value == "1"; if (request.QueryString["ff2s1"].Value == "gif") { Settings.Convert_Webmgif_Target = Settings.X_Target.GIF; } else { Settings.Convert_Webmgif_Target = Settings.X_Target.MP4; } Settings.Convert_Webmgif_only_devices = request.QueryString["ff2s2"].Value == "ff2s2o1"; // -------------- File Queue Settings ------------ Settings.ListThumbsInQueue = request.QueryString["fq0"].Value == "1"; /* * Settings.PrioritizeBumpLimit = request.QueryString["fq1"].Value == "1"; * * switch (request.QueryString["fq2s1"].Value) * { * case "fq2s1o1": * Settings.FilePrioritizeMode = Settings.FilePrioritizeModeEnum.SmallerFirst; * break; * case "fq2s1o2": * Settings.FilePrioritizeMode = Settings.FilePrioritizeModeEnum.LargerFirst; * break; * case "fq2s1o3": * Settings.FilePrioritizeMode = Settings.FilePrioritizeModeEnum.BoardSpeed; * break; * default: * Settings.FilePrioritizeMode = Settings.FilePrioritizeModeEnum.SmallerFirst; * break; * }*/ Settings.AutoRemoveCompleteFiles = request.QueryString["fq3"].Value == "1"; Settings.Save(); if (!Settings.EnableAuthentication) { session.Clear(); response.Cookies.Clear(); } response.Redirect("/settings"); return(true); } return(false); }