diff --git a/src/docker.js b/src/docker.js index 2c64a21da..a3dae158f 100644 --- a/src/docker.js +++ b/src/docker.js @@ -73,19 +73,16 @@ function removePrivateFields(registryConfig) { return registryConfig; } -function ping(callback) { - assert.strictEqual(typeof callback, 'function'); - +async function ping() { // do not let the request linger const connection = new Docker({ socketPath: DOCKER_SOCKET_PATH, timeout: 1000 }); - connection.ping(function (error, result) { - if (error) return callback(new BoxError(BoxError.DOCKER_ERROR, error)); - if (Buffer.isBuffer(result) && result.toString('utf8') === 'OK') return callback(null); // sometimes it returns buffer - if (result === 'OK') return callback(null); + const [error, result] = await safe(connection.ping()); + if (error) throw new BoxError(BoxError.DOCKER_ERROR, error); + if (Buffer.isBuffer(result) && result.toString('utf8') === 'OK') return; // sometimes it returns buffer + if (result === 'OK') return; - callback(new BoxError(BoxError.DOCKER_ERROR, 'Unable to ping the docker daemon')); - }); + throw new BoxError(BoxError.DOCKER_ERROR, 'Unable to ping the docker daemon'); } async function getRegistryConfig(image) { diff --git a/src/services.js b/src/services.js index 928badb8a..d1007eb32 100644 --- a/src/services.js +++ b/src/services.js @@ -1848,7 +1848,7 @@ async function restartDocker() { } async function statusUnbound() { - const [error] = await shell.promises.exec('statusUnbound', 'systemctl is-active unbound'); + const [error] = await safe(shell.promises.exec('statusUnbound', 'systemctl is-active unbound')); return { status: error ? exports.SERVICE_STATUS_STOPPED : exports.SERVICE_STATUS_ACTIVE }; }