From 3455c2656e257ae3d9b4169af58b6889d9904148 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Tue, 16 Nov 2021 11:17:52 +0100 Subject: Test and log request retries --- server/helpers/requests.ts | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'server/helpers') diff --git a/server/helpers/requests.ts b/server/helpers/requests.ts index 6e80995ad..fc77ebd35 100644 --- a/server/helpers/requests.ts +++ b/server/helpers/requests.ts @@ -1,5 +1,5 @@ import { createWriteStream, remove } from 'fs-extra' -import got, { CancelableRequest, Options as GotOptions, RequestError, Response } from 'got' +import got, { CancelableRequest, NormalizedOptions, Options as GotOptions, RequestError, Response } from 'got' import { HttpProxyAgent, HttpsProxyAgent } from 'hpagent' import { join } from 'path' import { CONFIG } from '../initializers/config' @@ -16,6 +16,7 @@ const httpSignature = require('@peertube/http-signature') export interface PeerTubeRequestError extends Error { statusCode?: number responseBody?: any + responseHeaders?: any } type PeerTubeRequestOptions = { @@ -99,6 +100,12 @@ const peertubeGot = got.extend({ }, httpSignatureOptions) } } + ], + + beforeRetry: [ + (_options: NormalizedOptions, error: RequestError, retryCount: number) => { + logger.debug('Retrying request to %s.', error.request.requestUrl, { retryCount, error: buildRequestError(error), ...lTags() }) + } ] } }) @@ -107,7 +114,6 @@ function doRequest (url: string, options: PeerTubeRequestOptions = {}) { const gotOptions = buildGotOptions(options) return peertubeGot(url, gotOptions) - .on('retry', logRetryFactory(url)) .catch(err => { throw buildRequestError(err) }) } @@ -115,7 +121,6 @@ function doJSONRequest (url: string, options: PeerTubeRequestOptions = {}) { const gotOptions = buildGotOptions(options) return peertubeGot(url, { ...gotOptions, responseType: 'json' }) - .on('retry', logRetryFactory(url)) .catch(err => { throw buildRequestError(err) }) } @@ -246,14 +251,9 @@ function buildRequestError (error: RequestError) { if (error.response) { newError.responseBody = error.response.body + newError.responseHeaders = error.response.headers newError.statusCode = error.response.statusCode } return newError } - -function logRetryFactory (url: string) { - return (retryCount: number, error: RequestError) => { - logger.debug('Retrying request to %s.', url, { retryCount, error, ...lTags() }) - } -} -- cgit v1.2.3