Also add intermediate removeAppRestoreConfig() api

This commit is contained in:
Johannes Zellner
2017-04-17 15:45:58 +02:00
parent a98177fe71
commit 7b93150047
2 changed files with 30 additions and 10 deletions

View File

@@ -4,14 +4,16 @@ exports = module.exports = {
backup: backup,
restore: restore,
copyBackup: copyBackup,
removeBackup: removeBackup,
// Once we don't rely on the restore config anymore, we can remove that api
saveAppRestoreConfig: saveAppRestoreConfig,
getAppRestoreConfig: getAppRestoreConfig,
copyAppRestoreConfig: copyAppRestoreConfig,
removeAppRestoreConfig: removeAppRestoreConfig,
getDownloadStream: getDownloadStream,
removeBackup: removeBackup,
backupDone: backupDone,
testConfig: testConfig
@@ -27,14 +29,12 @@ var assert = require('assert'),
once = require('once'),
safe = require('safetydance'),
SettingsError = require('../settings.js').SettingsError,
shell = require('../shell.js'),
tar = require('tar-fs'),
zlib = require('zlib'),
crypto = require('crypto'),
archiver = require('archiver');
var FALLBACK_BACKUP_FOLDER = '/var/backups';
var REMOVE_BACKUP_CMD = path.join(__dirname, '../scripts/rmbackup.sh');
// internal only
function copyFile(source, destination, callback) {
@@ -195,6 +195,22 @@ function copyBackup(apiConfig, oldBackupId, newBackupId, callback) {
});
}
function removeBackup(apiConfig, backupId, appBackupIds, callback) {
assert.strictEqual(typeof apiConfig, 'object');
assert.strictEqual(typeof backupId, 'string');
assert(Array.isArray(appBackupIds));
assert.strictEqual(typeof callback, 'function');
async.each([backupId].concat(appBackupIds), function (id, callback) {
var filePath = path.join(apiConfig.backupFolder || FALLBACK_BACKUP_FOLDER, id + '.tar.gz');
fs.unlink(filePath, function (error) {
if (error) console.error('Unable to remove %s. Not fatal.', filePath, safe.error);
callback();
});
}, callback);
}
function getDownloadStream(apiConfig, backupId, callback) {
assert.strictEqual(typeof apiConfig, 'object');
assert.strictEqual(typeof backupId, 'string');
@@ -272,16 +288,16 @@ function copyAppRestoreConfig(apiConfig, oldBackupId, newBackupId, callback) {
});
}
function removeBackup(apiConfig, backupId, appBackupIds, callback) {
function removeAppRestoreConfig(apiConfig, backupId, appBackupIds, callback) {
assert.strictEqual(typeof apiConfig, 'object');
assert.strictEqual(typeof backupId, 'string');
assert(Array.isArray(appBackupIds));
assert.strictEqual(typeof callback, 'function');
async.each([backupId].concat(appBackupIds), function (id, callback) {
var filePath = path.join(apiConfig.backupFolder || FALLBACK_BACKUP_FOLDER, id + '.tar.gz');
var filePath = path.join(apiConfig.backupFolder || FALLBACK_BACKUP_FOLDER, id + '.json');
shell.sudo('deleteBackup', [ REMOVE_BACKUP_CMD, filePath ], function (error) {
fs.unlink(filePath, function (error) {
if (error) console.error('Unable to remove %s. Not fatal.', filePath, safe.error);
callback();
});