diff --git a/src/apptask.js b/src/apptask.js index fa3099ecb..348b8689a 100644 --- a/src/apptask.js +++ b/src/apptask.js @@ -16,8 +16,7 @@ exports = module.exports = { _waitForDnsPropagation: waitForDnsPropagation }; -var addons = require('./addons.js'), - appdb = require('./appdb.js'), +const appdb = require('./appdb.js'), apps = require('./apps.js'), assert = require('assert'), async = require('async'), @@ -41,6 +40,7 @@ var addons = require('./addons.js'), reverseProxy = require('./reverseproxy.js'), rimraf = require('rimraf'), safe = require('safetydance'), + services = require('./services.js'), settings = require('./settings.js'), shell = require('./shell.js'), superagent = require('superagent'), @@ -512,7 +512,7 @@ function install(app, args, progressCallback, callback) { addonsToRemove = app.manifest.addons; } - addons.teardownAddons(app, addonsToRemove, next); + services.teardownAddons(app, addonsToRemove, next); }, function deleteAppDirIfNeeded(done) { @@ -546,24 +546,24 @@ function install(app, args, progressCallback, callback) { if (!restoreConfig) { async.series([ progressCallback.bind(null, { percent: 60, message: 'Setting up addons' }), - addons.setupAddons.bind(null, app, app.manifest.addons), + services.setupAddons.bind(null, app, app.manifest.addons), ], next); } else if (!restoreConfig.backupId) { // in-place import async.series([ progressCallback.bind(null, { percent: 60, message: 'Importing addons in-place' }), - addons.setupAddons.bind(null, app, app.manifest.addons), - addons.clearAddons.bind(null, app, _.omit(app.manifest.addons, 'localstorage')), - addons.restoreAddons.bind(null, app, app.manifest.addons), + services.setupAddons.bind(null, app, app.manifest.addons), + services.clearAddons.bind(null, app, _.omit(app.manifest.addons, 'localstorage')), + services.restoreAddons.bind(null, app, app.manifest.addons), ], next); } else { async.series([ progressCallback.bind(null, { percent: 65, message: 'Download backup and restoring addons' }), - addons.setupAddons.bind(null, app, app.manifest.addons), - addons.clearAddons.bind(null, app, app.manifest.addons), + services.setupAddons.bind(null, app, app.manifest.addons), + services.clearAddons.bind(null, app, app.manifest.addons), backups.downloadApp.bind(null, app, restoreConfig, (progress) => { progressCallback({ percent: 65, message: progress.message }); }), - addons.restoreAddons.bind(null, app, app.manifest.addons) + services.restoreAddons.bind(null, app, app.manifest.addons) ], next); } }, @@ -626,7 +626,7 @@ function create(app, args, progressCallback, callback) { // FIXME: re-setup addons only because sendmail addon to re-inject env vars on mailboxName change progressCallback.bind(null, { percent: 30, message: 'Setting up addons' }), - addons.setupAddons.bind(null, app, app.manifest.addons), + services.setupAddons.bind(null, app, app.manifest.addons), progressCallback.bind(null, { percent: 60, message: 'Creating container' }), createContainer.bind(null, app), @@ -681,7 +681,7 @@ function changeLocation(app, args, progressCallback, callback) { // re-setup addons since they rely on the app's fqdn (e.g oauth) progressCallback.bind(null, { percent: 50, message: 'Setting up addons' }), - addons.setupAddons.bind(null, app, app.manifest.addons), + services.setupAddons.bind(null, app, app.manifest.addons), progressCallback.bind(null, { percent: 60, message: 'Creating container' }), createContainer.bind(null, app), @@ -723,7 +723,7 @@ function migrateDataDir(app, args, progressCallback, callback) { // re-setup addons since this creates the localStorage volume progressCallback.bind(null, { percent: 50, message: 'Setting up addons' }), - addons.setupAddons.bind(null, _.extend({}, app, { dataDir: newDataDir }), app.manifest.addons), + services.setupAddons.bind(null, _.extend({}, app, { dataDir: newDataDir }), app.manifest.addons), progressCallback.bind(null, { percent: 60, message: 'Moving data dir' }), moveDataDir.bind(null, app, newDataDir), @@ -768,7 +768,7 @@ function configure(app, args, progressCallback, callback) { // re-setup addons since they rely on the app's fqdn (e.g oauth) progressCallback.bind(null, { percent: 50, message: 'Setting up addons' }), - addons.setupAddons.bind(null, app, app.manifest.addons), + services.setupAddons.bind(null, app, app.manifest.addons), progressCallback.bind(null, { percent: 60, message: 'Creating container' }), createContainer.bind(null, app), @@ -842,7 +842,7 @@ function update(app, args, progressCallback, callback) { }, // only delete unused addons after backup - addons.teardownAddons.bind(null, app, unusedAddons), + services.teardownAddons.bind(null, app, unusedAddons), // free unused ports function (next) { @@ -871,7 +871,7 @@ function update(app, args, progressCallback, callback) { downloadIcon.bind(null, app), progressCallback.bind(null, { percent: 60, message: 'Updating addons' }), - addons.setupAddons.bind(null, app, updateConfig.manifest.addons), + services.setupAddons.bind(null, app, updateConfig.manifest.addons), progressCallback.bind(null, { percent: 70, message: 'Creating container' }), createContainer.bind(null, app), @@ -908,7 +908,7 @@ function start(app, args, progressCallback, callback) { async.series([ progressCallback.bind(null, { percent: 10, message: 'Starting app services' }), - addons.startAppServices.bind(null, app), + services.startAppServices.bind(null, app), progressCallback.bind(null, { percent: 35, message: 'Starting container' }), docker.startContainer.bind(null, app.id), @@ -942,7 +942,7 @@ function stop(app, args, progressCallback, callback) { docker.stopContainers.bind(null, app.id), progressCallback.bind(null, { percent: 50, message: 'Stopping app services' }), - addons.stopAppServices.bind(null, app), + services.stopAppServices.bind(null, app), progressCallback.bind(null, { percent: 80, message: 'Removing collectd profile' }), removeCollectdProfile.bind(null, app), @@ -991,7 +991,7 @@ function uninstall(app, args, progressCallback, callback) { deleteContainers.bind(null, app, {}), progressCallback.bind(null, { percent: 30, message: 'Teardown addons' }), - addons.teardownAddons.bind(null, app, app.manifest.addons), + services.teardownAddons.bind(null, app, app.manifest.addons), progressCallback.bind(null, { percent: 40, message: 'Cleanup file manager' }), diff --git a/src/backups.js b/src/backups.js index cb5488aa2..14939fb2f 100644 --- a/src/backups.js +++ b/src/backups.js @@ -1,36 +1,36 @@ 'use strict'; exports = module.exports = { - testConfig: testConfig, - testProviderConfig: testProviderConfig, + testConfig, + testProviderConfig, getByIdentifierAndStatePaged, - get: get, + get, - startBackupTask: startBackupTask, + startBackupTask, - restore: restore, + restore, - backupApp: backupApp, - downloadApp: downloadApp, + backupApp, + downloadApp, - backupBoxAndApps: backupBoxAndApps, + backupBoxAndApps, - upload: upload, + upload, - startCleanupTask: startCleanupTask, - cleanup: cleanup, - cleanupCacheFilesSync: cleanupCacheFilesSync, + startCleanupTask, + cleanup, + cleanupCacheFilesSync, - injectPrivateFields: injectPrivateFields, - removePrivateFields: removePrivateFields, + injectPrivateFields, + removePrivateFields, - checkConfiguration: checkConfiguration, + checkConfiguration, - configureCollectd: configureCollectd, + configureCollectd, - generateEncryptionKeysSync: generateEncryptionKeysSync, + generateEncryptionKeysSync, BACKUP_IDENTIFIER_BOX: 'box', @@ -48,8 +48,7 @@ exports = module.exports = { _applyBackupRetentionPolicy: applyBackupRetentionPolicy }; -var addons = require('./addons.js'), - apps = require('./apps.js'), +const apps = require('./apps.js'), async = require('async'), assert = require('assert'), backupdb = require('./backupdb.js'), @@ -72,6 +71,7 @@ var addons = require('./addons.js'), progressStream = require('progress-stream'), safe = require('safetydance'), shell = require('./shell.js'), + services = require('./services.js'), settings = require('./settings.js'), syncer = require('./syncer.js'), tar = require('tar-fs'), @@ -1045,7 +1045,7 @@ function snapshotApp(app, progressCallback, callback) { return callback(new BoxError(BoxError.FS_ERROR, 'Error creating config.json: ' + safe.error.message)); } - addons.backupAddons(app, app.manifest.addons, function (error) { + services.backupAddons(app, app.manifest.addons, function (error) { if (error) return callback(new BoxError(BoxError.EXTERNAL_ERROR, error.message)); debugApp(app, `snapshotApp: took ${(new Date() - startTime)/1000} seconds`); diff --git a/src/cloudron.js b/src/cloudron.js index 9513b5f69..d8743f640 100644 --- a/src/cloudron.js +++ b/src/cloudron.js @@ -21,8 +21,7 @@ exports = module.exports = { runSystemChecks }; -var addons = require('./addons.js'), - apps = require('./apps.js'), +const apps = require('./apps.js'), appstore = require('./appstore.js'), assert = require('assert'), async = require('async'), @@ -43,6 +42,7 @@ var addons = require('./addons.js'), platform = require('./platform.js'), reverseProxy = require('./reverseproxy.js'), safe = require('safetydance'), + services = require('./services.js'), settings = require('./settings.js'), shell = require('./shell.js'), spawn = require('child_process').spawn, @@ -350,7 +350,7 @@ function updateDashboardDomain(domain, auditSource, callback) { setDashboardDomain(domain, auditSource, function (error) { if (error) return callback(error); - addons.rebuildService('turn', NOOP_CALLBACK); // to update the realm variable + services.rebuildService('turn', NOOP_CALLBACK); // to update the realm variable callback(null); }); diff --git a/src/docker.js b/src/docker.js index 2a00d9115..c564af10c 100644 --- a/src/docker.js +++ b/src/docker.js @@ -33,8 +33,7 @@ exports = module.exports = { update }; -var addons = require('./addons.js'), - apps = require('./apps.js'), +const apps = require('./apps.js'), async = require('async'), assert = require('assert'), BoxError = require('./boxerror.js'), @@ -44,6 +43,7 @@ var addons = require('./addons.js'), Docker = require('dockerode'), os = require('os'), path = require('path'), + services = require('./services.js'), settings = require('./settings.js'), shell = require('./shell.js'), safe = require('safetydance'), @@ -275,7 +275,7 @@ function createSubcontainer(app, name, cmd, options, callback) { // if required, we can make this a manifest and runtime argument later if (!isAppContainer) memoryLimit *= 2; - addons.getEnvironment(app, function (error, addonEnv) { + services.getEnvironment(app, function (error, addonEnv) { if (error) return callback(error); getBinds(app, function (error, binds) { @@ -299,7 +299,7 @@ function createSubcontainer(app, name, cmd, options, callback) { 'isCloudronManaged': String(true) }, HostConfig: { - Mounts: addons.getMountsSync(app, app.manifest.addons), + Mounts: services.getMountsSync(app, app.manifest.addons), Binds: binds, // ideally, we have to use 'Mounts' but we have to create volumes then LogConfig: { Type: 'syslog', diff --git a/src/ldap.js b/src/ldap.js index afbff4f7d..5f4faeb97 100644 --- a/src/ldap.js +++ b/src/ldap.js @@ -1,12 +1,11 @@ 'use strict'; exports = module.exports = { - start: start, - stop: stop + start, + stop }; -var addons = require('./addons.js'), - assert = require('assert'), +const assert = require('assert'), appdb = require('./appdb.js'), apps = require('./apps.js'), async = require('async'), @@ -20,6 +19,7 @@ var addons = require('./addons.js'), mailboxdb = require('./mailboxdb.js'), path = require('path'), safe = require('safetydance'), + services = require('./services.js'), users = require('./users.js'); var gServer = null; @@ -572,7 +572,7 @@ function authenticateSftp(req, res, next) { } function loadSftpConfig(req, res, next) { - addons.getServicesConfig('sftp', function (error, service, servicesConfig) { + services.getServicesConfig('sftp', function (error, service, servicesConfig) { if (error) return next(new ldap.OperationsError(error.toString())); req.requireAdmin = servicesConfig['sftp'].requireAdmin; diff --git a/src/mail.js b/src/mail.js index 3b301319c..f298794b4 100644 --- a/src/mail.js +++ b/src/mail.js @@ -59,8 +59,7 @@ exports = module.exports = { _readDkimPublicKeySync: readDkimPublicKeySync }; -var addons = require('./addons.js'), - assert = require('assert'), +const assert = require('assert'), async = require('async'), BoxError = require('./boxerror.js'), cloudron = require('./cloudron.js'), @@ -82,6 +81,7 @@ var addons = require('./addons.js'), request = require('request'), reverseProxy = require('./reverseproxy.js'), safe = require('safetydance'), + services = require('./services.js'), settings = require('./settings.js'), shell = require('./shell.js'), smtpTransport = require('nodemailer-smtp-transport'), @@ -1223,7 +1223,7 @@ function removeSolrIndex(mailbox, callback) { assert.strictEqual(typeof mailbox, 'string'); assert.strictEqual(typeof callback, 'function'); - addons.getContainerDetails('mail', 'CLOUDRON_MAIL_TOKEN', function (error, addonDetails) { + services.getContainerDetails('mail', 'CLOUDRON_MAIL_TOKEN', function (error, addonDetails) { if (error) return callback(error); request.post(`https://${addonDetails.ip}:3000/solr_delete_index?access_token=${addonDetails.token}`, { timeout: 2000, rejectUnauthorized: false, json: { mailbox } }, function (error, response) { diff --git a/src/platform.js b/src/platform.js index 2a7c425e3..c6dad74a4 100644 --- a/src/platform.js +++ b/src/platform.js @@ -1,15 +1,14 @@ 'use strict'; exports = module.exports = { - start: start, - stopAllTasks: stopAllTasks, + start, + stopAllTasks, // exported for testing _isReady: false }; -var addons = require('./addons.js'), - apps = require('./apps.js'), +const apps = require('./apps.js'), assert = require('assert'), async = require('async'), debug = require('debug')('box:platform'), @@ -20,6 +19,7 @@ var addons = require('./addons.js'), paths = require('./paths.js'), reverseProxy = require('./reverseproxy.js'), safe = require('safetydance'), + services = require('./services.js'), settings = require('./settings.js'), sftp = require('./sftp.js'), shell = require('./shell.js'), @@ -58,7 +58,7 @@ function start(callback) { markApps.bind(null, existingInfra), // mark app state before we start addons. this gives the db import logic a chance to mark an app as errored graphs.startGraphite.bind(null, existingInfra), sftp.startSftp.bind(null, existingInfra), - addons.startServices.bind(null, existingInfra), + services.startServices.bind(null, existingInfra), fs.writeFile.bind(fs, paths.INFRA_VERSION_FILE, JSON.stringify(infra, null, 4)) ], function (error) { if (error) return callback(error); @@ -93,7 +93,7 @@ function applyPlatformConfig(callback) { settings.getPlatformConfig(function (error, platformConfig) { if (error) return callback(error); - addons.updateServiceConfig(platformConfig, callback); + services.updateServiceConfig(platformConfig, callback); }); } diff --git a/src/routes/filemanager.js b/src/routes/filemanager.js index be9f21c23..1ab2e384c 100644 --- a/src/routes/filemanager.js +++ b/src/routes/filemanager.js @@ -4,11 +4,11 @@ exports = module.exports = { proxy }; -var addons = require('../addons.js'), - assert = require('assert'), +const assert = require('assert'), BoxError = require('../boxerror.js'), middleware = require('../middleware/index.js'), HttpError = require('connect-lastmile').HttpError, + services = require('../services.js'), url = require('url'); function proxy(req, res, next) { @@ -18,7 +18,7 @@ function proxy(req, res, next) { req.clearTimeout(); - addons.getContainerDetails('sftp', 'CLOUDRON_SFTP_TOKEN', function (error, result) { + services.getContainerDetails('sftp', 'CLOUDRON_SFTP_TOKEN', function (error, result) { if (error) return next(BoxError.toHttpError(error)); let parsedUrl = url.parse(req.url, true /* parseQueryString */); diff --git a/src/routes/mailserver.js b/src/routes/mailserver.js index 5e13703ce..1d9f8c888 100644 --- a/src/routes/mailserver.js +++ b/src/routes/mailserver.js @@ -8,8 +8,7 @@ exports = module.exports = { setLocation }; -var addons = require('../addons.js'), - assert = require('assert'), +const assert = require('assert'), auditSource = require('../auditsource.js'), BoxError = require('../boxerror.js'), debug = require('debug')('box:routes/mailserver'), @@ -17,6 +16,7 @@ var addons = require('../addons.js'), HttpSuccess = require('connect-lastmile').HttpSuccess, mail = require('../mail.js'), middleware = require('../middleware/index.js'), + services = require('../services.js'), url = require('url'); function restart(req, res, next) { @@ -33,7 +33,7 @@ function proxy(req, res, next) { delete req.headers['authorization']; delete req.headers['cookies']; - addons.getContainerDetails('mail', 'CLOUDRON_MAIL_TOKEN', function (error, addonDetails) { + services.getContainerDetails('mail', 'CLOUDRON_MAIL_TOKEN', function (error, addonDetails) { if (error) return next(BoxError.toHttpError(error)); parsedUrl.query['access_token'] = addonDetails.token; diff --git a/src/routes/services.js b/src/routes/services.js index 80db0e735..588bbdb45 100644 --- a/src/routes/services.js +++ b/src/routes/services.js @@ -9,16 +9,16 @@ exports = module.exports = { restart }; -var addons = require('../addons.js'), - assert = require('assert'), +const assert = require('assert'), BoxError = require('../boxerror.js'), HttpError = require('connect-lastmile').HttpError, - HttpSuccess = require('connect-lastmile').HttpSuccess; + HttpSuccess = require('connect-lastmile').HttpSuccess, + services = require('../services.js'); function getAll(req, res, next) { req.clearTimeout(); // can take a while to get status of all services - addons.getServices(function (error, result) { + services.getServices(function (error, result) { if (error) return next(BoxError.toHttpError(error)); next(new HttpSuccess(200, { services: result })); @@ -28,7 +28,7 @@ function getAll(req, res, next) { function get(req, res, next) { assert.strictEqual(typeof req.params.service, 'string'); - addons.getService(req.params.service, function (error, result) { + services.getService(req.params.service, function (error, result) { if (error) return next(BoxError.toHttpError(error)); next(new HttpSuccess(200, { service: result })); @@ -49,7 +49,7 @@ function configure(req, res, next) { data.requireAdmin = req.body.requireAdmin; } - addons.configureService(req.params.service, data, function (error) { + services.configureService(req.params.service, data, function (error) { if (error) return next(BoxError.toHttpError(error)); next(new HttpSuccess(202, {})); @@ -68,7 +68,7 @@ function getLogs(req, res, next) { format: req.query.format || 'json' }; - addons.getServiceLogs(req.params.service, options, function (error, logStream) { + services.getServiceLogs(req.params.service, options, function (error, logStream) { if (error) return next(BoxError.toHttpError(error)); res.writeHead(200, { @@ -98,7 +98,7 @@ function getLogStream(req, res, next) { format: 'json' }; - addons.getServiceLogs(req.params.service, options, function (error, logStream) { + services.getServiceLogs(req.params.service, options, function (error, logStream) { if (error) return next(BoxError.toHttpError(error)); res.writeHead(200, { @@ -122,7 +122,7 @@ function getLogStream(req, res, next) { function restart(req, res, next) { assert.strictEqual(typeof req.params.service, 'string'); - addons.restartService(req.params.service, function (error) { + services.restartService(req.params.service, function (error) { if (error) return next(BoxError.toHttpError(error)); next(new HttpSuccess(202, {})); diff --git a/src/addons.js b/src/services.js similarity index 100% rename from src/addons.js rename to src/services.js