diff --git a/src/mail.js b/src/mail.js index 7a46bc220..f8319d9ec 100644 --- a/src/mail.js +++ b/src/mail.js @@ -781,9 +781,7 @@ async function getMailAuth() { async function restartMail() { if (process.env.BOX_ENV === 'test' && !process.env.TEST_CREATE_INFRA) return; - const servicesConfig = await services.getConfig(); - const mailConfig = servicesConfig['mail'] || {}; - + const mailConfig = services.getServiceConfig('mail'); debug(`restartMail: restarting mail container with mailFqdn:${settings.mailFqdn()} mailDomain:${settings.mailDomain()}`); await configureMail(settings.mailFqdn(), settings.mailDomain(), mailConfig); } diff --git a/src/services.js b/src/services.js index 36c05d198..588d6d05a 100644 --- a/src/services.js +++ b/src/services.js @@ -1,6 +1,8 @@ 'use strict'; exports = module.exports = { + getServiceConfig, + listServices, getServiceStatus, getServiceLogs, @@ -345,12 +347,16 @@ async function listServices() { return serviceIds; } +async function getConfig() { + return await settings.getJson(settings.SERVICES_CONFIG_KEY) || {}; +} + async function getServiceConfig(id) { assert.strictEqual(typeof id, 'string'); const [name, instance] = id.split(':'); if (!instance) { - const servicesConfig = await settings.getJson(settings.SERVICES_CONFIG_KEY) || {}; + const servicesConfig = await getConfig(); return servicesConfig[name] || {}; } @@ -423,7 +429,7 @@ async function configureService(id, data, auditSource) { await apps.update(instance, { servicesConfig }); } else if (SERVICES[name]) { - const servicesConfig = await settings.getJson(settings.SERVICES_CONFIG_KEY) || {}; + const servicesConfig = await getConfig(); needsRebuild = servicesConfig[name]?.recoveryMode != data.recoveryMode; // intentional != since 'recoveryMode' may or may not be there servicesConfig[name] = data; diff --git a/src/sftp.js b/src/sftp.js index 76c48c65c..564d97db8 100644 --- a/src/sftp.js +++ b/src/sftp.js @@ -51,8 +51,7 @@ async function start(existingInfra) { debug('start: re-creating container'); - const servicesConfig = await services.getConfig(); - const serviceConfig = servicesConfig['sftp'] || {}; + const serviceConfig = await services.getServiceConfig('sftp'); const tag = infra.images.sftp.tag; const memoryLimit = serviceConfig.memoryLimit || exports.DEFAULT_MEMORY_LIMIT; const memory = await system.getMemoryAllocation(memoryLimit);