fix incremental request

This commit is contained in:
Brian Gough
2017-08-07 14:26:13 +01:00
parent b4be40d061
commit 6542ce20b6
3 changed files with 12 additions and 12 deletions

View File

@@ -16,7 +16,7 @@ module.exports = CompileController =
ProjectPersistenceManager.markProjectAsJustAccessed request.project_id, (error) -> ProjectPersistenceManager.markProjectAsJustAccessed request.project_id, (error) ->
return next(error) if error? return next(error) if error?
CompileManager.doCompile request, (error, outputFiles = []) -> CompileManager.doCompile request, (error, outputFiles = []) ->
if error instanceOf Errors.FilesOutOfSyncError if error instanceof Errors.FilesOutOfSyncError
code = 409 # Http 409 Conflict code = 409 # Http 409 Conflict
status = "retry" status = "retry"
else if error?.terminated else if error?.terminated

View File

@@ -32,7 +32,10 @@ module.exports = CompileManager =
timer = new Metrics.Timer("write-to-disk") timer = new Metrics.Timer("write-to-disk")
logger.log project_id: request.project_id, user_id: request.user_id, "syncing resources to disk" logger.log project_id: request.project_id, user_id: request.user_id, "syncing resources to disk"
ResourceWriter.syncResourcesToDisk request, compileDir, (error) -> ResourceWriter.syncResourcesToDisk request, compileDir, (error) ->
if error? if error? and error instanceof Errors.FilesOutOfSyncError
logger.warn project_id: request.project_id, user_id: request.user_id, "files out of sync, please retry"
return callback(error)
else if error?
logger.err err:error, project_id: request.project_id, user_id: request.user_id, "error writing resources to disk" logger.err err:error, project_id: request.project_id, user_id: request.user_id, "error writing resources to disk"
return callback(error) return callback(error)
logger.log project_id: request.project_id, user_id: request.user_id, time_taken: Date.now() - timer.start, "written files to disk" logger.log project_id: request.project_id, user_id: request.user_id, time_taken: Date.now() - timer.start, "written files to disk"

View File

@@ -14,10 +14,10 @@ parallelFileDownloads = settings.parallelFileDownloads or 1
module.exports = ResourceWriter = module.exports = ResourceWriter =
syncResourcesToDisk: (request, basePath, callback = (error) ->) -> syncResourcesToDisk: (request, basePath, callback = (error) ->) ->
if request.syncType? is "incremental" if request.syncType is "incremental"
ResourceWriter.checkSyncState request.syncState, basePath, (error, ok) -> ResourceWriter.checkSyncState request.syncState, basePath, (error, syncStateOk) ->
logger.log syncState: request.syncState, result:ok, "checked state on incremental request" logger.log syncState: request.syncState, result:syncStateOk, "checked state on incremental request"
return callback new Errors.FilesOutOfSyncError("invalid state for incremental update") if not ok return callback new Errors.FilesOutOfSyncError("invalid state for incremental update") if not syncStateOk
ResourceWriter.saveIncrementalResourcesToDisk request.project_id, request.resources, basePath, callback ResourceWriter.saveIncrementalResourcesToDisk request.project_id, request.resources, basePath, callback
else else
@saveAllResourcesToDisk request.project_id, request.resources, basePath, (error) -> @saveAllResourcesToDisk request.project_id, request.resources, basePath, (error) ->
@@ -30,11 +30,8 @@ module.exports = ResourceWriter =
checkSyncState: (state, basePath, callback) -> checkSyncState: (state, basePath, callback) ->
fs.readFile Path.join(basePath, ".resource-sync-state"), {encoding:'ascii'}, (err, oldState) -> fs.readFile Path.join(basePath, ".resource-sync-state"), {encoding:'ascii'}, (err, oldState) ->
logger.log state:state, oldState: oldState, basePath:basePath, err:err, "checking sync state" # ignore errors, return true if state matches, false otherwise (including errors)
if state is oldState return callback(null, if state is oldState then true else false)
return callback(null, true)
else
return callback(null, false)
saveIncrementalResourcesToDisk: (project_id, resources, basePath, callback = (error) ->) -> saveIncrementalResourcesToDisk: (project_id, resources, basePath, callback = (error) ->) ->
@_createDirectory basePath, (error) => @_createDirectory basePath, (error) =>