mirror of
https://github.com/OpenNebula/one.git
synced 2025-03-16 22:50:10 +03:00
parent
d66f4aa523
commit
0bcdd3a2a6
159
src/fireedge/package-lock.json
generated
159
src/fireedge/package-lock.json
generated
@ -998,6 +998,16 @@
|
||||
"to-fast-properties": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"@dabh/diagnostics": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz",
|
||||
"integrity": "sha512-+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q==",
|
||||
"requires": {
|
||||
"colorspace": "1.1.x",
|
||||
"enabled": "2.0.x",
|
||||
"kuler": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"@discoveryjs/json-ext": {
|
||||
"version": "0.5.3",
|
||||
"resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.3.tgz",
|
||||
@ -1758,6 +1768,11 @@
|
||||
"integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
|
||||
"dev": true
|
||||
},
|
||||
"async": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz",
|
||||
"integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw=="
|
||||
},
|
||||
"async-each": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz",
|
||||
@ -2496,6 +2511,15 @@
|
||||
"object-visit": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"color": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/color/-/color-3.0.0.tgz",
|
||||
"integrity": "sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==",
|
||||
"requires": {
|
||||
"color-convert": "^1.9.1",
|
||||
"color-string": "^1.5.2"
|
||||
}
|
||||
},
|
||||
"color-convert": {
|
||||
"version": "1.9.3",
|
||||
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
|
||||
@ -2509,11 +2533,34 @@
|
||||
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
|
||||
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
|
||||
},
|
||||
"color-string": {
|
||||
"version": "1.6.0",
|
||||
"resolved": "https://registry.npmjs.org/color-string/-/color-string-1.6.0.tgz",
|
||||
"integrity": "sha512-c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA==",
|
||||
"requires": {
|
||||
"color-name": "^1.0.0",
|
||||
"simple-swizzle": "^0.2.2"
|
||||
}
|
||||
},
|
||||
"colorette": {
|
||||
"version": "1.2.2",
|
||||
"resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz",
|
||||
"integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w=="
|
||||
},
|
||||
"colors": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
|
||||
"integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA=="
|
||||
},
|
||||
"colorspace": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.2.tgz",
|
||||
"integrity": "sha512-vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ==",
|
||||
"requires": {
|
||||
"color": "3.0.x",
|
||||
"text-hex": "1.0.x"
|
||||
}
|
||||
},
|
||||
"commander": {
|
||||
"version": "4.1.1",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
|
||||
@ -3121,6 +3168,11 @@
|
||||
"resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
|
||||
"integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q=="
|
||||
},
|
||||
"enabled": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz",
|
||||
"integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ=="
|
||||
},
|
||||
"encodeurl": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
|
||||
@ -4074,6 +4126,11 @@
|
||||
"integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
|
||||
"dev": true
|
||||
},
|
||||
"fast-safe-stringify": {
|
||||
"version": "2.0.8",
|
||||
"resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.8.tgz",
|
||||
"integrity": "sha512-lXatBjf3WPjmWD6DpIZxkeSsCOwqI0maYMpgDlx8g4U2qi4lbjA9oH/HD2a87G+KfsUmo5WbJFmqBZlPxtptag=="
|
||||
},
|
||||
"fastest-levenshtein": {
|
||||
"version": "1.0.12",
|
||||
"resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz",
|
||||
@ -4087,6 +4144,11 @@
|
||||
"reusify": "^1.0.4"
|
||||
}
|
||||
},
|
||||
"fecha": {
|
||||
"version": "4.2.1",
|
||||
"resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.1.tgz",
|
||||
"integrity": "sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q=="
|
||||
},
|
||||
"file-entry-cache": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
|
||||
@ -4249,6 +4311,11 @@
|
||||
"integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==",
|
||||
"dev": true
|
||||
},
|
||||
"fn.name": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz",
|
||||
"integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw=="
|
||||
},
|
||||
"follow-redirects": {
|
||||
"version": "1.14.1",
|
||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz",
|
||||
@ -5364,6 +5431,11 @@
|
||||
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
|
||||
"integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="
|
||||
},
|
||||
"kuler": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz",
|
||||
"integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A=="
|
||||
},
|
||||
"levn": {
|
||||
"version": "0.4.1",
|
||||
"resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
|
||||
@ -5492,6 +5564,18 @@
|
||||
"resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
|
||||
"integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w="
|
||||
},
|
||||
"logform": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/logform/-/logform-2.2.0.tgz",
|
||||
"integrity": "sha512-N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg==",
|
||||
"requires": {
|
||||
"colors": "^1.2.1",
|
||||
"fast-safe-stringify": "^2.0.4",
|
||||
"fecha": "^4.2.0",
|
||||
"ms": "^2.1.1",
|
||||
"triple-beam": "^1.3.0"
|
||||
}
|
||||
},
|
||||
"loose-envify": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
|
||||
@ -6197,6 +6281,14 @@
|
||||
"wrappy": "1"
|
||||
}
|
||||
},
|
||||
"one-time": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz",
|
||||
"integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==",
|
||||
"requires": {
|
||||
"fn.name": "1.x.x"
|
||||
}
|
||||
},
|
||||
"onetime": {
|
||||
"version": "5.1.2",
|
||||
"resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
|
||||
@ -7501,6 +7593,21 @@
|
||||
"simple-concat": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"simple-swizzle": {
|
||||
"version": "0.2.2",
|
||||
"resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
|
||||
"integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=",
|
||||
"requires": {
|
||||
"is-arrayish": "^0.3.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"is-arrayish": {
|
||||
"version": "0.3.2",
|
||||
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
|
||||
"integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"slash": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
|
||||
@ -7838,6 +7945,11 @@
|
||||
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz",
|
||||
"integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug=="
|
||||
},
|
||||
"stack-trace": {
|
||||
"version": "0.0.10",
|
||||
"resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
|
||||
"integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA="
|
||||
},
|
||||
"stackframe": {
|
||||
"version": "0.3.1",
|
||||
"resolved": "https://registry.npmjs.org/stackframe/-/stackframe-0.3.1.tgz",
|
||||
@ -8167,6 +8279,11 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"text-hex": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz",
|
||||
"integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg=="
|
||||
},
|
||||
"text-table": {
|
||||
"version": "0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
|
||||
@ -8289,6 +8406,11 @@
|
||||
"resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz",
|
||||
"integrity": "sha1-riF2gXXRVZ1IvvNUILL0li8JwzA="
|
||||
},
|
||||
"triple-beam": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz",
|
||||
"integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw=="
|
||||
},
|
||||
"ts-toolbelt": {
|
||||
"version": "6.15.5",
|
||||
"resolved": "https://registry.npmjs.org/ts-toolbelt/-/ts-toolbelt-6.15.5.tgz",
|
||||
@ -8833,6 +8955,43 @@
|
||||
"resolved": "https://registry.npmjs.org/window-or-global/-/window-or-global-1.0.1.tgz",
|
||||
"integrity": "sha1-2+RboqKRqrxW1iz2bEW3+jIpRt4="
|
||||
},
|
||||
"winston": {
|
||||
"version": "3.3.3",
|
||||
"resolved": "https://registry.npmjs.org/winston/-/winston-3.3.3.tgz",
|
||||
"integrity": "sha512-oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw==",
|
||||
"requires": {
|
||||
"@dabh/diagnostics": "^2.0.2",
|
||||
"async": "^3.1.0",
|
||||
"is-stream": "^2.0.0",
|
||||
"logform": "^2.2.0",
|
||||
"one-time": "^1.0.0",
|
||||
"readable-stream": "^3.4.0",
|
||||
"stack-trace": "0.0.x",
|
||||
"triple-beam": "^1.3.0",
|
||||
"winston-transport": "^4.4.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"readable-stream": {
|
||||
"version": "3.6.0",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
|
||||
"integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
|
||||
"requires": {
|
||||
"inherits": "^2.0.3",
|
||||
"string_decoder": "^1.1.1",
|
||||
"util-deprecate": "^1.0.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"winston-transport": {
|
||||
"version": "4.4.0",
|
||||
"resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.0.tgz",
|
||||
"integrity": "sha512-Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw==",
|
||||
"requires": {
|
||||
"readable-stream": "^2.3.7",
|
||||
"triple-beam": "^1.2.0"
|
||||
}
|
||||
},
|
||||
"word-wrap": {
|
||||
"version": "1.2.3",
|
||||
"resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
|
||||
|
@ -135,6 +135,7 @@
|
||||
"webpack-cli": "4.7.2",
|
||||
"webpack-node-externals": "2.5.2",
|
||||
"window-or-global": "1.0.1",
|
||||
"winston": "3.3.3",
|
||||
"worker-loader": "3.0.8",
|
||||
"xml2js": "0.4.23",
|
||||
"xmlrpc": "1.3.2",
|
||||
|
@ -17,16 +17,10 @@
|
||||
import compression from 'compression'
|
||||
import cors from 'cors'
|
||||
import express from 'express'
|
||||
import {
|
||||
accessSync,
|
||||
constants,
|
||||
createWriteStream,
|
||||
readFileSync
|
||||
} from 'fs-extra'
|
||||
import { readFileSync } from 'fs-extra'
|
||||
import helmet from 'helmet'
|
||||
import http from 'http'
|
||||
import https from 'https'
|
||||
import morgan from 'morgan'
|
||||
import { resolve } from 'path'
|
||||
import { env } from 'process'
|
||||
import webpack from 'webpack'
|
||||
@ -42,11 +36,11 @@ import { getConfig, messageTerminal } from './utils'
|
||||
import {
|
||||
defaultAppName, defaultApps,
|
||||
defaultEvents, defaultHost,
|
||||
defaultPort, defaultTypeLog, defaultWebpackMode
|
||||
defaultPort, defaultWebpackMode
|
||||
} from './utils/constants/defaults'
|
||||
import { getLoggerMiddleware, initLogger } from './utils/logger'
|
||||
import {
|
||||
genFireedgeKey, genPathResources, getCert,
|
||||
getKey, validateServerIsSecure
|
||||
genFireedgeKey, genPathResources, getCert, getKey, validateServerIsSecure
|
||||
} from './utils/server'
|
||||
|
||||
// set paths
|
||||
@ -55,6 +49,9 @@ genPathResources()
|
||||
// set fireedge_key
|
||||
genFireedgeKey()
|
||||
|
||||
// set logger
|
||||
initLogger()
|
||||
|
||||
// destructure imports
|
||||
const unsecureServer = http.createServer
|
||||
const secureServer = https.createServer
|
||||
@ -68,7 +65,6 @@ let frontPath = 'client'
|
||||
const appConfig = getConfig()
|
||||
const host = appConfig.host || defaultHost
|
||||
const port = appConfig.port || defaultPort
|
||||
const userLog = appConfig.log || 'dev'
|
||||
|
||||
if (env && env.NODE_ENV && env.NODE_ENV === defaultWebpackMode) {
|
||||
try {
|
||||
@ -101,31 +97,16 @@ if (env && env.NODE_ENV && env.NODE_ENV === defaultWebpackMode) {
|
||||
}
|
||||
frontPath = '../client'
|
||||
}
|
||||
|
||||
let log = morgan('dev')
|
||||
if (userLog === defaultTypeLog && global && global.paths && global.paths.FIREEDGE_LOG) {
|
||||
try {
|
||||
accessSync(global.paths.FIREEDGE_LOG, constants.W_OK)
|
||||
const logStream = createWriteStream(global.paths.FIREEDGE_LOG, {
|
||||
flags: 'a'
|
||||
})
|
||||
log = morgan('combined', { stream: logStream })
|
||||
} catch (err) {
|
||||
const config = {
|
||||
color: 'red',
|
||||
message: 'Error: %s',
|
||||
error: err.message || ''
|
||||
}
|
||||
messageTerminal(config)
|
||||
}
|
||||
}
|
||||
|
||||
app.use(helmet.hidePoweredBy())
|
||||
app.use(compression())
|
||||
app.use(`${basename}/client`, express.static(resolve(__dirname, frontPath)))
|
||||
app.use(`${basename}/client/*`, express.static(resolve(__dirname, frontPath)))
|
||||
// log request
|
||||
app.use(log)
|
||||
|
||||
const loggerMiddleware = getLoggerMiddleware()
|
||||
if (loggerMiddleware) {
|
||||
app.use(loggerMiddleware)
|
||||
}
|
||||
|
||||
// cors
|
||||
if (appConfig.cors) {
|
||||
app.use(cors())
|
||||
@ -136,7 +117,7 @@ app.use(express.json())
|
||||
|
||||
app.use(`${basename}/api`, entrypointApi) // opennebula Api routes
|
||||
const frontApps = Object.keys(defaultApps)
|
||||
frontApps.map(frontApp => {
|
||||
frontApps.forEach(frontApp => {
|
||||
app.get(`${basename}/${frontApp}`, entrypointApp)
|
||||
app.get(`${basename}/${frontApp}/*`, entrypointApp)
|
||||
})
|
||||
|
@ -13,6 +13,7 @@
|
||||
* See the License for the specific language governing permissions and *
|
||||
* limitations under the License. *
|
||||
* ------------------------------------------------------------------------- */
|
||||
/* eslint-disable indent */
|
||||
|
||||
const { env } = require('process')
|
||||
const express = require('express')
|
||||
@ -33,6 +34,8 @@ const {
|
||||
fillResourceforHookConnection
|
||||
} = require('../../utils')
|
||||
|
||||
const { writeInLogger } = require('../../utils/logger')
|
||||
|
||||
const {
|
||||
validateResourceAndSession,
|
||||
setOptionalParameters,
|
||||
@ -189,13 +192,14 @@ router.all(
|
||||
}
|
||||
const worker = new Worker(resolve(...workerPath, 'index.worker.js'))
|
||||
worker.onmessage = function (result) {
|
||||
worker.terminate()
|
||||
const err = result && result.data && result.data.err
|
||||
const value = result && result.data && result.data.value
|
||||
if (!err) {
|
||||
fillResourceforHookConnection(user, command, paramsCommand)
|
||||
}
|
||||
writeInLogger(`command: ${command} response for worker: ${JSON.stringify(value)}`)
|
||||
responseOpennebula(updaterResponse, err, value, response, next)
|
||||
worker.terminate()
|
||||
}
|
||||
worker.postMessage(
|
||||
{
|
||||
|
@ -19,7 +19,7 @@ const { Router } = require('express')
|
||||
const { env } = require('process')
|
||||
const { renderToString } = require('react-dom/server')
|
||||
const root = require('window-or-global')
|
||||
const path = require('path')
|
||||
const { resolve } = require('path')
|
||||
const { createStore, compose, applyMiddleware } = require('redux')
|
||||
const thunk = require('redux-thunk').default
|
||||
const { ServerStyleSheets } = require('@material-ui/core/styles')
|
||||
@ -72,7 +72,7 @@ router.get('*', (req, res) => {
|
||||
const composeEnhancer = (root && root.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__) || compose
|
||||
|
||||
// loadable
|
||||
const statsFile = path.resolve(__dirname, 'client', app + defaultFileStats)
|
||||
const statsFile = resolve(__dirname, 'client', app + defaultFileStats)
|
||||
const extractor = new ChunkExtractor({ statsFile })
|
||||
|
||||
// SSR redux store
|
||||
|
92
src/fireedge/src/server/utils/logger.js
Normal file
92
src/fireedge/src/server/utils/logger.js
Normal file
@ -0,0 +1,92 @@
|
||||
/* ------------------------------------------------------------------------- *
|
||||
* Copyright 2002-2021, OpenNebula Project, OpenNebula Systems *
|
||||
* *
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may *
|
||||
* not use this file except in compliance with the License. You may obtain *
|
||||
* a copy of the License at *
|
||||
* *
|
||||
* http://www.apache.org/licenses/LICENSE-2.0 *
|
||||
* *
|
||||
* Unless required by applicable law or agreed to in writing, software *
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, *
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
|
||||
* See the License for the specific language governing permissions and *
|
||||
* limitations under the License. *
|
||||
* ------------------------------------------------------------------------- */
|
||||
|
||||
const { env } = require('process')
|
||||
const { global } = require('window-or-global')
|
||||
const winston = require('winston')
|
||||
const morgan = require('morgan')
|
||||
const { defaultWebpackMode } = require('./constants/defaults')
|
||||
|
||||
let logger = null
|
||||
|
||||
/**
|
||||
* Initialize logger.
|
||||
*/
|
||||
const initLogger = () => {
|
||||
if (global && global.paths && global.paths.FIREEDGE_LOG) {
|
||||
logger = winston.createLogger({
|
||||
transports: [
|
||||
new winston.transports.File({
|
||||
level: 'info',
|
||||
filename: global.paths.FIREEDGE_LOG,
|
||||
handleExceptions: true,
|
||||
json: true,
|
||||
maxsize: 5242880, // 5MB
|
||||
maxFiles: 5,
|
||||
colorize: false
|
||||
})
|
||||
],
|
||||
exitOnError: false
|
||||
})
|
||||
|
||||
logger.stream = {
|
||||
write: function (message, encoding) {
|
||||
logger.info(message)
|
||||
}
|
||||
}
|
||||
if (env && env.NODE_ENV && env.NODE_ENV === defaultWebpackMode) {
|
||||
logger.add(new winston.transports.Console({
|
||||
format: winston.format.simple()
|
||||
}))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get logger.
|
||||
*
|
||||
* @returns {object} - logger
|
||||
*/
|
||||
const getLogger = () => logger
|
||||
|
||||
/**
|
||||
* Get Logger middleware.
|
||||
*
|
||||
* @returns {object} - morgan middleware
|
||||
*/
|
||||
const getLoggerMiddleware = () => {
|
||||
const logger = getLogger()
|
||||
if (logger) {
|
||||
return morgan('combined', { stream: logger.stream })
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Write in logger.
|
||||
*
|
||||
* @param {string} message - message for logger file
|
||||
*/
|
||||
const writeInLogger = (message = '') => {
|
||||
const logger = getLogger()
|
||||
if (logger) {
|
||||
logger.log({
|
||||
level: 'info',
|
||||
message
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = { initLogger, getLogger, getLoggerMiddleware, writeInLogger }
|
@ -24,6 +24,7 @@ const { existsSync, readFileSync, createWriteStream, readdirSync, statSync } = r
|
||||
const { internalServerError } = require('./constants/http-codes')
|
||||
const { messageTerminal } = require('server/utils/general')
|
||||
const { validateAuth } = require('server/utils/jwt')
|
||||
const { writeInLogger } = require('server/utils/logger')
|
||||
const {
|
||||
from: fromData,
|
||||
defaultAppName,
|
||||
@ -251,6 +252,7 @@ const encrypt = (data = '', key = '', iv = '') => {
|
||||
rtn = encryptData
|
||||
} catch (err) {
|
||||
const errorData = (err && err.message) || ''
|
||||
writeInLogger(errorData)
|
||||
messageTerminal({
|
||||
color: 'red',
|
||||
message: 'Error: %s',
|
||||
@ -279,6 +281,7 @@ const decrypt = (data = '', key = '', iv = '') => {
|
||||
rtn = decryptData
|
||||
} catch (err) {
|
||||
const errorData = (err && err.message) || ''
|
||||
writeInLogger(errorData)
|
||||
messageTerminal({
|
||||
color: 'red',
|
||||
message: 'Error: %s',
|
||||
@ -309,6 +312,7 @@ const existsFile = (path = '', success = defaultEmptyFunction, error = defaultEm
|
||||
}
|
||||
} catch (err) {
|
||||
errorData = (err && err.message) || ''
|
||||
writeInLogger(errorData)
|
||||
messageTerminal({
|
||||
color: 'red',
|
||||
message: 'Error: %s',
|
||||
@ -364,10 +368,12 @@ const genFireedgeKey = () => {
|
||||
() => {
|
||||
createFile(
|
||||
global.paths.FIREEDGE_KEY_PATH, uuidv4.replace(/-/g, ''), () => undefined, err => {
|
||||
const errorData = (err && err.message) || ''
|
||||
writeInLogger(errorData)
|
||||
messageTerminal({
|
||||
color: 'red',
|
||||
message: 'Error: %s',
|
||||
error: (err && err.message) || ''
|
||||
error: errorData
|
||||
})
|
||||
})
|
||||
}
|
||||
@ -413,11 +419,13 @@ const getSunstoneAuth = () => {
|
||||
}
|
||||
}
|
||||
}, err => {
|
||||
const errorData = err.message || ''
|
||||
const config = {
|
||||
color: 'red',
|
||||
message: 'Error: %s',
|
||||
error: err.message || ''
|
||||
error: errorData
|
||||
}
|
||||
writeInLogger(errorData)
|
||||
messageTerminal(config)
|
||||
})
|
||||
}
|
||||
@ -554,7 +562,9 @@ const getFiles = (path = '', recursive = false, files = []) => {
|
||||
}
|
||||
})
|
||||
} catch (error) {
|
||||
messageTerminal(defaultError(error && error.message))
|
||||
const errorData = (error && error.message) || ''
|
||||
writeInLogger(errorData)
|
||||
messageTerminal(defaultError(errorData))
|
||||
}
|
||||
}
|
||||
return files
|
||||
@ -586,6 +596,7 @@ const getFilesbyEXT = (dir = '', ext = '', errorCallback = defaultEmptyFunction)
|
||||
})
|
||||
} catch (error) {
|
||||
const errorMsg = (error && error.message) || ''
|
||||
writeInLogger(errorMsg)
|
||||
messageTerminal(defaultError(errorMsg))
|
||||
errorCallback(errorMsg)
|
||||
}
|
||||
@ -613,6 +624,7 @@ const getDirectories = (dir = '', errorCallback = () => undefined) => {
|
||||
})
|
||||
} catch (error) {
|
||||
const errorMsg = (error && error.message) || ''
|
||||
writeInLogger(errorMsg)
|
||||
messageTerminal(defaultError(errorMsg))
|
||||
errorCallback(errorMsg)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user