services: better status for sftp and turn

This commit is contained in:
Girish Ramakrishnan
2021-10-19 15:51:22 -07:00
parent 8cda287838
commit e0edfbf621
2 changed files with 27 additions and 16 deletions
+21
View File
@@ -2,6 +2,7 @@
exports = module.exports = {
start,
status,
DEFAULT_MEMORY_LIMIT: 256 * 1024 * 1024
};
@@ -10,11 +11,13 @@ const apps = require('./apps.js'),
assert = require('assert'),
BoxError = require('./boxerror.js'),
debug = require('debug')('box:sftp'),
docker = require('./docker.js'),
hat = require('./hat.js'),
infra = require('./infra_version.js'),
paths = require('./paths.js'),
safe = require('safetydance'),
settings = require('./settings.js'),
services = require('./services.js'),
shell = require('./shell.js'),
system = require('./system.js'),
volumes = require('./volumes.js');
@@ -98,3 +101,21 @@ async function start(existingInfra) {
await shell.promises.exec('removeSftp', 'docker rm -f sftp || true');
await shell.promises.exec('startSftp', runCmd);
}
async function status() {
const [error, container] = await safe(docker.inspect('sftp'));
if (error && error.reason === BoxError.NOT_FOUND) return { status: services.SERVICE_STATUS_STOPPED };
if (error) throw error;
const result = await docker.memoryUsage('sftp');
const status = container.State.Running
? (container.HostConfig.ReadonlyRootfs ? services.SERVICE_STATUS_ACTIVE : services.SERVICE_STATUS_STARTING)
: services.SERVICE_STATUS_STOPPED;
return {
status,
memoryUsed: result.memory_stats.usage,
memoryPercent: parseInt(100 * result.memory_stats.usage / result.memory_stats.limit)
};
}