Add starting addon state when we wait for healthcheck

This commit is contained in:
Johannes Zellner
2018-11-22 21:54:31 +01:00
parent f54ab11f18
commit e2debe3c39
+10 -9
View File
@@ -26,8 +26,9 @@ exports = module.exports = {
_setupOauth: setupOauth, _setupOauth: setupOauth,
_teardownOauth: teardownOauth, _teardownOauth: teardownOauth,
ADDON_STATUS_STARTING: 'starting', // container up, waiting for healthcheck
ADDON_STATUS_ACTIVE: 'active', ADDON_STATUS_ACTIVE: 'active',
ADDON_STATUS_INACTIVE: 'inactive' ADDON_STATUS_STOPPED: 'stopped'
}; };
var accesscontrol = require('./accesscontrol.js'), var accesscontrol = require('./accesscontrol.js'),
@@ -271,14 +272,14 @@ function statusContainerAddon(addonName, addonTokenName, callback) {
assert.strictEqual(typeof callback, 'function'); assert.strictEqual(typeof callback, 'function');
getAddonDetails(addonName, addonTokenName, function (error, result) { getAddonDetails(addonName, addonTokenName, function (error, result) {
if (error && error.reason === AddonsError.NOT_ACTIVE) return callback(null, { status: exports.ADDON_STATUS_INACTIVE }); if (error && error.reason === AddonsError.NOT_ACTIVE) return callback(null, { status: exports.ADDON_STATUS_STOPPED });
if (error) return callback(error); if (error) return callback(error);
request.get(`https://${result.ip}:3000/healthcheck?access_token=${result.token}`, { json: true, rejectUnauthorized: false }, function (error, response) { request.get(`https://${result.ip}:3000/healthcheck?access_token=${result.token}`, { json: true, rejectUnauthorized: false }, function (error, response) {
if (error) return callback(null, { status: exports.ADDON_STATUS_INACTIVE, error: `Error waiting for ${addonName}: ${error.message}` }); if (error) return callback(null, { status: exports.ADDON_STATUS_STARTING, error: `Error waiting for ${addonName}: ${error.message}` });
if (response.statusCode !== 200 || !response.body.status) return callback(null, { status: exports.ADDON_STATUS_INACTIVE, error: `Error waiting for ${addonName}. Status code: ${response.statusCode} message: ${response.body.message}` }); if (response.statusCode !== 200 || !response.body.status) return callback(null, { status: exports.ADDON_STATUS_STARTING, error: `Error waiting for ${addonName}. Status code: ${response.statusCode} message: ${response.body.message}` });
callback(null, { status: result.state.Running ? exports.ADDON_STATUS_ACTIVE : exports.ADDON_STATUS_INACTIVE }); callback(null, { status: result.state.Running ? exports.ADDON_STATUS_ACTIVE : exports.ADDON_STATUS_STOPPED });
}); });
}); });
} }
@@ -402,7 +403,7 @@ function getLogs(addonName, options, callback) {
return JSON.stringify({ return JSON.stringify({
realtimeTimestamp: timestamp * 1000, realtimeTimestamp: timestamp * 1000,
message: message, message: message,
source: addon source: addonName
}) + '\n'; }) + '\n';
}); });
@@ -826,10 +827,10 @@ function statusEmail(callback) {
assert.strictEqual(typeof callback, 'function'); assert.strictEqual(typeof callback, 'function');
docker.inspect('mail', function (error, result) { docker.inspect('mail', function (error, result) {
if (error && error.reason === DockerError.NOT_FOUND) return callback(null, { status: exports.ADDON_STATUS_INACTIVE }); if (error && error.reason === DockerError.NOT_FOUND) return callback(null, { status: exports.ADDON_STATUS_STOPPED });
if (error) return callback(new AddonsError(AddonsError.INTERNAL_ERROR, error)); if (error) return callback(new AddonsError(AddonsError.INTERNAL_ERROR, error));
callback(null, { status: result.State.Running ? exports.ADDON_STATUS_ACTIVE : exports.ADDON_STATUS_INACTIVE }); callback(null, { status: result.State.Running ? exports.ADDON_STATUS_ACTIVE : exports.ADDON_STATUS_STOPPED });
}); });
} }
@@ -1675,6 +1676,6 @@ function statusDocker(callback) {
assert.strictEqual(typeof callback, 'function'); assert.strictEqual(typeof callback, 'function');
docker.ping(function (error) { docker.ping(function (error) {
callback(null, { status: error ? exports.ADDON_STATUS_INACTIVE: exports.ADDON_STATUS_ACTIVE }); callback(null, { status: error ? exports.ADDON_STATUS_STOPPED: exports.ADDON_STATUS_ACTIVE });
}); });
} }