Begin fixing health-check

This commit is contained in:
Shane Kilkelly 2017-03-08 14:59:34 +00:00
parent e0f39da616
commit b12f69722f
2 changed files with 21 additions and 25 deletions

View file

@ -32,7 +32,7 @@ module.exports = FileController =
logger.err err:err, key:key, bucket:bucket, format:format, style:style, "problem getting file"
if err instanceof Errors.NotFoundError
return res.send 404
if !res.finished and res?.send?
else
return res.send 500
else if req.query.cacheWarm
logger.log key:key, bucket:bucket, format:format, style:style, "request is only for cache warm so not sending stream"

View file

@ -7,21 +7,30 @@ fileController = require("./FileController")
logger = require('logger-sharelatex')
settings = require("settings-sharelatex")
streamBuffers = require("stream-buffers")
_ = require('underscore')
checkCanStoreFiles = (callback)->
callback = _.once(callback)
req = {params:{}, query:{}, headers:{}}
res = {}
req.params.project_id = settings.health_check.project_id
req.params.file_id = settings.health_check.file_id
myWritableStreamBuffer = new streamBuffers.WritableStreamBuffer(initialSize: 100)
res = {
send: (code) ->
if code != 200
callback(new Error("non-200 code from getFile: #{code}"))
}
myWritableStreamBuffer.send = res.send
keyBuilder.userFileKey req, res, ->
fileController.getFile req, myWritableStreamBuffer
myWritableStreamBuffer.on "close", ->
if myWritableStreamBuffer.size() > 0
callback()
else
logger.err "no data in write stream buffer for health check"
callback()
err = "no data in write stream buffer for health check"
logger.err {err,}, "error performing health check"
callback(err)
checkFileConvert = (callback)->
imgPath = path.join(settings.path.uploadFolder, "/tiny.pdf")
@ -34,26 +43,13 @@ checkFileConvert = (callback)->
], callback
isOk = true
q = async.queue (task, callback)->
task(callback)
runChecks = (callback)->
async.parallel [checkFileConvert, checkCanStoreFiles], (err)->
if err?
logger.err err:err, "Health check: error running"
isOk = false
else
isOk = true
callback()
module.exports =
check: (req, res)->
if isOk
res.send 200
else
res.send 500
q.push runChecks # run in background 1 at a time
check: (req, res) ->
logger.log {}, "performing health check"
async.parallel [checkFileConvert, checkCanStoreFiles], (err)->
if err?
logger.err err:err, "Health check: error running"
res.send 500
else
res.send 200