fix eslint errors
This commit is contained in:
54
app.js
54
app.js
@@ -5,7 +5,7 @@
|
|||||||
* DS207: Consider shorter variations of null checks
|
* DS207: Consider shorter variations of null checks
|
||||||
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
|
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
|
||||||
*/
|
*/
|
||||||
let tenMinutes
|
const tenMinutes = 10 * 60 * 1000
|
||||||
const Metrics = require('metrics-sharelatex')
|
const Metrics = require('metrics-sharelatex')
|
||||||
Metrics.initialize('clsi')
|
Metrics.initialize('clsi')
|
||||||
|
|
||||||
@@ -49,31 +49,29 @@ app.use(function(req, res, next) {
|
|||||||
return next()
|
return next()
|
||||||
})
|
})
|
||||||
|
|
||||||
app.param('project_id', function(req, res, next, project_id) {
|
app.param('project_id', function(req, res, next, projectId) {
|
||||||
if (project_id != null ? project_id.match(/^[a-zA-Z0-9_-]+$/) : undefined) {
|
if (projectId != null ? projectId.match(/^[a-zA-Z0-9_-]+$/) : undefined) {
|
||||||
return next()
|
return next()
|
||||||
} else {
|
} else {
|
||||||
return next(new Error('invalid project id'))
|
return next(new Error('invalid project id'))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
app.param('user_id', function(req, res, next, user_id) {
|
app.param('user_id', function(req, res, next, userId) {
|
||||||
if (user_id != null ? user_id.match(/^[0-9a-f]{24}$/) : undefined) {
|
if (userId != null ? userId.match(/^[0-9a-f]{24}$/) : undefined) {
|
||||||
return next()
|
return next()
|
||||||
} else {
|
} else {
|
||||||
return next(new Error('invalid user id'))
|
return next(new Error('invalid user id'))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
app.param('build_id', function(req, res, next, build_id) {
|
app.param('build_id', function(req, res, next, buildId) {
|
||||||
if (
|
if (
|
||||||
build_id != null
|
buildId != null ? buildId.match(OutputCacheManager.BUILD_REGEX) : undefined
|
||||||
? build_id.match(OutputCacheManager.BUILD_REGEX)
|
|
||||||
: undefined
|
|
||||||
) {
|
) {
|
||||||
return next()
|
return next()
|
||||||
} else {
|
} else {
|
||||||
return next(new Error(`invalid build id ${build_id}`))
|
return next(new Error(`invalid build id ${buildId}`))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -207,15 +205,15 @@ if (Settings.processLifespanLimitMs) {
|
|||||||
}, Settings.processLifespanLimitMs)
|
}, Settings.processLifespanLimitMs)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Settings.smokeTest) {
|
function runSmokeTest() {
|
||||||
function runSmokeTest() {
|
|
||||||
if (Settings.processTooOld) return
|
if (Settings.processTooOld) return
|
||||||
logger.log('running smoke tests')
|
logger.log('running smoke tests')
|
||||||
smokeTest.triggerRun(err => {
|
smokeTest.triggerRun(err => {
|
||||||
if (err) logger.error({ err }, 'smoke tests failed')
|
if (err) logger.error({ err }, 'smoke tests failed')
|
||||||
setTimeout(runSmokeTest, 30 * 1000)
|
setTimeout(runSmokeTest, 30 * 1000)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
if (Settings.smokeTest) {
|
||||||
runSmokeTest()
|
runSmokeTest()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -308,29 +306,31 @@ const host =
|
|||||||
x1 => x1.host
|
x1 => x1.host
|
||||||
) || 'localhost'
|
) || 'localhost'
|
||||||
|
|
||||||
const load_tcp_port = Settings.internal.load_balancer_agent.load_port
|
const loadTcpPort = Settings.internal.load_balancer_agent.load_port
|
||||||
const load_http_port = Settings.internal.load_balancer_agent.local_port
|
const loadHttpPort = Settings.internal.load_balancer_agent.local_port
|
||||||
|
|
||||||
if (!module.parent) {
|
if (!module.parent) {
|
||||||
// Called directly
|
// Called directly
|
||||||
app.listen(port, host, error =>
|
app.listen(port, host, error => {
|
||||||
|
if (error) {
|
||||||
|
logger.fatal({ error }, `Error starting CLSI on ${host}:${port}`)
|
||||||
|
} else {
|
||||||
logger.info(`CLSI starting up, listening on ${host}:${port}`)
|
logger.info(`CLSI starting up, listening on ${host}:${port}`)
|
||||||
)
|
|
||||||
|
|
||||||
loadTcpServer.listen(load_tcp_port, host, function(error) {
|
|
||||||
if (error != null) {
|
|
||||||
throw error
|
|
||||||
}
|
}
|
||||||
return logger.info(`Load tcp agent listening on load port ${load_tcp_port}`)
|
|
||||||
})
|
})
|
||||||
|
|
||||||
loadHttpServer.listen(load_http_port, host, function(error) {
|
loadTcpServer.listen(loadTcpPort, host, function(error) {
|
||||||
if (error != null) {
|
if (error != null) {
|
||||||
throw error
|
throw error
|
||||||
}
|
}
|
||||||
return logger.info(
|
return logger.info(`Load tcp agent listening on load port ${loadTcpPort}`)
|
||||||
`Load http agent listening on load port ${load_http_port}`
|
})
|
||||||
)
|
|
||||||
|
loadHttpServer.listen(loadHttpPort, host, function(error) {
|
||||||
|
if (error != null) {
|
||||||
|
throw error
|
||||||
|
}
|
||||||
|
return logger.info(`Load http agent listening on load port ${loadHttpPort}`)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -339,7 +339,7 @@ module.exports = app
|
|||||||
setInterval(() => {
|
setInterval(() => {
|
||||||
ProjectPersistenceManager.refreshExpiryTimeout()
|
ProjectPersistenceManager.refreshExpiryTimeout()
|
||||||
ProjectPersistenceManager.clearExpiredProjects()
|
ProjectPersistenceManager.clearExpiredProjects()
|
||||||
}, (tenMinutes = 10 * 60 * 1000))
|
}, tenMinutes)
|
||||||
|
|
||||||
function __guard__(value, transform) {
|
function __guard__(value, transform) {
|
||||||
return typeof value !== 'undefined' && value !== null
|
return typeof value !== 'undefined' && value !== null
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
* DS207: Consider shorter variations of null checks
|
* DS207: Consider shorter variations of null checks
|
||||||
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
|
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
|
||||||
*/
|
*/
|
||||||
|
let UrlFetcher
|
||||||
const request = require('request').defaults({ jar: false })
|
const request = require('request').defaults({ jar: false })
|
||||||
const fs = require('fs')
|
const fs = require('fs')
|
||||||
const logger = require('logger-sharelatex')
|
const logger = require('logger-sharelatex')
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ module.exports = {
|
|||||||
username: 'clsi',
|
username: 'clsi',
|
||||||
dialect: 'sqlite',
|
dialect: 'sqlite',
|
||||||
storage:
|
storage:
|
||||||
process.env.SQLITE_PATH || Path.resolve(__dirname + '/../db/db.sqlite'),
|
process.env.SQLITE_PATH || Path.resolve(__dirname, '../db/db.sqlite'),
|
||||||
pool: {
|
pool: {
|
||||||
max: 1,
|
max: 1,
|
||||||
min: 1
|
min: 1
|
||||||
@@ -26,10 +26,10 @@ module.exports = {
|
|||||||
parseInt(process.env.PROCESS_LIFE_SPAN_LIMIT_MS) || 60 * 60 * 24 * 1000 * 2,
|
parseInt(process.env.PROCESS_LIFE_SPAN_LIMIT_MS) || 60 * 60 * 24 * 1000 * 2,
|
||||||
|
|
||||||
path: {
|
path: {
|
||||||
compilesDir: Path.resolve(__dirname + '/../compiles'),
|
compilesDir: Path.resolve(__dirname, '../compiles'),
|
||||||
clsiCacheDir: Path.resolve(__dirname + '/../cache'),
|
clsiCacheDir: Path.resolve(__dirname, '../cache'),
|
||||||
synctexBaseDir(project_id) {
|
synctexBaseDir(projectId) {
|
||||||
return Path.join(this.compilesDir, project_id)
|
return Path.join(this.compilesDir, projectId)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -63,7 +63,7 @@ module.exports = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (process.env.DOCKER_RUNNER) {
|
if (process.env.DOCKER_RUNNER) {
|
||||||
let seccomp_profile_path
|
let seccompProfilePath
|
||||||
module.exports.clsi = {
|
module.exports.clsi = {
|
||||||
dockerRunner: process.env.DOCKER_RUNNER === 'true',
|
dockerRunner: process.env.DOCKER_RUNNER === 'true',
|
||||||
docker: {
|
docker: {
|
||||||
@@ -81,16 +81,14 @@ if (process.env.DOCKER_RUNNER) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
seccomp_profile_path = Path.resolve(
|
seccompProfilePath = Path.resolve(__dirname, '../seccomp/clsi-profile.json')
|
||||||
__dirname + '/../seccomp/clsi-profile.json'
|
|
||||||
)
|
|
||||||
module.exports.clsi.docker.seccomp_profile = JSON.stringify(
|
module.exports.clsi.docker.seccomp_profile = JSON.stringify(
|
||||||
JSON.parse(require('fs').readFileSync(seccomp_profile_path))
|
JSON.parse(require('fs').readFileSync(seccompProfilePath))
|
||||||
)
|
)
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log(
|
console.log(
|
||||||
error,
|
error,
|
||||||
`could not load seccom profile from ${seccomp_profile_path}`
|
`could not load seccom profile from ${seccompProfilePath}`
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ describe('UrlFetcher', function() {
|
|||||||
})
|
})
|
||||||
|
|
||||||
it('should call pipeUrlToFile multiple times on error', function(done) {
|
it('should call pipeUrlToFile multiple times on error', function(done) {
|
||||||
error = new Error("couldn't download file")
|
const error = new Error("couldn't download file")
|
||||||
this.UrlFetcher.pipeUrlToFile.callsArgWith(2, error)
|
this.UrlFetcher.pipeUrlToFile.callsArgWith(2, error)
|
||||||
this.UrlFetcher.pipeUrlToFileWithRetry(this.url, this.path, err => {
|
this.UrlFetcher.pipeUrlToFileWithRetry(this.url, this.path, err => {
|
||||||
expect(err).to.equal(error)
|
expect(err).to.equal(error)
|
||||||
|
|||||||
Reference in New Issue
Block a user