From ee9636b496ff9ced5a0506fc4b8f2b3ad2e2cd06 Mon Sep 17 00:00:00 2001 From: Girish Ramakrishnan Date: Fri, 26 Jul 2019 10:10:14 -0700 Subject: [PATCH] move use of TEST and CLOUDRON to constants --- box.js | 2 +- src/apptask.js | 3 ++- src/config.js | 22 +++++----------------- src/cron.js | 3 +-- src/dockerproxy.js | 5 ++--- src/native-dns.js | 4 ++-- src/scheduler.js | 4 ++-- src/support.js | 6 +++--- 8 files changed, 18 insertions(+), 31 deletions(-) diff --git a/box.js b/box.js index 8ff306863..a5297f996 100755 --- a/box.js +++ b/box.js @@ -25,7 +25,7 @@ console.log('=========================================='); console.log(' Cloudron will use the following settings '); console.log('=========================================='); console.log(); -console.log(' Environment: ', config.CLOUDRON ? 'CLOUDRON' : 'TEST'); +console.log(' Environment: ', constants.CLOUDRON ? 'CLOUDRON' : 'TEST'); console.log(' Version: ', constants.VERSION); console.log(' Admin Origin: ', config.adminOrigin()); console.log(' Appstore API server origin: ', config.apiServerOrigin()); diff --git a/src/apptask.js b/src/apptask.js index 637b679c8..032370fe5 100644 --- a/src/apptask.js +++ b/src/apptask.js @@ -28,6 +28,7 @@ var addons = require('./addons.js'), auditsource = require('./auditsource.js'), backups = require('./backups.js'), config = require('./config.js'), + constants = require('./constants.js'), database = require('./database.js'), DatabaseError = require('./databaseerror.js'), debug = require('debug')('box:apptask'), @@ -447,7 +448,7 @@ function waitForDnsPropagation(app, callback) { assert.strictEqual(typeof app, 'object'); assert.strictEqual(typeof callback, 'function'); - if (!config.CLOUDRON) { + if (!constants.CLOUDRON) { debugApp(app, 'Skipping dns propagation check for development'); return callback(null); } diff --git a/src/config.js b/src/config.js index 463dec892..74b12e779 100644 --- a/src/config.js +++ b/src/config.js @@ -1,16 +1,10 @@ 'use strict'; exports = module.exports = { - baseDir: baseDir, - // values set here will be lost after a upgrade/update. use the sqlite database // for persistent values that need to be backed up set: set, - // ifdefs to check environment - CLOUDRON: process.env.BOX_ENV === 'cloudron', - TEST: process.env.BOX_ENV === 'test', - // convenience getters apiServerOrigin: apiServerOrigin, webServerOrigin: webServerOrigin, @@ -31,25 +25,19 @@ exports = module.exports = { }; var assert = require('assert'), + constants = require('./constants.js'), fs = require('fs'), path = require('path'), + paths = require('./paths.js'), safe = require('safetydance'), _ = require('underscore'); - // assert on unknown environment can't proceed -assert(exports.CLOUDRON || exports.TEST, 'Unknown environment. This should not happen!'); +assert(constants.CLOUDRON || constants.TEST, 'Unknown environment. This should not happen!'); var data = { }; -function baseDir() { - const homeDir = process.env.HOME || process.env.HOMEPATH || process.env.USERPROFILE; - if (exports.CLOUDRON) return homeDir; - if (exports.TEST) return path.join(homeDir, '.cloudron_test'); - // cannot reach -} - -const cloudronConfigFileName = exports.CLOUDRON ? '/etc/cloudron/cloudron.conf' : path.join(baseDir(), 'cloudron.conf'); +const cloudronConfigFileName = constants.CLOUDRON ? '/etc/cloudron/cloudron.conf' : path.join(paths.baseDir(), 'cloudron.conf'); function saveSync() { // only save values we want to have in the cloudron.conf, see start.sh @@ -80,7 +68,7 @@ function initConfig() { data.webServerOrigin = null; // overrides for local testings - if (exports.TEST) { + if (constants.TEST) { data.apiServerOrigin = 'http://localhost:6060'; // hock doesn't support https } diff --git a/src/cron.js b/src/cron.js index 741a06b8b..6720efa3a 100644 --- a/src/cron.js +++ b/src/cron.js @@ -15,7 +15,6 @@ var appHealthMonitor = require('./apphealthmonitor.js'), auditSource = require('./auditsource.js'), backups = require('./backups.js'), cloudron = require('./cloudron.js'), - config = require('./config.js'), constants = require('./constants.js'), CronJob = require('cron').CronJob, debug = require('debug')('box:cron'), @@ -165,7 +164,7 @@ function recreateJobs(tz) { if (gJobs.schedulerSync) gJobs.schedulerSync.stop(); gJobs.schedulerSync = new CronJob({ - cronTime: config.TEST ? '*/10 * * * * *' : '00 */1 * * * *', // every minute + cronTime: constants.TEST ? '*/10 * * * * *' : '00 */1 * * * *', // every minute onTick: scheduler.sync, start: true, timeZone: tz diff --git a/src/dockerproxy.js b/src/dockerproxy.js index d70040a31..9148faab9 100644 --- a/src/dockerproxy.js +++ b/src/dockerproxy.js @@ -8,7 +8,6 @@ exports = module.exports = { var apps = require('./apps.js'), AppsError = apps.AppsError, assert = require('assert'), - config = require('./config.js'), constants = require('./constants.js'), express = require('express'), debug = require('debug')('box:dockerproxy'), @@ -30,7 +29,7 @@ function authorizeApp(req, res, next) { // - only allow managing and inspection of containers belonging to the app // make the tests pass for now - if (config.TEST) { + if (constants.TEST) { req.app = { id: 'testappid' }; return next(); } @@ -121,7 +120,7 @@ function start(callback) { let proxyServer = express(); - if (config.TEST) { + if (constants.TEST) { proxyServer.use(function (req, res, next) { debug('proxying: ' + req.method, req.url); next(); diff --git a/src/native-dns.js b/src/native-dns.js index c194a5940..62ec8a5eb 100644 --- a/src/native-dns.js +++ b/src/native-dns.js @@ -5,7 +5,7 @@ exports = module.exports = { }; var assert = require('assert'), - config = require('./config.js'), + constants = require('./constants.js'), dns = require('dns'), _ = require('underscore'); @@ -24,7 +24,7 @@ function resolve(hostname, rrtype, options, callback) { options = _.extend({ }, DEFAULT_OPTIONS, options); // Only use unbound on a Cloudron - if (config.CLOUDRON) resolver.setServers([ options.server ]); + if (constants.CLOUDRON) resolver.setServers([ options.server ]); // should callback with ECANCELLED but looks like we might hit https://github.com/nodejs/node/issues/14814 const timerId = setTimeout(resolver.cancel.bind(resolver), options.timeout || 5000); diff --git a/src/scheduler.js b/src/scheduler.js index a438e5097..5efd25de1 100644 --- a/src/scheduler.js +++ b/src/scheduler.js @@ -8,7 +8,7 @@ var appdb = require('./appdb.js'), apps = require('./apps.js'), assert = require('assert'), async = require('async'), - config = require('./config.js'), + constants = require('./constants.js'), CronJob = require('cron').CronJob, debug = require('debug')('box:scheduler'), docker = require('./docker.js'), @@ -119,7 +119,7 @@ function createCronJobs(app, schedulerConfig) { const randomSecond = Math.floor(60*Math.random()); // don't start all crons to decrease memory pressure - var cronTime = (config.TEST ? '*/5 ' : `${randomSecond} `) + task.schedule; // time ticks faster in tests + var cronTime = (constants.TEST ? '*/5 ' : `${randomSecond} `) + task.schedule; // time ticks faster in tests debug(`createCronJobs: ${app.fqdn} task ${taskName} scheduled at ${cronTime} with cmd ${task.command}`); diff --git a/src/support.js b/src/support.js index c790d1753..3ed7e3aa4 100644 --- a/src/support.js +++ b/src/support.js @@ -8,7 +8,7 @@ exports = module.exports = { }; let assert = require('assert'), - config = require('./config.js'), + constants = require('./constants.js'), shell = require('./shell.js'), once = require('once'), path = require('path'), @@ -17,8 +17,8 @@ let assert = require('assert'), util = require('util'); // the logic here is also used in the cloudron-support tool -var AUTHORIZED_KEYS_FILEPATH = config.TEST ? path.join(paths.baseDir(), 'authorized_keys') : ((sysinfo.provider() === 'ec2' || sysinfo.provider() === 'lightsail' || sysinfo.provider() === 'ami') ? '/home/ubuntu/.ssh/authorized_keys' : '/root/.ssh/authorized_keys'), - AUTHORIZED_KEYS_USER = config.TEST ? process.getuid() : ((sysinfo.provider() === 'ec2' || sysinfo.provider() === 'lightsail' || sysinfo.provider() === 'ami') ? 'ubuntu' : 'root'), +var AUTHORIZED_KEYS_FILEPATH = constants.TEST ? path.join(paths.baseDir(), 'authorized_keys') : ((sysinfo.provider() === 'ec2' || sysinfo.provider() === 'lightsail' || sysinfo.provider() === 'ami') ? '/home/ubuntu/.ssh/authorized_keys' : '/root/.ssh/authorized_keys'), + AUTHORIZED_KEYS_USER = constants.TEST ? process.getuid() : ((sysinfo.provider() === 'ec2' || sysinfo.provider() === 'lightsail' || sysinfo.provider() === 'ami') ? 'ubuntu' : 'root'), AUTHORIZED_KEYS_CMD = path.join(__dirname, 'scripts/remotesupport.sh'); function SupportError(reason, errorOrMessage) {