diff --git a/src/backups.js b/src/backups.js index f6b48c297..57a1b6693 100644 --- a/src/backups.js +++ b/src/backups.js @@ -46,8 +46,7 @@ var addons = require('./addons.js'), shell = require('./shell.js'), settings = require('./settings.js'), SettingsError = require('./settings.js').SettingsError, - util = require('util'), - webhooks = require('./webhooks.js'); + util = require('util'); var BACKUP_BOX_CMD = path.join(__dirname, 'scripts/backupbox.sh'), BACKUP_APP_CMD = path.join(__dirname, 'scripts/backupapp.sh'), @@ -227,7 +226,7 @@ function backupBoxWithAppBackupIds(appBackupIds, callback) { backupdb.add({ id: filename, version: config.version(), type: backupdb.BACKUP_TYPE_BOX, dependsOn: appBackupIds }, function (error) { if (error) return callback(new BackupsError(BackupsError.INTERNAL_ERROR, error)); - webhooks.backupDone(filename, null /* app */, appBackupIds, function (error) { + api(backupConfig.provider).backupDone(filename, null /* app */, appBackupIds, function (error) { if (error) return callback(error); callback(null, filename); }); diff --git a/src/storage/caas.js b/src/storage/caas.js index 0d087cf78..c36c0122f 100644 --- a/src/storage/caas.js +++ b/src/storage/caas.js @@ -19,6 +19,7 @@ exports = module.exports = { var assert = require('assert'), AWS = require('aws-sdk'), config = require('../config.js'), + debug = require('debug')('box:storage/caas'), safe = require('safetydance'), SettingsError = require('../settings.js').SettingsError, superagent = require('superagent'); @@ -192,6 +193,22 @@ function backupDone(filename, app, appBackupIds, callback) { assert(!appBackupIds || Array.isArray(appBackupIds)); assert.strictEqual(typeof callback, 'function'); - callback(); -} + debug('backupDone %s', filename); + var url = config.apiServerOrigin() + '/api/v1/boxes/' + config.fqdn() + '/backupDone'; + var data = { + boxVersion: config.version(), + restoreKey: filename, + appId: app ? app.id : null, + appVersion: app ? app.manifest.version : null, + appBackupIds: appBackupIds + }; + + superagent.post(url).send(data).query({ token: config.token() }).timeout(30 * 1000).end(function (error, result) { + if (error && !error.response) return callback(error); + if (result.statusCode !== 200) return callback(new Error(result.text)); + if (!result.body) return callback(new Error('Unexpected response')); + + return callback(null); + }); +} diff --git a/src/webhooks.js b/src/webhooks.js deleted file mode 100644 index afb465f8d..000000000 --- a/src/webhooks.js +++ /dev/null @@ -1,43 +0,0 @@ -'use strict'; - -exports = module.exports = { - backupDone: backupDone -}; - -var assert = require('assert'), - config = require('./config.js'), - debug = require('debug')('box:webhooks'), - superagent = require('superagent'), - util = require('util'); - -function backupDone(filename, app, appBackupIds, callback) { - assert.strictEqual(typeof filename, 'string'); - assert(!app || typeof app === 'object'); - assert(!appBackupIds || util.isArray(appBackupIds)); - assert.strictEqual(typeof callback, 'function'); - - debug('backupDone %s', filename); - - // CaaS - if (config.token()) { - var url = config.apiServerOrigin() + '/api/v1/boxes/' + config.fqdn() + '/backupDone'; - var data = { - boxVersion: config.version(), - restoreKey: filename, - appId: app ? app.id : null, - appVersion: app ? app.manifest.version : null, - appBackupIds: appBackupIds - }; - - superagent.post(url).send(data).query({ token: config.token() }).timeout(30 * 1000).end(function (error, result) { - if (error && !error.response) return callback(error); - if (result.statusCode !== 200) return callback(new Error(result.text)); - if (!result.body) return callback(new Error('Unexpected response')); - - return callback(null); - }); - } else { - // TODO call custom webhook - callback(null); - } -}