aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--client/src/app/+admin/system/logs/logs.component.html2
-rw-r--r--server/helpers/requests.ts19
2 files changed, 16 insertions, 5 deletions
diff --git a/client/src/app/+admin/system/logs/logs.component.html b/client/src/app/+admin/system/logs/logs.component.html
index 18011b205..c945c1fdc 100644
--- a/client/src/app/+admin/system/logs/logs.component.html
+++ b/client/src/app/+admin/system/logs/logs.component.html
@@ -28,7 +28,7 @@
28 </ng-option> 28 </ng-option>
29 </ng-select> 29 </ng-select>
30 30
31 <my-select-tags i18n-placeholder placeholder="Filter logs by tags" [(ngModel)]="tagsOneOf" (ngModelChange)="refresh()"></my-select-tags> 31 <my-select-tags *ngIf="!isAuditLog()" i18n-placeholder placeholder="Filter logs by tags" [(ngModel)]="tagsOneOf" (ngModelChange)="refresh()"></my-select-tags>
32 32
33 <my-button i18n-label label="Refresh" icon="refresh" (click)="refresh()"></my-button> 33 <my-button i18n-label label="Refresh" icon="refresh" (click)="refresh()"></my-button>
34</div> 34</div>
diff --git a/server/helpers/requests.ts b/server/helpers/requests.ts
index 57299eee1..6e80995ad 100644
--- a/server/helpers/requests.ts
+++ b/server/helpers/requests.ts
@@ -6,9 +6,11 @@ import { CONFIG } from '../initializers/config'
6import { ACTIVITY_PUB, BINARY_CONTENT_TYPES, PEERTUBE_VERSION, REQUEST_TIMEOUT, WEBSERVER } from '../initializers/constants' 6import { ACTIVITY_PUB, BINARY_CONTENT_TYPES, PEERTUBE_VERSION, REQUEST_TIMEOUT, WEBSERVER } from '../initializers/constants'
7import { pipelinePromise } from './core-utils' 7import { pipelinePromise } from './core-utils'
8import { processImage } from './image-utils' 8import { processImage } from './image-utils'
9import { logger } from './logger' 9import { logger, loggerTagsFactory } from './logger'
10import { getProxy, isProxyEnabled } from './proxy' 10import { getProxy, isProxyEnabled } from './proxy'
11 11
12const lTags = loggerTagsFactory('request')
13
12const httpSignature = require('@peertube/http-signature') 14const httpSignature = require('@peertube/http-signature')
13 15
14export interface PeerTubeRequestError extends Error { 16export interface PeerTubeRequestError extends Error {
@@ -48,7 +50,7 @@ const peertubeGot = got.extend({
48 promiseOrStream.on('downloadProgress', progress => { 50 promiseOrStream.on('downloadProgress', progress => {
49 if (progress.transferred > bodyLimit && progress.percent !== 1) { 51 if (progress.transferred > bodyLimit && progress.percent !== 1) {
50 const message = `Exceeded the download limit of ${bodyLimit} B` 52 const message = `Exceeded the download limit of ${bodyLimit} B`
51 logger.warn(message) 53 logger.warn(message, lTags())
52 54
53 // CancelableRequest 55 // CancelableRequest
54 if (promiseOrStream.cancel) { 56 if (promiseOrStream.cancel) {
@@ -105,6 +107,7 @@ function doRequest (url: string, options: PeerTubeRequestOptions = {}) {
105 const gotOptions = buildGotOptions(options) 107 const gotOptions = buildGotOptions(options)
106 108
107 return peertubeGot(url, gotOptions) 109 return peertubeGot(url, gotOptions)
110 .on('retry', logRetryFactory(url))
108 .catch(err => { throw buildRequestError(err) }) 111 .catch(err => { throw buildRequestError(err) })
109} 112}
110 113
@@ -112,6 +115,7 @@ function doJSONRequest <T> (url: string, options: PeerTubeRequestOptions = {}) {
112 const gotOptions = buildGotOptions(options) 115 const gotOptions = buildGotOptions(options)
113 116
114 return peertubeGot<T>(url, { ...gotOptions, responseType: 'json' }) 117 return peertubeGot<T>(url, { ...gotOptions, responseType: 'json' })
118 .on('retry', logRetryFactory(url))
115 .catch(err => { throw buildRequestError(err) }) 119 .catch(err => { throw buildRequestError(err) })
116} 120}
117 121
@@ -131,7 +135,7 @@ async function doRequestAndSaveToFile (
131 ) 135 )
132 } catch (err) { 136 } catch (err) {
133 remove(destPath) 137 remove(destPath)
134 .catch(err => logger.error('Cannot remove %s after request failure.', destPath, { err })) 138 .catch(err => logger.error('Cannot remove %s after request failure.', destPath, { err, ...lTags() }))
135 139
136 throw buildRequestError(err) 140 throw buildRequestError(err)
137 } 141 }
@@ -157,7 +161,7 @@ function getAgent () {
157 161
158 const proxy = getProxy() 162 const proxy = getProxy()
159 163
160 logger.info('Using proxy %s.', proxy) 164 logger.info('Using proxy %s.', proxy, lTags())
161 165
162 const proxyAgentOptions = { 166 const proxyAgentOptions = {
163 keepAlive: true, 167 keepAlive: true,
@@ -229,6 +233,7 @@ function buildGotOptions (options: PeerTubeRequestOptions) {
229 timeout: REQUEST_TIMEOUT, 233 timeout: REQUEST_TIMEOUT,
230 json: options.json, 234 json: options.json,
231 searchParams: options.searchParams, 235 searchParams: options.searchParams,
236 retry: 2,
232 headers, 237 headers,
233 context 238 context
234 } 239 }
@@ -246,3 +251,9 @@ function buildRequestError (error: RequestError) {
246 251
247 return newError 252 return newError
248} 253}
254
255function logRetryFactory (url: string) {
256 return (retryCount: number, error: RequestError) => {
257 logger.debug('Retrying request to %s.', url, { retryCount, error, ...lTags() })
258 }
259}