From 052e92ea340109d25acef91a8366576c9d2d83d6 Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Wed, 8 Dec 2021 15:12:55 +0100 Subject: [PATCH] fix(terraform): externalhosterror for 503 (#12760) Co-authored-by: Michael Kriese --- lib/datasource/terraform-module/base.ts | 14 ++++++++++++++ lib/datasource/terraform-module/index.ts | 10 ---------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/lib/datasource/terraform-module/base.ts b/lib/datasource/terraform-module/base.ts index 688a9a429170af..45d23d6d282034 100644 --- a/lib/datasource/terraform-module/base.ts +++ b/lib/datasource/terraform-module/base.ts @@ -1,4 +1,6 @@ +import { ExternalHostError } from '../../types/errors/external-host-error'; import { cache } from '../../util/cache/package/decorator'; +import type { HttpError } from '../../util/http/types'; import { ensureTrailingSlash } from '../../util/url'; import { Datasource } from '../datasource'; import type { ServiceDiscoveryResult } from './types'; @@ -26,4 +28,16 @@ export abstract class TerraformDatasource extends Datasource { private static getDiscoveryUrl(registryUrl: string): string { return `${ensureTrailingSlash(registryUrl)}.well-known/terraform.json`; } + + override handleSpecificErrors(err: HttpError): void { + const failureCodes = ['EAI_AGAIN']; + // istanbul ignore if + if (failureCodes.includes(err.code)) { + throw new ExternalHostError(err); + } + // istanbul ignore if + if (err.response?.statusCode === 503) { + throw new ExternalHostError(err); + } + } } diff --git a/lib/datasource/terraform-module/index.ts b/lib/datasource/terraform-module/index.ts index 0c6d4a44da6496..f9bbbe2f174e32 100644 --- a/lib/datasource/terraform-module/index.ts +++ b/lib/datasource/terraform-module/index.ts @@ -1,7 +1,5 @@ import { logger } from '../../logger'; -import { ExternalHostError } from '../../types/errors/external-host-error'; import { cache } from '../../util/cache/package/decorator'; -import type { HttpError } from '../../util/http/types'; import { regEx } from '../../util/regex'; import * as hashicorpVersioning from '../../versioning/hashicorp'; import type { GetReleasesConfig, ReleaseResult } from '../types'; @@ -83,14 +81,6 @@ export class TerraformModuleDatasource extends TerraformDatasource { return dep; } - override handleSpecificErrors(err: HttpError): void { - const failureCodes = ['EAI_AGAIN']; - // istanbul ignore if - if (failureCodes.includes(err.code)) { - throw new ExternalHostError(err); - } - } - private static getRegistryRepository( lookupName: string, registryUrl: string