s3: add progress detail
this is a bit of a hack and we should add another way to set the progress (maybe via backups.setProgress or via a progress callback). this is because some methods like removeDir can be called from backuptask and from box code.
This commit is contained in:
+2
-4
@@ -683,10 +683,8 @@ function backupBoxAndApps(auditSource, callback) {
|
||||
apps.getAll(function (error, allApps) {
|
||||
if (error) return callback(new BackupsError(BackupsError.INTERNAL_ERROR, error));
|
||||
|
||||
var processed = 0;
|
||||
var step = 100/(allApps.length+1);
|
||||
|
||||
progress.set(progress.BACKUP, Math.min(step * processed, 5), '');
|
||||
var processed = 1;
|
||||
var step = 100/(allApps.length+2);
|
||||
|
||||
async.mapSeries(allApps, function iterator(app, iteratorCallback) {
|
||||
progress.set(progress.BACKUP, step * processed, 'Backing up ' + (app.altDomain || config.appFqdn(app.location)));
|
||||
|
||||
@@ -52,10 +52,6 @@ function clear(tag) {
|
||||
debug('clearing %s', tag);
|
||||
}
|
||||
|
||||
function get(tag) {
|
||||
return progress[tag];
|
||||
}
|
||||
|
||||
function getAll() {
|
||||
return progress;
|
||||
}
|
||||
|
||||
@@ -29,6 +29,7 @@ var assert = require('assert'),
|
||||
mkdirp = require('mkdirp'),
|
||||
PassThrough = require('stream').PassThrough,
|
||||
path = require('path'),
|
||||
progress = require('../progress.js'),
|
||||
S3BlockReadStream = require('s3-block-read-stream'),
|
||||
superagent = require('superagent');
|
||||
|
||||
@@ -203,6 +204,7 @@ function downloadDir(apiConfig, backupFilePath, destDir, callback) {
|
||||
|
||||
listDir(apiConfig, backupFilePath, { batchSize: 1 }, function downloadFile(s3, content, iteratorCallback) {
|
||||
var relativePath = path.relative(backupFilePath, content.Key);
|
||||
|
||||
mkdirp(path.dirname(path.join(destDir, relativePath)), function (error) {
|
||||
if (error) return iteratorCallback(new BackupsError(BackupsError.EXTERNAL_ERROR, error.message));
|
||||
|
||||
@@ -240,6 +242,8 @@ function copy(apiConfig, oldFilePath, newFilePath, callback) {
|
||||
CopySource: path.join(apiConfig.bucket, content.Key)
|
||||
};
|
||||
|
||||
progress.setDetail(progress.BACKUP, 'Copying ' + content.Key.slice(oldFilePath.length+1));
|
||||
|
||||
s3.copyObject(copyParams, function (error) {
|
||||
if (error && error.code === 'NoSuchKey') return iteratorCallback(new BackupsError(BackupsError.NOT_FOUND, 'Old backup not found'));
|
||||
if (error) {
|
||||
|
||||
Reference in New Issue
Block a user