Fix various app state issues
Tasks initiated by repair/uninstall can run from any state Clear taskId for failed uninstall Clone/install can only be run on new entries
This commit is contained in:
11
src/appdb.js
11
src/appdb.js
@@ -238,8 +238,8 @@ function add(id, appStoreId, manifest, location, domain, portBindings, data, cal
|
||||
const accessRestriction = data.accessRestriction || null;
|
||||
const accessRestrictionJson = JSON.stringify(accessRestriction);
|
||||
const memoryLimit = data.memoryLimit || 0;
|
||||
const installationState = data.installationState || 'pending_install'; // FIXME
|
||||
const runState = data.runState || 'running'; // FIXME
|
||||
const installationState = data.installationState;
|
||||
const runState = data.runState;
|
||||
const sso = 'sso' in data ? data.sso : null;
|
||||
const robotsTxt = 'robotsTxt' in data ? data.robotsTxt : null;
|
||||
const debugModeJson = data.debugMode ? JSON.stringify(data.debugMode) : null;
|
||||
@@ -454,15 +454,16 @@ function setHealth(appId, health, healthTime, callback) {
|
||||
updateWithConstraints(appId, values, '', callback);
|
||||
}
|
||||
|
||||
function setTask(appId, values, callback) {
|
||||
function setTask(appId, values, requiredState, callback) {
|
||||
assert.strictEqual(typeof appId, 'string');
|
||||
assert.strictEqual(typeof values, 'object');
|
||||
assert(requiredState === null || typeof requiredState === 'string');
|
||||
assert.strictEqual(typeof callback, 'function');
|
||||
|
||||
if (values.installationState === 'pending_uninstall') { // FIXME
|
||||
if (requiredState === null) {
|
||||
updateWithConstraints(appId, values, 'AND taskId IS NULL', callback);
|
||||
} else {
|
||||
updateWithConstraints(appId, values, 'AND taskId IS NULL AND installationState != "error"', callback);
|
||||
updateWithConstraints(appId, values, `AND taskId IS NULL AND installationState = "${requiredState}"`, callback);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user