system: add disk usage task

This commit is contained in:
Girish Ramakrishnan
2025-07-16 23:09:06 +02:00
parent 11a6cf8236
commit 5539f74bea
10 changed files with 150 additions and 94 deletions

View File

@@ -14,7 +14,6 @@ const apps = require('../apps.js'),
mailServer = require('../mailserver.js'),
nock = require('nock'),
path = require('path'),
paths = require('../paths.js'),
settings = require('../settings.js'),
tasks = require('../tasks.js'),
timers = require('timers/promises'),
@@ -229,7 +228,6 @@ async function domainSetup() {
}
async function setup() {
await fs.promises.rm(paths.DISK_USAGE_CACHE_FILE, { force: true });
await domainSetup();
const ownerId = await users.createOwner(admin.email, admin.username, admin.password, admin.displayName, auditSource);
admin.id = ownerId;

View File

@@ -24,9 +24,9 @@ describe('System', function () {
// does not work on archlinux 8!
if (require('child_process').execSync('uname -a').toString().indexOf('-arch') !== -1) return;
const disks = await system.getFilesystems();
expect(disks).to.be.ok();
expect(Object.keys(disks).some(fs => disks[fs].mountpoint === '/')).to.be.ok();
const filesystems = await system.getFilesystems();
expect(filesystems).to.be.ok();
expect(Object.keys(filesystems).some(fs => filesystems[fs].mountpoint === '/')).to.be.ok();
});
it('can get swaps', async function () {
@@ -57,6 +57,16 @@ describe('System', function () {
expect(cpus[0].model).to.be.a('string');
});
it('can get ubuntu version', async function () {
const v = await system.getUbuntuVersion();
expect(v).to.be.ok();
});
it('can get kernel version', async function () {
const v = await system.getKernelVersion();
expect(v).to.be.ok();
});
it('can get info', async function () {
const info = await system.getInfo();
@@ -66,19 +76,20 @@ describe('System', function () {
expect(info.rebootRequired).to.be.a('boolean');
});
it('can get diskUsage', async function () {
const usage = await system.getDiskUsage();
expect(usage).to.be(null); // nothing cached
});
it('can get filesystemUsage', async function () {
const filesystems = await system.getFilesystems();
const rootFs = Object.values(filesystems).find(v => v.mountpoint === '/');
expect(rootFs.filesystem).to.be.ok();
it('can updateDiskUsage', async function () {
const usage = await system.updateDiskUsage(function () {});
const tmp = usage[Object.keys(usage)[0]];
const usageTask = await system.getFilesystemUsage(rootFs.filesystem);
expect(tmp.size).to.be.greaterThan(0);
expect(tmp.used).to.be.greaterThan(0);
expect(tmp.available).to.be.greaterThan(0);
expect(tmp.capacity).to.be.greaterThan(0);
expect(tmp.speed).to.be.a('number');
return new Promise((resolve, reject) => {
usageTask.on('data', (type, data) => console.log(type, data));
usageTask.on('done', (error) => {
if (error.errorMessage) reject(new Error(error.errorMessage)); else resolve();
});
usageTask.start();
});
});
});