Remove DockerError

This commit is contained in:
Girish Ramakrishnan
2019-09-23 12:13:21 -07:00
parent 7cb95faacb
commit 9f792fc04b
3 changed files with 22 additions and 47 deletions

View File

@@ -1,8 +1,6 @@
'use strict';
exports = module.exports = {
DockerError: DockerError,
connection: connectionInstance(),
setRegistryConfig: setRegistryConfig,
@@ -41,6 +39,7 @@ function connectionInstance(timeout) {
var addons = require('./addons.js'),
async = require('async'),
assert = require('assert'),
BoxError = require('./boxerror.js'),
child_process = require('child_process'),
constants = require('./constants.js'),
debug = require('debug')('box:docker.js'),
@@ -56,30 +55,6 @@ var addons = require('./addons.js'),
const CLEARVOLUME_CMD = path.join(__dirname, 'scripts/clearvolume.sh'),
MKDIRVOLUME_CMD = path.join(__dirname, 'scripts/mkdirvolume.sh');
function DockerError(reason, errorOrMessage) {
assert.strictEqual(typeof reason, 'string');
assert(errorOrMessage instanceof Error || typeof errorOrMessage === 'string' || typeof errorOrMessage === 'undefined');
Error.call(this);
Error.captureStackTrace(this, this.constructor);
this.name = this.constructor.name;
this.reason = reason;
if (typeof errorOrMessage === 'undefined') {
this.message = reason;
} else if (typeof errorOrMessage === 'string') {
this.message = errorOrMessage;
} else {
this.message = 'Internal error';
this.nestedError = errorOrMessage;
}
}
util.inherits(DockerError, Error);
DockerError.INTERNAL_ERROR = 'Internal Error';
DockerError.EXTERNAL_ERROR = 'External Error';
DockerError.NOT_FOUND = 'Not found';
DockerError.BAD_FIELD = 'Bad field';
function debugApp(app) {
assert(typeof app === 'object');
@@ -95,8 +70,8 @@ function setRegistryConfig(auth, callback) {
// currently, auth info is not stashed in the db but maybe it should for restore to work?
const cmd = isLogin ? `docker login ${auth.serveraddress} --username ${auth.username} --password ${auth.password}` : `docker logout ${auth.serveraddress}`;
child_process.exec(cmd, { }, function (error, stdout, stderr) {
if (error) return callback(new DockerError(DockerError.BAD_FIELD, stderr));
child_process.exec(cmd, { }, function (error /*, stdout, stderr */) {
if (error) return callback(new BoxError(BoxError.ACCESS_DENIED, error.message));
callback();
});
@@ -109,8 +84,8 @@ function ping(callback) {
var docker = connectionInstance(1000);
docker.ping(function (error, result) {
if (error) return callback(new DockerError(DockerError.INTERNAL_ERROR, error));
if (result !== 'OK') return callback(new DockerError(DockerError.INTERNAL_ERROR, 'Unable to ping the docker daemon'));
if (error) return callback(new BoxError(BoxError.INTERNAL_ERROR, error));
if (result !== 'OK') return callback(new BoxError(BoxError.INTERNAL_ERROR, 'Unable to ping the docker daemon'));
callback(null);
});
@@ -122,7 +97,7 @@ function pullImage(manifest, callback) {
// Use docker CLI here to support downloading of private repos. for dockerode, we have to use
// https://github.com/apocas/dockerode#pull-from-private-repos
docker.pull(manifest.dockerImage, function (error, stream) {
if (error) return callback(new DockerError(DockerError.EXTERNAL_ERROR, 'Unable to pull image. statusCode: ' + error.statusCode));
if (error) return callback(new BoxError(BoxError.EXTERNAL_ERROR, 'Unable to pull image. statusCode: ' + error.statusCode));
// https://github.com/dotcloud/docker/issues/1074 says each status message
// is emitted as a chunk
@@ -145,7 +120,7 @@ function pullImage(manifest, callback) {
stream.on('error', function (error) {
debug('error pulling image %s of %s: %j', manifest.dockerImage, manifest.id, error);
callback(new DockerError(DockerError.EXTERNAL_ERROR, error.message));
callback(new BoxError(BoxError.EXTERNAL_ERROR, error.message));
});
});
}
@@ -322,8 +297,8 @@ function startContainer(containerId, callback) {
debug('Starting container %s', containerId);
container.start(function (error) {
if (error && error.statusCode === 404) return callback(new DockerError(DockerError.NOT_FOUND));
if (error && error.statusCode !== 304) return callback(new DockerError(DockerError.INTERNAL_ERROR, error));
if (error && error.statusCode === 404) return callback(new BoxError(BoxError.NOT_FOUND));
if (error && error.statusCode !== 304) return callback(new BoxError(BoxError.INTERNAL_ERROR, error));
return callback(null);
});
@@ -482,8 +457,8 @@ function inspect(containerId, callback) {
var container = exports.connection.getContainer(containerId);
container.inspect(function (error, result) {
if (error && error.statusCode === 404) return callback(new DockerError(DockerError.NOT_FOUND));
if (error) return callback(new DockerError(DockerError.INTERNAL_ERROR, error));
if (error && error.statusCode === 404) return callback(new BoxError(BoxError.NOT_FOUND));
if (error) return callback(new BoxError(BoxError.INTERNAL_ERROR, error));
callback(null, result);
});
@@ -496,7 +471,7 @@ function getEvents(options, callback) {
let docker = exports.connection;
docker.getEvents(options, function (error, stream) {
if (error) return callback(new DockerError(DockerError.INTERNAL_ERROR, error));
if (error) return callback(new BoxError(BoxError.INTERNAL_ERROR, error));
callback(null, stream);
});
@@ -509,8 +484,8 @@ function memoryUsage(containerId, callback) {
var container = exports.connection.getContainer(containerId);
container.stats({ stream: false }, function (error, result) {
if (error && error.statusCode === 404) return callback(new DockerError(DockerError.NOT_FOUND));
if (error) return callback(new DockerError(DockerError.INTERNAL_ERROR, error));
if (error && error.statusCode === 404) return callback(new BoxError(BoxError.NOT_FOUND));
if (error) return callback(new BoxError(BoxError.INTERNAL_ERROR, error));
callback(null, result);
});
@@ -620,7 +595,7 @@ function info(callback) {
let docker = exports.connection;
docker.info(function (error, result) {
if (error) return callback(new DockerError(DockerError.EXTERNAL_ERROR, 'Error connecting to docker. statusCode: ' + error.statusCode));
if (error) return callback(new BoxError(BoxError.EXTERNAL_ERROR, 'Error connecting to docker. statusCode: ' + error.statusCode));
callback(null, result);
});