Rename STATUS_* to ISTATE_*

This commit is contained in:
Girish Ramakrishnan
2014-06-28 01:17:30 -07:00
parent b5625534ef
commit 0dd57d0565
4 changed files with 86 additions and 86 deletions
+26 -26
View File
@@ -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'),
+7 -7
View File
@@ -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
View File
@@ -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
View File
@@ -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);
}