diff --git a/src/backups.js b/src/backups.js index 9adbd6bb4..3e3c809c3 100644 --- a/src/backups.js +++ b/src/backups.js @@ -937,7 +937,7 @@ function ensureBackup(auditSource, callback) { return callback(null); } - tasks.startTask(tasks.TASK_BACKUP, auditSource, callback); + tasks.startTask(tasks.TASK_BACKUP, [], auditSource, callback); }); }); } diff --git a/src/routes/backups.js b/src/routes/backups.js index 4b9728662..504d7fcb3 100644 --- a/src/routes/backups.js +++ b/src/routes/backups.js @@ -36,7 +36,7 @@ function list(req, res, next) { function startBackup(req, res, next) { // note that cloudron.backup only waits for backup initiation and not for backup to complete // backup progress can be checked up ny polling the progress api call - tasks.startTask(tasks.TASK_BACKUP, auditSource(req), function (error) { + tasks.startTask(tasks.TASK_BACKUP, [], auditSource(req), function (error) { if (error && error.reason === TasksError.BAD_STATE) return next(new HttpError(409, error.message)); if (error) return next(new HttpError(500, error)); diff --git a/src/routes/sysadmin.js b/src/routes/sysadmin.js index 74d228709..0daf1d1ca 100644 --- a/src/routes/sysadmin.js +++ b/src/routes/sysadmin.js @@ -26,7 +26,7 @@ function backup(req, res, next) { // note that cloudron.backup only waits for backup initiation and not for backup to complete // backup progress can be checked up ny polling the progress api call var auditSource = { userId: null, username: 'sysadmin' }; - tasks.startTask(tasks.TASK_BACKUP, auditSource, function (error) { + tasks.startTask(tasks.TASK_BACKUP, [], auditSource, function (error) { if (error && error.reason === TasksError.BAD_STATE) return next(new HttpError(409, error.message)); if (error) return next(new HttpError(500, error)); diff --git a/src/tasks.js b/src/tasks.js index 404bb04ed..9451c3ace 100644 --- a/src/tasks.js +++ b/src/tasks.js @@ -100,8 +100,9 @@ function clearProgress(id, callback) { setProgress(id, { percent: 0, message: 'Starting', result: '', errorMessage: '' }, callback); } -function startTask(id, auditSource, callback) { +function startTask(id, args, auditSource, callback) { assert.strictEqual(typeof id, 'string'); + assert(Array.isArray(args)); assert.strictEqual(typeof auditSource, 'object'); assert.strictEqual(typeof callback, 'function'); @@ -126,7 +127,7 @@ function startTask(id, auditSource, callback) { clearProgress(id, NOOP_CALLBACK); eventlog.add(taskInfo.startEventId, auditSource, { }); - gTasks[id] = child_process.fork(taskInfo.program, [ ], { stdio: [ 'pipe', fd, fd, 'ipc' ]}); + gTasks[id] = child_process.fork(taskInfo.program, args, { stdio: [ 'pipe', fd, fd, 'ipc' ]}); gTasks[id].once('exit', function (code, signal) { debug(`startTask: ${id} completed with code ${code} and signal ${signal}`); diff --git a/src/test/backups-test.js b/src/test/backups-test.js index aef78751e..47506e290 100644 --- a/src/test/backups-test.js +++ b/src/test/backups-test.js @@ -23,7 +23,7 @@ var async = require('async'), tasks = require('../tasks.js'); function createBackup(callback) { - tasks.startTask(tasks.TASK_BACKUP, { username: 'test' }, function (error) { // this call does not wait for the backup! + tasks.startTask(tasks.TASK_BACKUP, [], { username: 'test' }, function (error) { // this call does not wait for the backup! if (error) return callback(error); function waitForBackup() {