Refactor repair into separate function
This commit is contained in:
@@ -1033,6 +1033,30 @@ function uninstall(app, args, progressCallback, callback) {
|
||||
});
|
||||
}
|
||||
|
||||
function repair(app, args, progressCallback, callback) {
|
||||
assert.strictEqual(typeof app, 'object');
|
||||
assert.strictEqual(typeof args, 'object');
|
||||
assert.strictEqual(typeof progressCallback, 'function');
|
||||
assert.strictEqual(typeof callback, 'function');
|
||||
|
||||
const error = args.error;
|
||||
const prevState = error && error.task ? args.error.task.installationState : apps.ISTATE_PENDING_CONFIGURE;
|
||||
|
||||
debugApp(app, `Repairing app with error: ${JSON.stringify(error)} and state: ${prevState}`);
|
||||
|
||||
if (prevState === apps.ISTATE_PENDING_UNINSTALL) {
|
||||
uninstall(app, error.task.args, progressCallback, callback);
|
||||
} else if (prevState === apps.ISTATE_PENDING_DATA_DIR_MIGRATION) {
|
||||
migrateDataDir(app, error.task.args, progressCallback, callback);
|
||||
} else if (prevState === apps.ISTATE_PENDING_INSTALL
|
||||
|| prevState === apps.ISTATE_PENDING_CLONE
|
||||
|| prevState === apps.ISTATE_PENDING_RESTORE) {
|
||||
install(app, args, progressCallback, callback);
|
||||
} else {
|
||||
configure(app, args, progressCallback, callback);
|
||||
}
|
||||
}
|
||||
|
||||
function run(appId, args, progressCallback, callback) {
|
||||
assert.strictEqual(typeof appId, 'string');
|
||||
assert.strictEqual(typeof args, 'object');
|
||||
@@ -1050,20 +1074,8 @@ function run(appId, args, progressCallback, callback) {
|
||||
case apps.ISTATE_PENDING_CLONE:
|
||||
case apps.ISTATE_PENDING_RESTORE:
|
||||
return install(app, args, progressCallback, callback);
|
||||
case apps.ISTATE_PENDING_REPAIR: {
|
||||
let prevState = args.error && args.error.task ? args.error.task.installationState : apps.ISTATE_PENDING_CONFIGURE;
|
||||
if (prevState === apps.ISTATE_PENDING_UNINSTALL) {
|
||||
return uninstall(app, error.task.args, progressCallback, callback);
|
||||
} else if (prevState === apps.ISTATE_PENDING_DATA_DIR_MIGRATION) {
|
||||
return migrateDataDir(app, error.task.args, progressCallback, callback);
|
||||
} else if (prevState === apps.ISTATE_PENDING_INSTALL
|
||||
|| prevState === apps.ISTATE_PENDING_CLONE
|
||||
|| prevState === apps.ISTATE_PENDING_RESTORE) {
|
||||
return install(app, args, progressCallback, callback);
|
||||
} else {
|
||||
return configure(app, args, progressCallback, callback);
|
||||
}
|
||||
}
|
||||
case apps.ISTATE_PENDING_REPAIR:
|
||||
return repair(app, args, progressCallback, callback);
|
||||
case apps.ISTATE_PENDING_CONFIGURE:
|
||||
return configure(app, args, progressCallback, callback);
|
||||
case apps.ISTATE_PENDING_RECREATE_CONTAINER:
|
||||
|
||||
Reference in New Issue
Block a user