diff --git a/src/provision.js b/src/provision.js index d19e40f48..7794c771a 100644 --- a/src/provision.js +++ b/src/provision.js @@ -26,6 +26,7 @@ var appstore = require('./appstore.js'), safe = require('safetydance'), semver = require('semver'), settings = require('./settings.js'), + sysinfo = require('./sysinfo.js'), superagent = require('superagent'), users = require('./users.js'), tld = require('tldjs'), @@ -232,22 +233,26 @@ function restore(backupConfig, backupId, version, sysinfoConfig, auditSource, ca backups.testConfig(backupConfig, function (error) { if (error) return done(error); - debug(`restore: restoring from ${backupId} from provider ${backupConfig.provider} with format ${backupConfig.format}`); + sysinfo.testConfig(sysinfoConfig, function (error) { + if (error) return done(error); - callback(); // now that the fields are validated, continue task in the background + debug(`restore: restoring from ${backupId} from provider ${backupConfig.provider} with format ${backupConfig.format}`); - async.series([ - setProgress.bind(null, 'restore', 'Downloading backup'), - backups.restore.bind(null, backupConfig, backupId, (progress) => setProgress('restore', progress.message, NOOP_CALLBACK)), - settings.setSysinfoConfig.bind(null, sysinfoConfig), - cloudron.setupDashboard.bind(null, auditSource, (progress) => setProgress('restore', progress.message, NOOP_CALLBACK)), - settings.setBackupConfig.bind(null, backupConfig), // update with the latest backupConfig - eventlog.add.bind(null, eventlog.ACTION_RESTORE, auditSource, { backupId }), - ], function (error) { - gProvisionStatus.restore.active = false; - gProvisionStatus.restore.errorMessage = error ? error.message : ''; + callback(); // now that the fields are validated, continue task in the background - if (!error) cloudron.onActivated(NOOP_CALLBACK); + async.series([ + setProgress.bind(null, 'restore', 'Downloading backup'), + backups.restore.bind(null, backupConfig, backupId, (progress) => setProgress('restore', progress.message, NOOP_CALLBACK)), + settings.setSysinfoConfig.bind(null, sysinfoConfig), + cloudron.setupDashboard.bind(null, auditSource, (progress) => setProgress('restore', progress.message, NOOP_CALLBACK)), + settings.setBackupConfig.bind(null, backupConfig), // update with the latest backupConfig + eventlog.add.bind(null, eventlog.ACTION_RESTORE, auditSource, { backupId }), + ], function (error) { + gProvisionStatus.restore.active = false; + gProvisionStatus.restore.errorMessage = error ? error.message : ''; + + if (!error) cloudron.onActivated(NOOP_CALLBACK); + }); }); }); });