@@ -508,6 +508,31 @@ async function changeLocation(app, args, progressCallback) {
|
||||
await updateApp(app, { installationState: apps.ISTATE_INSTALLED, error: null, health: null });
|
||||
}
|
||||
|
||||
async function changeServices(app, args, progressCallback) {
|
||||
assert.strictEqual(typeof app, 'object');
|
||||
assert.strictEqual(typeof args, 'object');
|
||||
assert.strictEqual(typeof progressCallback, 'function');
|
||||
|
||||
await progressCallback({ percent: 10, message: 'Cleaning up old install' });
|
||||
await deleteContainers(app, { managedOnly: true });
|
||||
|
||||
const unusedAddons = {};
|
||||
if (app.manifest.addons.turn && !args.enableTurn) unusedAddons.turn = app.manifest.addons.turn;
|
||||
await progressCallback({ percent: 20, message: 'Removing unused addons' });
|
||||
await services.teardownAddons(app, unusedAddons);
|
||||
|
||||
await progressCallback({ percent: 40, message: 'Setting up addons' });
|
||||
await services.setupAddons(app, app.manifest.addons);
|
||||
|
||||
await progressCallback({ percent: 60, message: 'Creating container' });
|
||||
await createContainer(app);
|
||||
|
||||
await startApp(app);
|
||||
|
||||
await progressCallback({ percent: 100, message: 'Done' });
|
||||
await updateApp(app, { installationState: apps.ISTATE_INSTALLED, error: null, health: null });
|
||||
}
|
||||
|
||||
async function migrateDataDir(app, args, progressCallback) {
|
||||
assert.strictEqual(typeof app, 'object');
|
||||
assert.strictEqual(typeof args, 'object');
|
||||
@@ -773,6 +798,9 @@ async function run(appId, args, progressCallback) {
|
||||
case apps.ISTATE_PENDING_LOCATION_CHANGE:
|
||||
cmd = changeLocation(app, args, progressCallback);
|
||||
break;
|
||||
case apps.ISTATE_PENDING_SERVICES_CHANGE:
|
||||
cmd = changeServices(app, args, progressCallback);
|
||||
break;
|
||||
case apps.ISTATE_PENDING_DATA_DIR_MIGRATION:
|
||||
cmd = migrateDataDir(app, args, progressCallback);
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user