[UrlFetcher] do not override domain for clsi-perf requests

This commit is contained in:
Jakob Ackermann 2021-07-02 09:17:29 +01:00
parent 018eedece6
commit 516525126b
3 changed files with 31 additions and 4 deletions

View file

@ -42,9 +42,12 @@ module.exports = UrlFetcher = {
return (_callback = function () {})
}
if (settings.filestoreDomainOveride != null) {
const p = URL.parse(url).path
url = `${settings.filestoreDomainOveride}${p}`
const u = URL.parse(url)
if (
settings.filestoreDomainOveride &&
u.host !== settings.apis.clsiPerf.host
) {
url = `${settings.filestoreDomainOveride}${u.path}`
}
var timeoutHandler = setTimeout(
function () {

View file

@ -51,6 +51,11 @@ module.exports = {
apis: {
clsi: {
url: `http://${process.env.CLSI_HOST || 'localhost'}:3013`
},
clsiPerf: {
host: `${process.env.CLSI_PERF_HOST || 'localhost'}:${
process.env.CLSI_PERF_PORT || '3043'
}`
}
},

View file

@ -24,7 +24,13 @@ describe('UrlFetcher', function () {
defaults: (this.defaults = sinon.stub().returns((this.request = {})))
},
fs: (this.fs = {}),
'settings-sharelatex': (this.settings = {})
'settings-sharelatex': (this.settings = {
apis: {
clsiPerf: {
host: 'localhost:3043'
}
}
})
}
}))
})
@ -94,6 +100,19 @@ describe('UrlFetcher', function () {
return this.fileStream.emit('finish')
})
it('should not use override clsiPerf domain when filestoreDomainOveride is set', function (done) {
this.settings.filestoreDomainOveride = '192.11.11.11'
const url = 'http://localhost:3043/file/here?query=string'
this.UrlFetcher.pipeUrlToFile(url, this.path, () => {
this.request.get.args[0][0].url.should.equal(url)
done()
})
this.res = { statusCode: 200 }
this.urlStream.emit('response', this.res)
this.urlStream.emit('end')
this.fileStream.emit('finish')
})
return it('should use override domain when filestoreDomainOveride is set', function (done) {
this.settings.filestoreDomainOveride = '192.11.11.11'
this.UrlFetcher.pipeUrlToFile(this.url, this.path, () => {