From db1c33bb0057131e894bf7f8580552bbc7a51db7 Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@arkins.net> Date: Tue, 20 Mar 2018 17:12:11 +0100 Subject: [PATCH] fix: throw registry-failure exception if docker has internal errors --- lib/datasource/docker.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/lib/datasource/docker.js b/lib/datasource/docker.js index 18d571b860..4abd861784 100644 --- a/lib/datasource/docker.js +++ b/lib/datasource/docker.js @@ -25,6 +25,11 @@ async function getHeaders(repository) { Accept: 'application/vnd.docker.distribution.manifest.v2+json', }; } catch (err) { + // istanbul ignore if + if (err.statusCode >= 500 && err.statusCode < 600) { + logger.warn({ err }, 'docker registry failure: internal error'); + throw new Error('registry-failure'); + } logger.info('Error obtaining docker token'); return null; } @@ -41,6 +46,11 @@ async function getDigest(name, tag = 'latest') { logger.debug({ digest }, 'Got docker digest'); return digest; } catch (err) { + // istanbul ignore if + if (err.statusCode >= 500 && err.statusCode < 600) { + logger.warn({ err }, 'docker registry failure: internal error'); + throw new Error('registry-failure'); + } logger.info({ err, name, tag }, 'Error looking up docker image digest'); return null; } @@ -55,6 +65,11 @@ async function getTags(name) { logger.debug({ tags }, 'Got docker tags'); return tags; } catch (err) { + // istanbul ignore if + if (err.statusCode >= 500 && err.statusCode < 600) { + logger.warn({ err }, 'docker registry failure: internal error'); + throw new Error('registry-failure'); + } logger.warn({ err, name }, 'Error getting docker image tags'); return null; } -- GitLab