diff --git a/CHANGES b/CHANGES index e684eec0a..03408b4fa 100644 --- a/CHANGES +++ b/CHANGES @@ -2186,3 +2186,6 @@ [6.1.1] * Fix bug where platform does not start if memory limits could not be applied +[6.1.2] +* App disk usage was not shown in graphs + diff --git a/src/system.js b/src/system.js index 47d8b840a..56b548e16 100644 --- a/src/system.js +++ b/src/system.js @@ -23,7 +23,8 @@ const apps = require('./apps.js'), const dfAsync = async.asyncify(df), dfFileAsync = async.asyncify(df.file); -function getVolumeDisks(callback) { +function getVolumeDisks(appsDataDisk, callback) { + assert.strictEqual(typeof appsDataDisk, 'string'); assert.strictEqual(typeof callback, 'function'); let volumeDisks = {}; @@ -33,7 +34,7 @@ function getVolumeDisks(callback) { async.eachSeries(allVolumes, function (volume, iteratorDone) { dfFileAsync(volume.hostPath, function (error, result) { - volumeDisks[volume.id] = error ? volumeDisks.appsDataDisk : result.filesystem; // ignore any errors + volumeDisks[volume.id] = error ? appsDataDisk : result.filesystem; // ignore any errors iteratorDone(); }); @@ -43,7 +44,8 @@ function getVolumeDisks(callback) { }); } -function getAppDisks(callback) { +function getAppDisks(appsDataDisk, callback) { + assert.strictEqual(typeof appsDataDisk, 'string'); assert.strictEqual(typeof callback, 'function'); let appDisks = {}; @@ -53,12 +55,12 @@ function getAppDisks(callback) { async.eachSeries(allApps, function (app, iteratorDone) { if (!app.dataDir) { - appDisks[app.id] = appDisks.appsDataDisk; + appDisks[app.id] = appsDataDisk; return iteratorDone(); } dfFileAsync(app.dataDir, function (error, result) { - appDisks[app.id] = error ? appDisks.appsDataDisk : result.filesystem; // ignore any errors + appDisks[app.id] = error ? appsDataDisk : result.filesystem; // ignore any errors iteratorDone(); }); }, function (error) { @@ -96,8 +98,6 @@ function getDisks(callback) { dfFileAsync.bind(null, paths.APPS_DATA_DIR), dfFileAsync.bind(null, info.DockerRootDir), getBackupDisk, - getAppDisks, - getVolumeDisks, ], function (error, values) { if (error) return callback(new BoxError(BoxError.FS_ERROR, error)); @@ -112,11 +112,21 @@ function getDisks(callback) { appsDataDisk: values[3].filesystem, dockerDataDisk: values[4].filesystem, backupsDisk: values[5], - apps: values[6], - volumes: values[7] + apps: {}, // filled below + volumes: {} // filled below }; - callback(null, disks); + async.series([ + getAppDisks.bind(null, disks.appsDataDisk), + getVolumeDisks.bind(null, disks.appsDataDisk) + ], function (error, values) { + if (error) return callback(new BoxError(BoxError.FS_ERROR, error)); + + disks.apps = values[0], + disks.volumes = values[1]; + + callback(null, disks); + }); }); }); }