[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 () {}) return (_callback = function () {})
} }
if (settings.filestoreDomainOveride != null) { const u = URL.parse(url)
const p = URL.parse(url).path if (
url = `${settings.filestoreDomainOveride}${p}` settings.filestoreDomainOveride &&
u.host !== settings.apis.clsiPerf.host
) {
url = `${settings.filestoreDomainOveride}${u.path}`
} }
var timeoutHandler = setTimeout( var timeoutHandler = setTimeout(
function () { function () {

View file

@ -51,6 +51,11 @@ module.exports = {
apis: { apis: {
clsi: { clsi: {
url: `http://${process.env.CLSI_HOST || 'localhost'}:3013` 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 = {}))) defaults: (this.defaults = sinon.stub().returns((this.request = {})))
}, },
fs: (this.fs = {}), 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') 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) { return it('should use override domain when filestoreDomainOveride is set', function (done) {
this.settings.filestoreDomainOveride = '192.11.11.11' this.settings.filestoreDomainOveride = '192.11.11.11'
this.UrlFetcher.pipeUrlToFile(this.url, this.path, () => { this.UrlFetcher.pipeUrlToFile(this.url, this.path, () => {