Просмотр исходного кода

Merge pull request #18 from overleaf/jpa-csh-tracing-end-time-from-fs

[checkLogLevel] read the updated tracing end time from disk
Brian Gough 6 лет назад
Родитель
Сommit
2895b867cf

+ 2 - 1
libraries/logger/.nvmrc

@@ -1 +1,2 @@
-10.21.0
+10.21.0
+

+ 4 - 10
libraries/logger/logging-manager.js

@@ -1,5 +1,5 @@
 const bunyan = require('bunyan')
 const bunyan = require('bunyan')
-const request = require('request')
+const fs = require('fs')
 const yn = require('yn')
 const yn = require('yn')
 const OError = require('@overleaf/o-error')
 const OError = require('@overleaf/o-error')
 const GCPLogging = require('@google-cloud/logging-bunyan')
 const GCPLogging = require('@google-cloud/logging-bunyan')
@@ -42,18 +42,12 @@ const Logger = (module.exports = {
   },
   },
 
 
   checkLogLevel() {
   checkLogLevel() {
-    const options = {
-      headers: {
-        'Metadata-Flavor': 'Google'
-      },
-      uri: `http://metadata.google.internal/computeMetadata/v1/project/attributes/${this.loggerName}-setLogLevelEndTime`
-    }
-    request(options, (err, response, body) => {
-      if (err) {
+    fs.readFile('/logging/tracingEndTime', (error, end) => {
+      if (error || !end) {
         this.logger.level(this.defaultLevel)
         this.logger.level(this.defaultLevel)
         return
         return
       }
       }
-      if (parseInt(body) > Date.now()) {
+      if (parseInt(end) > Date.now()) {
         this.logger.level('trace')
         this.logger.level('trace')
       } else {
       } else {
         this.logger.level(this.defaultLevel)
         this.logger.level(this.defaultLevel)

Разница между файлами не показана из-за своего большого размера
+ 360 - 347
libraries/logger/package-lock.json


+ 3 - 3
libraries/logger/package.json

@@ -7,7 +7,7 @@
     "url": "http://github.com/sharelatex/logger-sharelatex.git"
     "url": "http://github.com/sharelatex/logger-sharelatex.git"
   },
   },
   "license": "AGPL-3.0-only",
   "license": "AGPL-3.0-only",
-  "version": "2.0.0",
+  "version": "2.1.0",
   "scripts": {
   "scripts": {
     "test": "mocha test/**/*.js",
     "test": "mocha test/**/*.js",
     "format": "prettier-eslint '**/*.js' --list-different",
     "format": "prettier-eslint '**/*.js' --list-different",
@@ -19,12 +19,11 @@
     "@overleaf/o-error": "^3.0.0",
     "@overleaf/o-error": "^3.0.0",
     "bunyan": "1.8.12",
     "bunyan": "1.8.12",
     "raven": "1.1.3",
     "raven": "1.1.3",
-    "request": "2.88.0",
     "yn": "^3.1.1"
     "yn": "^3.1.1"
   },
   },
   "devDependencies": {
   "devDependencies": {
     "chai": "4.2.0",
     "chai": "4.2.0",
-    "eslint": "^4.18.1",
+    "eslint": "^6.6.0",
     "eslint-config-prettier": "^3.1.0",
     "eslint-config-prettier": "^3.1.0",
     "eslint-config-standard": "^11.0.0",
     "eslint-config-standard": "^11.0.0",
     "eslint-plugin-chai-expect": "^1.1.1",
     "eslint-plugin-chai-expect": "^1.1.1",
@@ -36,6 +35,7 @@
     "eslint-plugin-standard": "^3.0.1",
     "eslint-plugin-standard": "^3.0.1",
     "mocha": "^5.2.0",
     "mocha": "^5.2.0",
     "prettier": "^1.18.2",
     "prettier": "^1.18.2",
+    "prettier-eslint-cli": "^5.0.0",
     "sandboxed-module": "2.0.3",
     "sandboxed-module": "2.0.3",
     "sinon": "7.2.3",
     "sinon": "7.2.3",
     "sinon-chai": "3.3.0"
     "sinon-chai": "3.3.0"

+ 15 - 17
libraries/logger/test/unit/loggingManagerTests.js

@@ -40,7 +40,9 @@ describe('LoggingManager', function() {
     this.Raven = {
     this.Raven = {
       Client: sinon.stub().returns(this.ravenClient)
       Client: sinon.stub().returns(this.ravenClient)
     }
     }
-    this.Request = sinon.stub()
+    this.Fs = {
+      readFile: sinon.stub()
+    }
     this.stackdriverStreamConfig = { stream: 'stackdriver' }
     this.stackdriverStreamConfig = { stream: 'stackdriver' }
     this.stackdriverClient = {
     this.stackdriverClient = {
       stream: sinon.stub().returns(this.stackdriverStreamConfig)
       stream: sinon.stub().returns(this.stackdriverStreamConfig)
@@ -53,7 +55,7 @@ describe('LoggingManager', function() {
       requires: {
       requires: {
         bunyan: this.Bunyan,
         bunyan: this.Bunyan,
         raven: this.Raven,
         raven: this.Raven,
-        request: this.Request,
+        fs: this.Fs,
         '@google-cloud/logging-bunyan': this.GCPLogging
         '@google-cloud/logging-bunyan': this.GCPLogging
       }
       }
     })
     })
@@ -286,20 +288,16 @@ describe('LoggingManager', function() {
   })
   })
 
 
   describe('checkLogLevel', function() {
   describe('checkLogLevel', function() {
-    it('should request log level override from google meta data service', function() {
+    it('should request log level override from the config map', function() {
       this.logger.checkLogLevel()
       this.logger.checkLogLevel()
-      const options = {
-        headers: {
-          'Metadata-Flavor': 'Google'
-        },
-        uri: `http://metadata.google.internal/computeMetadata/v1/project/attributes/${this.loggerName}-setLogLevelEndTime`
-      }
-      this.Request.should.have.been.calledWithMatch(options)
+      this.Fs.readFile.should.have.been.calledWithMatch(
+        '/logging/tracingEndTime'
+      )
     })
     })
 
 
-    describe('when request has error', function() {
+    describe('when read errors', function() {
       beforeEach(function() {
       beforeEach(function() {
-        this.Request.yields('error')
+        this.Fs.readFile.yields(new Error('error'))
         this.logger.checkLogLevel()
         this.logger.checkLogLevel()
       })
       })
 
 
@@ -310,9 +308,9 @@ describe('LoggingManager', function() {
       })
       })
     })
     })
 
 
-    describe('when statusCode is not 200', function() {
+    describe('when the file is empty', function() {
       beforeEach(function() {
       beforeEach(function() {
-        this.Request.yields(null, { statusCode: 404 })
+        this.Fs.readFile.yields(null, '')
         this.logger.checkLogLevel()
         this.logger.checkLogLevel()
       })
       })
 
 
@@ -325,7 +323,7 @@ describe('LoggingManager', function() {
 
 
     describe('when time value returned that is less than current time', function() {
     describe('when time value returned that is less than current time', function() {
       beforeEach(function() {
       beforeEach(function() {
-        this.Request.yields(null, { statusCode: 200 }, '1')
+        this.Fs.readFile.yields(null, '1')
         this.logger.checkLogLevel()
         this.logger.checkLogLevel()
       })
       })
 
 
@@ -340,7 +338,7 @@ describe('LoggingManager', function() {
       describe('when level is already set', function() {
       describe('when level is already set', function() {
         beforeEach(function() {
         beforeEach(function() {
           this.bunyanLogger.level.returns(10)
           this.bunyanLogger.level.returns(10)
-          this.Request.yields(null, { statusCode: 200 }, this.start + 1000)
+          this.Fs.readFile.yields(null, (this.start + 1000).toString())
           this.logger.checkLogLevel()
           this.logger.checkLogLevel()
         })
         })
 
 
@@ -354,7 +352,7 @@ describe('LoggingManager', function() {
       describe('when level is not already set', function() {
       describe('when level is not already set', function() {
         beforeEach(function() {
         beforeEach(function() {
           this.bunyanLogger.level.returns(20)
           this.bunyanLogger.level.returns(20)
-          this.Request.yields(null, { statusCode: 200 }, this.start + 1000)
+          this.Fs.readFile.yields(null, (this.start + 1000).toString())
           this.logger.checkLogLevel()
           this.logger.checkLogLevel()
         })
         })
 
 

Некоторые файлы не были показаны из-за большого количества измененных файлов