Rename STATUS_* to ISTATE_*
This commit is contained in:
+26
-26
@@ -16,39 +16,39 @@ exports = module.exports = {
|
||||
|
||||
// status codes
|
||||
// all error codes need to end with _error (see apptask.js)
|
||||
STATUS_NGINX_ERROR: 'nginx_error',
|
||||
STATUS_NGINX_CONFIGURED: 'nginx_configured',
|
||||
ISTATE_NGINX_ERROR: 'nginx_error',
|
||||
ISTATE_NGINX_CONFIGURED: 'nginx_configured',
|
||||
|
||||
STATUS_PENDING_INSTALL: 'pending_install',
|
||||
STATUS_PENDING_UNINSTALL: 'pending_uninstall',
|
||||
STATUS_DOWNLOAD_ERROR: 'download_error',
|
||||
STATUS_UNINSTALLED: 'uninstalled', // this state does not appear in database
|
||||
ISTATE_PENDING_INSTALL: 'pending_install',
|
||||
ISTATE_PENDING_UNINSTALL: 'pending_uninstall',
|
||||
ISTATE_DOWNLOAD_ERROR: 'download_error',
|
||||
ISTATE_UNINSTALLED: 'uninstalled', // this state does not appear in database
|
||||
|
||||
STATUS_DOWNLOADING_MANIFEST: 'downloading_manifest',
|
||||
STATUS_DOWNLOADED_MANIFEST: 'downloaded_manifest',
|
||||
STATUS_MANIFEST_ERROR: 'manifest_error',
|
||||
ISTATE_DOWNLOADING_MANIFEST: 'downloading_manifest',
|
||||
ISTATE_DOWNLOADED_MANIFEST: 'downloaded_manifest',
|
||||
ISTATE_MANIFEST_ERROR: 'manifest_error',
|
||||
|
||||
STATUS_DOWNLOADING_IMAGE: 'downloading_image',
|
||||
STATUS_DOWNLOADED_IMAGE: 'downloaded_image',
|
||||
STATUS_IMAGE_ERROR: 'image_error',
|
||||
STATUS_CREATING_CONTAINER: 'creating_container',
|
||||
STATUS_CREATED_CONTAINER: 'created_container',
|
||||
ISTATE_DOWNLOADING_IMAGE: 'downloading_image',
|
||||
ISTATE_DOWNLOADED_IMAGE: 'downloaded_image',
|
||||
ISTATE_IMAGE_ERROR: 'image_error',
|
||||
ISTATE_CREATING_CONTAINER: 'creating_container',
|
||||
ISTATE_CREATED_CONTAINER: 'created_container',
|
||||
|
||||
STATUS_STARTING_CONTAINER: 'starting_container',
|
||||
STATUS_STARTED_CONTAINER: 'started_container',
|
||||
STATUS_CONTAINER_ERROR: 'container_error',
|
||||
ISTATE_STARTING_CONTAINER: 'starting_container',
|
||||
ISTATE_STARTED_CONTAINER: 'started_container',
|
||||
ISTATE_CONTAINER_ERROR: 'container_error',
|
||||
|
||||
STATUS_CREATING_VOLUME: 'creating_volume',
|
||||
STATUS_CREATED_VOLUME: 'created_volume',
|
||||
STATUS_VOLUME_ERROR: 'volume_error',
|
||||
ISTATE_CREATING_VOLUME: 'creating_volume',
|
||||
ISTATE_CREATED_VOLUME: 'created_volume',
|
||||
ISTATE_VOLUME_ERROR: 'volume_error',
|
||||
|
||||
STATUS_REGISTERING_SUBDOMAIN: 'registering_subdomain',
|
||||
STATUS_REGISTERED_SUBDOMAIN: 'registered_subdomain',
|
||||
STATUS_SUBDOMAIN_ERROR: 'subdomain_error',
|
||||
ISTATE_REGISTERING_SUBDOMAIN: 'registering_subdomain',
|
||||
ISTATE_REGISTERED_SUBDOMAIN: 'registered_subdomain',
|
||||
ISTATE_SUBDOMAIN_ERROR: 'subdomain_error',
|
||||
|
||||
STATUS_RUNNING: 'running',
|
||||
STATUS_EXITED: 'exited',
|
||||
STATUS_NOT_RESPONDING: 'not_responding'
|
||||
ISTATE_RUNNING: 'running',
|
||||
ISTATE_EXITED: 'exited',
|
||||
ISTATE_NOT_RESPONDING: 'not_responding'
|
||||
};
|
||||
|
||||
var DatabaseError = require('./databaseerror'),
|
||||
|
||||
@@ -53,13 +53,13 @@ function checkAppHealth(app, callback) {
|
||||
container.inspect(function (err, data) {
|
||||
if (err || !data || !data.State) {
|
||||
debug('Error inspecting container');
|
||||
updateApp(app, { installationState: appdb.STATUS_IMAGE_ERROR }, FATAL_CALLBACK);
|
||||
updateApp(app, { installationState: appdb.ISTATE_IMAGE_ERROR }, FATAL_CALLBACK);
|
||||
return callback(err);
|
||||
}
|
||||
|
||||
if (data.State.Running !== true) {
|
||||
debug(app.id + ' has exited');
|
||||
updateApp(app, { installationState: appdb.STATUS_EXITED }, FATAL_CALLBACK);
|
||||
updateApp(app, { installationState: appdb.ISTATE_EXITED }, FATAL_CALLBACK);
|
||||
return callback(null);
|
||||
}
|
||||
|
||||
@@ -71,11 +71,11 @@ function checkAppHealth(app, callback) {
|
||||
|
||||
if (error || res.status !== 200) {
|
||||
debug('Marking application as dead: ' + app.id);
|
||||
updateApp(app, { installationState: appdb.STATUS_NOT_RESPONDING }, FATAL_CALLBACK);
|
||||
updateApp(app, { installationState: appdb.ISTATE_NOT_RESPONDING }, FATAL_CALLBACK);
|
||||
callback(null);
|
||||
} else {
|
||||
debug('healthy app:' + app.id);
|
||||
updateApp(app, { installationState: appdb.STATUS_RUNNING }, FATAL_CALLBACK);
|
||||
updateApp(app, { installationState: appdb.ISTATE_RUNNING }, FATAL_CALLBACK);
|
||||
callback(null);
|
||||
}
|
||||
});
|
||||
@@ -88,9 +88,9 @@ function processApps(callback) {
|
||||
|
||||
async.each(apps, function (app, done) {
|
||||
switch (app.installationState) {
|
||||
case appdb.STATUS_RUNNING:
|
||||
case appdb.STATUS_NOT_RESPONDING:
|
||||
case appdb.STATUS_EXITED:
|
||||
case appdb.ISTATE_RUNNING:
|
||||
case appdb.ISTATE_NOT_RESPONDING:
|
||||
case appdb.ISTATE_EXITED:
|
||||
checkAppHealth(app, done);
|
||||
break;
|
||||
default:
|
||||
|
||||
+3
-3
@@ -35,7 +35,7 @@ function resume() {
|
||||
appdb.getAll(function (error, apps) {
|
||||
if (error) throw error;
|
||||
apps.forEach(function (app) {
|
||||
if (app.installationState === appdb.STATUS_RUNNING || app.installationState === appdb.STATUS_DEAD || app.installationState === appdb.STATUS_NOT_RESPONDING) return;
|
||||
if (app.installationState === appdb.ISTATE_RUNNING || app.installationState === appdb.ISTATE_DEAD || app.installationState === appdb.ISTATE_NOT_RESPONDING) return;
|
||||
debug('Creating process for ' + app.id + ' with state ' + app.installationState);
|
||||
tasks[app.id] = child_process.fork(__dirname + '/apptask.js', [ app.id ]);
|
||||
});
|
||||
@@ -118,7 +118,7 @@ function install(appId, username, password, location, portBindings, callback) {
|
||||
|
||||
stopTask(appId);
|
||||
|
||||
appdb.add(appId, appdb.STATUS_PENDING_INSTALL, location, portBindings, function (error) {
|
||||
appdb.add(appId, appdb.ISTATE_PENDING_INSTALL, location, portBindings, function (error) {
|
||||
if (error && error.reason === DatabaseError.ALREADY_EXISTS) return callback(new AppsError('Already installed or installing', AppsError.ALREADY_EXISTS));
|
||||
if (error) return callback(new AppsError('Internal error:' + error.message, AppsError.INTERNAL_ERROR));
|
||||
|
||||
@@ -135,7 +135,7 @@ function uninstall(appId, callback) {
|
||||
|
||||
stopTask(appId);
|
||||
|
||||
appdb.update(appId, { installationState: appdb.STATUS_PENDING_UNINSTALL }, function (error) {
|
||||
appdb.update(appId, { installationState: appdb.ISTATE_PENDING_UNINSTALL }, function (error) {
|
||||
if (error && error.reason === DatabaseError.NOT_FOUND) return callback(new AppsError('No such app', AppsError.NOT_FOUND));
|
||||
if (error) return callback(new AppsError('Internal error:' + error.message, AppsError.INTERNAL_ERROR));
|
||||
|
||||
|
||||
+50
-50
@@ -329,148 +329,148 @@ function processAppState(app, callback) {
|
||||
}
|
||||
|
||||
switch (app.installationState) {
|
||||
case appdb.STATUS_PENDING_INSTALL:
|
||||
case appdb.STATUS_NGINX_ERROR:
|
||||
case appdb.ISTATE_PENDING_INSTALL:
|
||||
case appdb.ISTATE_NGINX_ERROR:
|
||||
getFreePort(function (error, freePort) {
|
||||
if (error) return callback(error);
|
||||
configureNginx(app, freePort, function (error) {
|
||||
if (error) {
|
||||
debug('Error configuring nginx: ' + error);
|
||||
return updateApp(app, { installationState: appdb.STATUS_NGINX_ERROR }, callback);
|
||||
return updateApp(app, { installationState: appdb.ISTATE_NGINX_ERROR }, callback);
|
||||
}
|
||||
|
||||
updateApp(app, { installationState: appdb.STATUS_NGINX_CONFIGURED, httpPort: freePort }, callback);
|
||||
updateApp(app, { installationState: appdb.ISTATE_NGINX_CONFIGURED, httpPort: freePort }, callback);
|
||||
});
|
||||
});
|
||||
break;
|
||||
|
||||
case appdb.STATUS_NGINX_CONFIGURED:
|
||||
case appdb.STATUS_REGISTERING_SUBDOMAIN:
|
||||
case appdb.STATUS_SUBDOMAIN_ERROR:
|
||||
updateApp(app, { installationState: appdb.STATUS_REGISTERING_SUBDOMAIN }, function (error) {
|
||||
case appdb.ISTATE_NGINX_CONFIGURED:
|
||||
case appdb.ISTATE_REGISTERING_SUBDOMAIN:
|
||||
case appdb.ISTATE_SUBDOMAIN_ERROR:
|
||||
updateApp(app, { installationState: appdb.ISTATE_REGISTERING_SUBDOMAIN }, function (error) {
|
||||
if (error) return callback(error);
|
||||
|
||||
registerSubdomain(app, function (error) {
|
||||
if (error) {
|
||||
debug('Error registering subdomain: ' + error);
|
||||
return updateApp(app, { installationState: appdb.STATUS_SUBDOMAIN_ERROR }, callback);
|
||||
return updateApp(app, { installationState: appdb.ISTATE_SUBDOMAIN_ERROR }, callback);
|
||||
}
|
||||
|
||||
updateApp(app, { installationState: appdb.STATUS_REGISTERED_SUBDOMAIN }, callback);
|
||||
updateApp(app, { installationState: appdb.ISTATE_REGISTERED_SUBDOMAIN }, callback);
|
||||
});
|
||||
});
|
||||
break;
|
||||
|
||||
case appdb.STATUS_REGISTERED_SUBDOMAIN:
|
||||
case appdb.STATUS_MANIFEST_ERROR:
|
||||
case appdb.STATUS_IMAGE_ERROR:
|
||||
case appdb.STATUS_DOWNLOAD_ERROR:
|
||||
case appdb.STATUS_DOWNLOADING_MANIFEST:
|
||||
updateApp(app, { installationState: appdb.STATUS_DOWNLOADING_MANIFEST }, function (error) {
|
||||
case appdb.ISTATE_REGISTERED_SUBDOMAIN:
|
||||
case appdb.ISTATE_MANIFEST_ERROR:
|
||||
case appdb.ISTATE_IMAGE_ERROR:
|
||||
case appdb.ISTATE_DOWNLOAD_ERROR:
|
||||
case appdb.ISTATE_DOWNLOADING_MANIFEST:
|
||||
updateApp(app, { installationState: appdb.ISTATE_DOWNLOADING_MANIFEST }, function (error) {
|
||||
if (error) return callback(error);
|
||||
|
||||
downloadManifest(app, function (error, manifestJson) {
|
||||
if (error) {
|
||||
debug('Error downloading manifest:' + error);
|
||||
return updateApp(app, { installationState: appdb.STATUS_MANIFEST_ERROR }, callback);
|
||||
return updateApp(app, { installationState: appdb.ISTATE_MANIFEST_ERROR }, callback);
|
||||
}
|
||||
|
||||
updateApp(app, { installationState: appdb.STATUS_DOWNLOADED_MANIFEST, manifestJson: manifestJson }, callback);
|
||||
updateApp(app, { installationState: appdb.ISTATE_DOWNLOADED_MANIFEST, manifestJson: manifestJson }, callback);
|
||||
});
|
||||
});
|
||||
break;
|
||||
|
||||
case appdb.STATUS_DOWNLOADING_IMAGE:
|
||||
case appdb.STATUS_DOWNLOADED_MANIFEST:
|
||||
updateApp(app, { installationState: appdb.STATUS_DOWNLOADING_IMAGE }, function (error) {
|
||||
case appdb.ISTATE_DOWNLOADING_IMAGE:
|
||||
case appdb.ISTATE_DOWNLOADED_MANIFEST:
|
||||
updateApp(app, { installationState: appdb.ISTATE_DOWNLOADING_IMAGE }, function (error) {
|
||||
if (error) return callback(error);
|
||||
|
||||
downloadImage(app, function (error) {
|
||||
if (error) {
|
||||
debug('Error downloading image:' + error);
|
||||
return updateApp(app, { installationState: appdb.STATUS_MANIFEST_ERROR}, callback);
|
||||
return updateApp(app, { installationState: appdb.ISTATE_MANIFEST_ERROR}, callback);
|
||||
}
|
||||
|
||||
updateApp(app, { installationState: appdb.STATUS_DOWNLOADED_IMAGE }, callback);
|
||||
updateApp(app, { installationState: appdb.ISTATE_DOWNLOADED_IMAGE }, callback);
|
||||
});
|
||||
});
|
||||
break;
|
||||
|
||||
case appdb.STATUS_DOWNLOADED_IMAGE:
|
||||
case appdb.STATUS_CREATING_CONTAINER:
|
||||
case appdb.ISTATE_DOWNLOADED_IMAGE:
|
||||
case appdb.ISTATE_CREATING_CONTAINER:
|
||||
appdb.getPortBindings(app.id, function (error, portBindings) {
|
||||
if (error) return callback(error);
|
||||
|
||||
updateApp(app, { installationState: appdb.STATUS_CREATING_CONTAINER }, function (error) {
|
||||
updateApp(app, { installationState: appdb.ISTATE_CREATING_CONTAINER }, function (error) {
|
||||
if (error) return callback(error);
|
||||
|
||||
createContainer(app, portBindings, function (error, containerId) {
|
||||
if (error) {
|
||||
debug('Error creating container:' + error);
|
||||
return updateApp(app, { installationState: appdb.STATUS_CONTAINER_ERROR }, callback);
|
||||
return updateApp(app, { installationState: appdb.ISTATE_CONTAINER_ERROR }, callback);
|
||||
}
|
||||
|
||||
updateApp(app, { containerId: containerId, installationState: appdb.STATUS_CREATED_CONTAINER }, callback);
|
||||
updateApp(app, { containerId: containerId, installationState: appdb.ISTATE_CREATED_CONTAINER }, callback);
|
||||
});
|
||||
});
|
||||
});
|
||||
break;
|
||||
|
||||
case appdb.STATUS_CREATED_CONTAINER:
|
||||
case appdb.STATUS_CREATING_VOLUME:
|
||||
case appdb.STATUS_VOLUME_ERROR:
|
||||
updateApp(app, { installationState: appdb.STATUS_CREATING_VOLUME }, function (error) {
|
||||
case appdb.ISTATE_CREATED_CONTAINER:
|
||||
case appdb.ISTATE_CREATING_VOLUME:
|
||||
case appdb.ISTATE_VOLUME_ERROR:
|
||||
updateApp(app, { installationState: appdb.ISTATE_CREATING_VOLUME }, function (error) {
|
||||
if (error) return callback(error);
|
||||
|
||||
createVolume(app, function (error) {
|
||||
if (error) {
|
||||
debug('Error creating volume: ' + error);
|
||||
return updateApp(app, { installationState: appdb.STATUS_VOLUME_ERROR }, callback);
|
||||
return updateApp(app, { installationState: appdb.ISTATE_VOLUME_ERROR }, callback);
|
||||
}
|
||||
|
||||
updateApp(app, { installationState: appdb.STATUS_CREATED_VOLUME }, callback);
|
||||
updateApp(app, { installationState: appdb.ISTATE_CREATED_VOLUME }, callback);
|
||||
});
|
||||
});
|
||||
break;
|
||||
|
||||
case appdb.STATUS_EXITED:
|
||||
case appdb.STATUS_CREATED_VOLUME:
|
||||
case appdb.STATUS_STARTING_CONTAINER:
|
||||
case appdb.STATUS_CONTAINER_ERROR:
|
||||
case appdb.ISTATE_EXITED:
|
||||
case appdb.ISTATE_CREATED_VOLUME:
|
||||
case appdb.ISTATE_STARTING_CONTAINER:
|
||||
case appdb.ISTATE_CONTAINER_ERROR:
|
||||
appdb.getPortBindings(app.id, function (error, portBindings) {
|
||||
if (error) return callback(error);
|
||||
|
||||
updateApp(app, { installationState: appdb.STATUS_STARTING_CONTAINER }, function (error) {
|
||||
updateApp(app, { installationState: appdb.ISTATE_STARTING_CONTAINER }, function (error) {
|
||||
if (error) return callback(error);
|
||||
|
||||
startContainer(app, portBindings, function (error) {
|
||||
if (error) {
|
||||
debug('Error creating container:' + error);
|
||||
return updateApp(app, { installationState: appdb.STATUS_CONTAINER_ERROR }, callback);
|
||||
return updateApp(app, { installationState: appdb.ISTATE_CONTAINER_ERROR }, callback);
|
||||
}
|
||||
|
||||
updateApp(app, { installationState: appdb.STATUS_STARTED_CONTAINER }, callback);
|
||||
updateApp(app, { installationState: appdb.ISTATE_STARTED_CONTAINER }, callback);
|
||||
});
|
||||
});
|
||||
});
|
||||
break;
|
||||
|
||||
case appdb.STATUS_STARTED_CONTAINER:
|
||||
updateApp(app, { installationState: appdb.STATUS_RUNNING }, callback);
|
||||
case appdb.ISTATE_STARTED_CONTAINER:
|
||||
updateApp(app, { installationState: appdb.ISTATE_RUNNING }, callback);
|
||||
break;
|
||||
|
||||
case appdb.STATUS_PENDING_UNINSTALL:
|
||||
case appdb.ISTATE_PENDING_UNINSTALL:
|
||||
uninstall(app, function (error) {
|
||||
if (error) return callback(error);
|
||||
|
||||
app.installationState = appdb.STATUS_UNINSTALLED;
|
||||
app.installationState = appdb.ISTATE_UNINSTALLED;
|
||||
callback(null);
|
||||
});
|
||||
break;
|
||||
|
||||
case appdb.STATUS_RUNNING:
|
||||
case appdb.STATUS_NOT_RESPONDING:
|
||||
case appdb.STATUS_EXITED:
|
||||
case appdb.ISTATE_RUNNING:
|
||||
case appdb.ISTATE_NOT_RESPONDING:
|
||||
case appdb.ISTATE_EXITED:
|
||||
assert(true, 'Should not reach this state: ' + app.installationState);
|
||||
break;
|
||||
}
|
||||
@@ -481,7 +481,7 @@ function processApp(app, callback) {
|
||||
processAppState(app, function (error) {
|
||||
if (error) return callback(error); // fatal error (not install error)
|
||||
|
||||
if (app.installationState === appdb.STATUS_UNINSTALLED) {
|
||||
if (app.installationState === appdb.ISTATE_UNINSTALLED) {
|
||||
debug('app uninstalled, stopping');
|
||||
return callback(null);
|
||||
}
|
||||
@@ -492,7 +492,7 @@ function processApp(app, callback) {
|
||||
}
|
||||
|
||||
// move on
|
||||
if (app.installationState === appdb.STATUS_RUNNING || app.installationState === appdb.STATUS_NOT_RESPONDING || app.installationState === appdb.STATUS_EXITED) {
|
||||
if (app.installationState === appdb.ISTATE_RUNNING || app.installationState === appdb.ISTATE_NOT_RESPONDING || app.installationState === appdb.ISTATE_EXITED) {
|
||||
debug('app installed, stopping');
|
||||
return callback(null);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user