diff --git a/src/caas.js b/src/caas.js index d0c29a891..6e0a2a65f 100644 --- a/src/caas.js +++ b/src/caas.js @@ -6,9 +6,6 @@ exports = module.exports = { backupDone: backupDone, - sendHeartbeat: sendHeartbeat, - setPtrRecord: setPtrRecord, - CaasError: CaasError }; @@ -111,45 +108,3 @@ function backupDone(apiConfig, backupId, appBackupIds, callback) { return callback(null); }); } - -function sendHeartbeat(callback) { - assert.strictEqual(typeof callback, 'function'); - - if (config.provider() !== 'caas') return callback(new CaasError.INTERNAL_ERROR, new Error('Heartbeat is only sent for managed cloudrons')); - - settings.getCaasConfig(function (error, caasConfig) { - if (error) return callback(new CaasError(CaasError.INTERNAL_ERROR, error)); - if (!caasConfig.token) return callback(); // not configured yet - - var url = config.apiServerOrigin() + '/api/v1/caas/boxes/' + caasConfig.boxId + '/heartbeat'; - superagent.post(url).query({ token: caasConfig.token, version: config.version() }).timeout(30 * 1000).end(function (error, result) { - if (error && !error.response) return callback(new CaasError(CaasError.EXTERNAL_ERROR, `Network error sending heartbeat: ${error.message}`)); - if (result.statusCode !== 200) return callback(new CaasError(CaasError.EXTERNAL_ERROR, `Server responded to heartbeat with ${result.statusCode}: ${result.text}`)); - - debug('Heartbeat sent to %s', url); - - callback(); - }); - }); -} - -function setPtrRecord(domain, callback) { - assert.strictEqual(typeof domain, 'string'); - assert.strictEqual(typeof callback, 'function'); - - settings.getCaasConfig(function (error, caasConfig) { - if (error) return callback(new CaasError(CaasError.INTERNAL_ERROR, error)); - - superagent - .post(config.apiServerOrigin() + '/api/v1/caas/boxes/' + caasConfig.boxId + '/ptr') - .query({ token: caasConfig.token }) - .send({ domain: domain }) - .timeout(5 * 1000) - .end(function (error, result) { - if (error && !error.response) return callback(new CaasError(CaasError.EXTERNAL_ERROR, 'Cannot reach appstore')); - if (result.statusCode !== 202) return callback(new CaasError(CaasError.EXTERNAL_ERROR, util.format('%s %j', result.statusCode, result.body))); - - return callback(null); - }); - }); -} diff --git a/src/cloudron.js b/src/cloudron.js index 13a7c2fbb..8864eb1ba 100644 --- a/src/cloudron.js +++ b/src/cloudron.js @@ -87,9 +87,9 @@ CloudronError.ALREADY_UPTODATE = 'No Update Available'; function initialize(callback) { assert.strictEqual(typeof callback, 'function'); - cron.startPreActivationJobs(callback); - runStartupTasks(); + + callback(); } function uninitialize(callback) { @@ -109,7 +109,7 @@ function onActivated(callback) { // 2. the restore code path can run without sudo (since mail/ is non-root) async.series([ platform.start, - cron.startPostActivationJobs + cron.startJobs ], callback); } diff --git a/src/cron.js b/src/cron.js index 8c0040fd8..f0719ccda 100644 --- a/src/cron.js +++ b/src/cron.js @@ -1,8 +1,7 @@ 'use strict'; exports = module.exports = { - startPostActivationJobs: startPostActivationJobs, - startPreActivationJobs: startPreActivationJobs, + startJobs: startJobs, stopJobs: stopJobs, @@ -15,7 +14,6 @@ var appHealthMonitor = require('./apphealthmonitor.js'), assert = require('assert'), auditSource = require('./auditsource.js'), backups = require('./backups.js'), - caas = require('./caas.js'), cloudron = require('./cloudron.js'), config = require('./config.js'), constants = require('./constants.js'), @@ -36,7 +34,6 @@ var gJobs = { appUpdateChecker: null, backup: null, boxUpdateChecker: null, - caasHeartbeat: null, systemChecks: null, certificateRenew: null, cleanupBackups: null, @@ -58,24 +55,7 @@ var NOOP_CALLBACK = function (error) { if (error) debug(error); }; // Months: 0-11 // Day of Week: 0-6 -function startPreActivationJobs(callback) { - if (config.provider() === 'caas') { - // hack: send the first heartbeat only after we are running for 60 seconds - // required as we end up sending a heartbeat and then cloudron-setup reboots the server - var seconds = (new Date()).getSeconds() - 1; - if (seconds === -1) seconds = 59; - - gJobs.caasHeartbeat = new CronJob({ - cronTime: `${seconds} */1 * * * *`, // every minute - onTick: () => caas.sendHeartbeat(NOOP_CALLBACK), - start: true - }); - } - - callback(); -} - -function startPostActivationJobs(callback) { +function startJobs(callback) { assert.strictEqual(typeof callback, 'function'); var randomHourMinute = Math.floor(60*Math.random());