diff --git a/src/backups.js b/src/backups.js index 779b4fe33..60302cb05 100644 --- a/src/backups.js +++ b/src/backups.js @@ -46,6 +46,7 @@ var addons = require('./addons.js'), async = require('async'), assert = require('assert'), backupdb = require('./backupdb.js'), + caas = require('./caas.js'), config = require('./config.js'), crypto = require('crypto'), database = require('./database.js'), @@ -63,7 +64,6 @@ var addons = require('./addons.js'), safe = require('safetydance'), shell = require('./shell.js'), settings = require('./settings.js'), - superagent = require('superagent'), syncer = require('./syncer.js'), tar = require('tar-fs'), tasks = require('./tasks.js'), @@ -755,34 +755,6 @@ function uploadBoxSnapshot(backupConfig, progressCallback, callback) { }); } - -function backupDone(apiConfig, backupId, appBackupIds, callback) { - assert.strictEqual(typeof apiConfig, 'object'); - assert.strictEqual(typeof backupId, 'string'); - assert(Array.isArray(appBackupIds)); - assert.strictEqual(typeof callback, 'function'); - - if (apiConfig.provider !== 'caas') return callback(); - - debug('[%s] backupDone: %s apps %j', backupId, backupId, appBackupIds); - - var url = config.apiServerOrigin() + '/api/v1/boxes/' + apiConfig.fqdn + '/backupDone'; - var data = { - boxVersion: config.version(), - backupId: backupId, - appId: null, // now unused - appVersion: null, // now unused - appBackupIds: appBackupIds - }; - - superagent.post(url).send(data).query({ token: apiConfig.token }).timeout(30 * 1000).end(function (error, result) { - if (error && !error.response) return callback(new BackupsError(BackupsError.EXTERNAL_ERROR, error)); - if (result.statusCode !== 200) return callback(new BackupsError(BackupsError.EXTERNAL_ERROR, result.text)); - - return callback(null); - }); -} - function rotateBoxBackup(backupConfig, tag, appBackupIds, progressCallback, callback) { assert.strictEqual(typeof backupConfig, 'object'); assert.strictEqual(typeof tag, 'string'); @@ -813,7 +785,7 @@ function rotateBoxBackup(backupConfig, tag, appBackupIds, progressCallback, call debug(`Rotated box backup successfully as id ${backupId}`); - backupDone(backupConfig, backupId, appBackupIds, function (error) { + caas.backupDone(backupConfig, backupId, appBackupIds, function (error) { if (error) return callback(error); callback(null, backupId); diff --git a/src/caas.js b/src/caas.js index dfec1ae67..381af5a86 100644 --- a/src/caas.js +++ b/src/caas.js @@ -4,6 +4,8 @@ exports = module.exports = { verifySetupToken: verifySetupToken, setupDone: setupDone, + backupDone: backupDone, + sendHeartbeat: sendHeartbeat, setPtrRecord: setPtrRecord, @@ -93,6 +95,33 @@ function setupDone(setupToken, callback) { }); } +function backupDone(apiConfig, backupId, appBackupIds, callback) { + assert.strictEqual(typeof apiConfig, 'object'); + assert.strictEqual(typeof backupId, 'string'); + assert(Array.isArray(appBackupIds)); + assert.strictEqual(typeof callback, 'function'); + + if (apiConfig.provider !== 'caas') return callback(); + + debug('[%s] backupDone: %s apps %j', backupId, backupId, appBackupIds); + + var url = config.apiServerOrigin() + '/api/v1/boxes/' + apiConfig.fqdn + '/backupDone'; + var data = { + boxVersion: config.version(), + backupId: backupId, + appId: null, // now unused + appVersion: null, // now unused + appBackupIds: appBackupIds + }; + + superagent.post(url).send(data).query({ token: apiConfig.token }).timeout(30 * 1000).end(function (error, result) { + if (error && !error.response) return callback(new CaasError(CaasError.EXTERNAL_ERROR, error)); + if (result.statusCode !== 200) return callback(new CaasError(CaasError.EXTERNAL_ERROR, result.text)); + + return callback(null); + }); +} + function sendHeartbeat() { assert(config.provider() === 'caas', 'Heartbeat is only sent for managed cloudrons');