diff --git a/src/backups.js b/src/backups.js index dd2a4f151..a6e96315b 100644 --- a/src/backups.js +++ b/src/backups.js @@ -58,6 +58,7 @@ 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'), util = require('util'), @@ -562,6 +563,34 @@ function uploadBoxSnapshot(backupConfig, 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, timestamp, appBackupIds, callback) { assert.strictEqual(typeof backupConfig, 'object'); assert.strictEqual(typeof timestamp, 'string'); @@ -591,8 +620,7 @@ function rotateBoxBackup(backupConfig, timestamp, appBackupIds, callback) { log(`Rotated box backup successfully as id ${backupId}`); - // FIXME this is only needed for caas, hopefully we can remove that in the future - api(backupConfig.provider).backupDone(backupConfig, backupId, appBackupIds, function (error) { + backupDone(backupConfig, backupId, appBackupIds, function (error) { if (error) return callback(error); callback(null, backupId); diff --git a/src/storage/filesystem.js b/src/storage/filesystem.js index db8efdd0a..4daa8c73a 100644 --- a/src/storage/filesystem.js +++ b/src/storage/filesystem.js @@ -10,8 +10,6 @@ exports = module.exports = { remove: remove, removeDir: removeDir, - backupDone: backupDone, - testConfig: testConfig }; @@ -177,11 +175,3 @@ function testConfig(apiConfig, 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'); - - callback(); -} diff --git a/src/storage/gcs.js b/src/storage/gcs.js index 144333885..c284acaeb 100644 --- a/src/storage/gcs.js +++ b/src/storage/gcs.js @@ -9,8 +9,6 @@ exports = module.exports = { remove: remove, removeDir: removeDir, - backupDone: backupDone, - testConfig: testConfig, // Used to mock GCS @@ -315,11 +313,3 @@ function testConfig(apiConfig, 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'); - - callback(); -} diff --git a/src/storage/interface.js b/src/storage/interface.js index 377789716..378385503 100644 --- a/src/storage/interface.js +++ b/src/storage/interface.js @@ -20,8 +20,6 @@ exports = module.exports = { remove: remove, removeDir: removeDir, - backupDone: backupDone, - testConfig: testConfig }; @@ -98,11 +96,3 @@ function testConfig(apiConfig, callback) { callback(new Error('not implemented')); } -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'); - - callback(new Error('not implemented')); -} diff --git a/src/storage/noop.js b/src/storage/noop.js index 14a308735..39d1c2059 100644 --- a/src/storage/noop.js +++ b/src/storage/noop.js @@ -9,8 +9,6 @@ exports = module.exports = { remove: remove, removeDir: removeDir, - backupDone: backupDone, - testConfig: testConfig }; @@ -93,11 +91,3 @@ function testConfig(apiConfig, callback) { callback(null); } -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'); - - callback(null); -} diff --git a/src/storage/s3.js b/src/storage/s3.js index 69f5793ce..eec4b059e 100644 --- a/src/storage/s3.js +++ b/src/storage/s3.js @@ -9,8 +9,6 @@ exports = module.exports = { remove: remove, removeDir: removeDir, - backupDone: backupDone, - testConfig: testConfig, // Used to mock AWS @@ -512,30 +510,3 @@ function testConfig(apiConfig, 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); - }); -}