|
@@ -2,6 +2,9 @@ app = require('../../../app')
|
|
|
require("logger-sharelatex").logger.level("info")
|
|
require("logger-sharelatex").logger.level("info")
|
|
|
logger = require("logger-sharelatex")
|
|
logger = require("logger-sharelatex")
|
|
|
Settings = require("settings-sharelatex")
|
|
Settings = require("settings-sharelatex")
|
|
|
|
|
+request = require('request')
|
|
|
|
|
+
|
|
|
|
|
+S3_TRIES = 30
|
|
|
|
|
|
|
|
module.exports =
|
|
module.exports =
|
|
|
running: false
|
|
running: false
|
|
@@ -21,4 +24,22 @@ module.exports =
|
|
|
logger.log("filestore running in dev mode")
|
|
logger.log("filestore running in dev mode")
|
|
|
|
|
|
|
|
for callback in @callbacks
|
|
for callback in @callbacks
|
|
|
- callback()
|
|
|
|
|
|
|
+ callback()
|
|
|
|
|
+
|
|
|
|
|
+ waitForS3: (callback, tries) ->
|
|
|
|
|
+ return callback() unless Settings.filestore.s3?.endpoint
|
|
|
|
|
+ tries = 1 unless tries
|
|
|
|
|
+
|
|
|
|
|
+ request.get "#{Settings.filestore.s3.endpoint}/", (err, response) =>
|
|
|
|
|
+ console.log(err, response?.statusCode, tries)
|
|
|
|
|
+ if !err && [200, 404].includes(response?.statusCode)
|
|
|
|
|
+ return callback()
|
|
|
|
|
+
|
|
|
|
|
+ if tries == S3_TRIES
|
|
|
|
|
+ return callback('timed out waiting for S3')
|
|
|
|
|
+
|
|
|
|
|
+ setTimeout(
|
|
|
|
|
+ () =>
|
|
|
|
|
+ @waitForS3 callback, tries + 1
|
|
|
|
|
+ 1000
|
|
|
|
|
+ )
|