diff --git a/src/backups.js b/src/backups.js index 5528bc3e5..7c7794d0e 100644 --- a/src/backups.js +++ b/src/backups.js @@ -17,7 +17,9 @@ exports = module.exports = { backupBoxAndApps: backupBoxAndApps, - getLocalDownloadPath: getLocalDownloadPath + getLocalDownloadPath: getLocalDownloadPath, + + removeBackup: removeBackup }; var addons = require('./addons.js'), @@ -464,3 +466,22 @@ function getLocalDownloadPath(backupId, callback) { }); }); } + +function removeBackup(backupId, callback) { + assert.strictEqual(typeof backupId, 'string'); + assert.strictEqual(typeof callback, 'function'); + + debug('removeBackup: %s', backupId); + + settings.getBackupConfig(function (error, backupConfig) { + if (error) return callback(new BackupsError(BackupsError.INTERNAL_ERROR, error)); + + api(backupConfig.provider).removeBackup(backupConfig, backupId, function (error, result) { + if (error) return callback(error); + + debug('removeBackup: %s done', backupId); + + callback(null, result.filePath); + }); + }); +} \ No newline at end of file diff --git a/src/storage/caas.js b/src/storage/caas.js index 398609e58..443780e09 100644 --- a/src/storage/caas.js +++ b/src/storage/caas.js @@ -8,7 +8,8 @@ exports = module.exports = { getAppRestoreConfig: getAppRestoreConfig, getLocalFilePath: getLocalFilePath, - copyObject: copyObject + copyObject: copyObject, + removeBackup: removeBackup }; var assert = require('assert'), @@ -159,3 +160,13 @@ function copyObject(apiConfig, from, to, callback) { s3.copyObject(params, callback); }); } + +function removeBackup(apiConfig, backupId, callback) { + assert.strictEqual(typeof apiConfig, 'object'); + assert.strictEqual(typeof backupId, 'string'); + assert.strictEqual(typeof callback, 'function'); + + // Result: none + + callback(new Error('not implemented')); +} diff --git a/src/storage/filesystem.js b/src/storage/filesystem.js index 0ef5fb2be..f1fe3325a 100644 --- a/src/storage/filesystem.js +++ b/src/storage/filesystem.js @@ -8,7 +8,8 @@ exports = module.exports = { getAppRestoreConfig: getAppRestoreConfig, getLocalFilePath: getLocalFilePath, - copyObject: copyObject + copyObject: copyObject, + removeBackup: removeBackup }; var assert = require('assert'), @@ -110,3 +111,13 @@ function copyObject(apiConfig, from, to, callback) { readStream.pipe(writeStream); } + +function removeBackup(apiConfig, backupId, callback) { + assert.strictEqual(typeof apiConfig, 'object'); + assert.strictEqual(typeof backupId, 'string'); + assert.strictEqual(typeof callback, 'function'); + + // Result: none + + callback(new Error('not implemented')); +} diff --git a/src/storage/interface.js b/src/storage/interface.js index d399177c9..5f39eaa77 100644 --- a/src/storage/interface.js +++ b/src/storage/interface.js @@ -14,7 +14,8 @@ exports = module.exports = { getAppRestoreConfig: getAppRestoreConfig, getLocalFilePath: getLocalFilePath, - copyObject: copyObject + copyObject: copyObject, + removeBackup: removeBackup }; var assert = require('assert'); @@ -88,3 +89,13 @@ function copyObject(apiConfig, from, to, callback) { callback(new Error('not implemented')); } + +function removeBackup(apiConfig, backupId, callback) { + assert.strictEqual(typeof apiConfig, 'object'); + assert.strictEqual(typeof backupId, 'string'); + assert.strictEqual(typeof callback, 'function'); + + // Result: none + + callback(new Error('not implemented')); +} diff --git a/src/storage/s3.js b/src/storage/s3.js index d31249ceb..411952906 100644 --- a/src/storage/s3.js +++ b/src/storage/s3.js @@ -8,7 +8,8 @@ exports = module.exports = { getAppRestoreConfig: getAppRestoreConfig, getLocalFilePath: getLocalFilePath, - copyObject: copyObject + copyObject: copyObject, + removeBackup: removeBackup }; var assert = require('assert'), @@ -138,3 +139,13 @@ function copyObject(apiConfig, from, to, callback) { s3.copyObject(params, callback); }); } + +function removeBackup(apiConfig, backupId, callback) { + assert.strictEqual(typeof apiConfig, 'object'); + assert.strictEqual(typeof backupId, 'string'); + assert.strictEqual(typeof callback, 'function'); + + // Result: none + + callback(new Error('not implemented')); +}