Add starting addon state when we wait for healthcheck
This commit is contained in:
@@ -26,8 +26,9 @@ exports = module.exports = {
|
||||
_setupOauth: setupOauth,
|
||||
_teardownOauth: teardownOauth,
|
||||
|
||||
ADDON_STATUS_STARTING: 'starting', // container up, waiting for healthcheck
|
||||
ADDON_STATUS_ACTIVE: 'active',
|
||||
ADDON_STATUS_INACTIVE: 'inactive'
|
||||
ADDON_STATUS_STOPPED: 'stopped'
|
||||
};
|
||||
|
||||
var accesscontrol = require('./accesscontrol.js'),
|
||||
@@ -271,14 +272,14 @@ function statusContainerAddon(addonName, addonTokenName, callback) {
|
||||
assert.strictEqual(typeof callback, 'function');
|
||||
|
||||
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);
|
||||
|
||||
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 (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 (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_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({
|
||||
realtimeTimestamp: timestamp * 1000,
|
||||
message: message,
|
||||
source: addon
|
||||
source: addonName
|
||||
}) + '\n';
|
||||
});
|
||||
|
||||
@@ -826,10 +827,10 @@ function statusEmail(callback) {
|
||||
assert.strictEqual(typeof callback, 'function');
|
||||
|
||||
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));
|
||||
|
||||
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');
|
||||
|
||||
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 });
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user