1
0

Add disk size to disk usage widget

This commit is contained in:
2022-08-13 12:42:25 +02:00
parent f4d9f4bab7
commit 7a5cd8fe48
5 changed files with 18 additions and 8 deletions

View File

@@ -227,17 +227,17 @@ public class FileSystemService {
} }
} }
public long getSpaceOnDevice(String device) { public long getDiskSize(String device) {
try { try {
final Process process = Runtime.getRuntime() final Process process = Runtime.getRuntime()
.exec(new String[]{"lsblk", "-b", "-o", "SIZE", "-n", device}); .exec(new String[]{"lsblk", "-b", "-o", "SIZE", "-n", device});
final String space = new BufferedReader(new InputStreamReader(process.getInputStream())).readLine(); final String size = new BufferedReader(new InputStreamReader(process.getInputStream())).readLine();
process.destroy(); process.destroy();
return Long.parseLong(space); return Long.parseLong(size);
} catch (IOException e) { } catch (IOException e) {
throw new FileSystemServiceException("Could not get file", e); throw new FileSystemServiceException("Could not get disk size", e);
} }
} }

View File

@@ -32,11 +32,15 @@ public class WidgetController {
@GetMapping("files/widgets/diskUsage") @GetMapping("files/widgets/diskUsage")
public String getDiskUsage(HttpServletRequest request, HttpServletResponse response, Model model) { public String getDiskUsage(HttpServletRequest request, HttpServletResponse response, Model model) {
final String device = this.fileSystemService.getDevice(); final String device = this.fileSystemService.getDevice();
final long diskSize = this.fileSystemService.getDiskSize(device);
final long used = FileUtils.sizeOfDirectory(Paths.get(this.filesConfig.getBaseDir()).toFile());
final long available = diskSize - used;
model.addAttribute("baseDir", this.filesConfig.getBaseDir()); model.addAttribute("baseDir", this.filesConfig.getBaseDir());
model.addAttribute("device", device); model.addAttribute("device", device);
model.addAttribute("available", this.fileSystemService.getSpaceOnDevice(device)); model.addAttribute("available", available);
model.addAttribute("used", FileUtils.sizeOfDirectory(Paths.get(this.filesConfig.getBaseDir()).toFile())); model.addAttribute("used", used);
model.addAttribute("diskSize", diskSize);
return "files/widgets/diskUsage :: file-disk-usage"; return "files/widgets/diskUsage :: file-disk-usage";
} }

View File

@@ -29,6 +29,7 @@ nbscloud.files.file-disk-usage-widget-table.basedir=Base dir\:
nbscloud.files.file-disk-usage-widget-table.device=Host device\: nbscloud.files.file-disk-usage-widget-table.device=Host device\:
nbscloud.files.file-disk-usage-widget-table.available=Available\: nbscloud.files.file-disk-usage-widget-table.available=Available\:
nbscloud.files.file-disk-usage-widget-table.used=Used\: nbscloud.files.file-disk-usage-widget-table.used=Used\:
nbscloud.files.file-disk-usage-widget-table.disksize=Disk size\:
nbscloud.files.delete.success=File deleted nbscloud.files.delete.success=File deleted
nbscloud.files.rename.success=File renamed nbscloud.files.rename.success=File renamed

View File

@@ -29,6 +29,7 @@ nbscloud.files.file-disk-usage-widget-table.basedir=Verzeichnis\:
nbscloud.files.file-disk-usage-widget-table.device=Ger\u00E4t\: nbscloud.files.file-disk-usage-widget-table.device=Ger\u00E4t\:
nbscloud.files.file-disk-usage-widget-table.available=Verf\u00FCgbar\: nbscloud.files.file-disk-usage-widget-table.available=Verf\u00FCgbar\:
nbscloud.files.file-disk-usage-widget-table.used=Belegt\: nbscloud.files.file-disk-usage-widget-table.used=Belegt\:
nbscloud.files.file-disk-usage-widget-table.disksize=Gr\u00F6\u00DFe\:
nbscloud.files.delete.success=Datei gel\u00F6scht nbscloud.files.delete.success=Datei gel\u00F6scht
nbscloud.files.rename.success=Datei verschoben/umbenannt nbscloud.files.rename.success=Datei verschoben/umbenannt

View File

@@ -10,12 +10,16 @@
<td th:text="${device}" /> <td th:text="${device}" />
</tr> </tr>
<tr> <tr>
<td th:text="#{nbscloud.files.file-disk-usage-widget-table.available}" /> <td th:text="#{nbscloud.files.file-disk-usage-widget-table.disksize}" />
<td th:text="${@filesFormatter.formatSize(available)}" /> <td th:text="${@filesFormatter.formatSize(diskSize)}" />
</tr> </tr>
<tr> <tr>
<td th:text="#{nbscloud.files.file-disk-usage-widget-table.used}" /> <td th:text="#{nbscloud.files.file-disk-usage-widget-table.used}" />
<td th:text="${@filesFormatter.formatSize(used)}" /> <td th:text="${@filesFormatter.formatSize(used)}" />
</tr> </tr>
<tr>
<td th:text="#{nbscloud.files.file-disk-usage-widget-table.available}" />
<td th:text="${@filesFormatter.formatSize(available)}" />
</tr>
</table> </table>
</div> </div>