Commit c6a2bf27de4b34be33861bb50fcd0f25495007e3
1 parent
72660b6d95
Exists in
master
and in
1 other branch
Optimasi dumper
Showing 3 changed files with 62 additions and 53 deletions Side-by-side Diff
lib/core-callback/dumper/req.js
1 | 1 | const MODULE_NAME = 'CORE-CALLBACK.DUMPER.REQ'; |
2 | 2 | |
3 | -const fs = require('fs'); | |
3 | +// const fs = require('fs'); | |
4 | 4 | const fsPromise = require('fs').promises; |
5 | 5 | const path = require('path'); |
6 | 6 | const config = require('komodo-sdk/config'); |
7 | 7 | const logger = require('komodo-sdk/logger'); |
8 | 8 | const moment = require('moment'); |
9 | 9 | |
10 | -const baseDumpDir = 'dump'; | |
11 | -const subBaseDumpDir = path.join(baseDumpDir, 'core-callback'); | |
12 | -const lastDumpFileName = path.join(subBaseDumpDir, 'last-req'); | |
10 | +const mkdirIfNotExists = require('../../utils/mkdir-if-not-exists'); | |
13 | 11 | |
14 | -if (!fs.existsSync(baseDumpDir)) { | |
15 | - logger.verbose(`${MODULE_NAME} B5785525: Creating base dump dir`); | |
16 | - fs.mkdirSync(baseDumpDir); | |
17 | -} | |
18 | - | |
19 | -if (!fs.existsSync(subBaseDumpDir)) { | |
20 | - logger.verbose(`${MODULE_NAME} 13BD289A: Creating dump dir`); | |
21 | - fs.mkdirSync(subBaseDumpDir); | |
22 | -} | |
12 | +const baseDumpDir = path.join('dump', 'core-callback'); | |
13 | +const lastDumpFileName = path.join(baseDumpDir, 'last-req'); | |
23 | 14 | |
24 | 15 | module.exports = async (req, res, next) => { |
25 | 16 | if ( |
... | ... | @@ -48,19 +39,10 @@ REQ BODY: |
48 | 39 | ${JSON.stringify(req.body, null, 2)} |
49 | 40 | `; |
50 | 41 | |
51 | - const dumpDir = path.join( | |
52 | - subBaseDumpDir, | |
53 | - moment().format('YYYY-MM-DD'), | |
54 | - ); | |
55 | - | |
56 | - try { | |
57 | - await fsPromise.stat(dumpDir); | |
58 | - } catch (e) { | |
59 | - await fsPromise.mkdir(dumpDir, { recursive: true }); | |
60 | - } | |
61 | 42 | |
62 | 43 | const dumpFileName = path.join( |
63 | - dumpDir, | |
44 | + baseDumpDir, | |
45 | + moment().format('YYYY-MM-DD'), | |
64 | 46 | [ |
65 | 47 | 'req', |
66 | 48 | moment().format('YYMMDD_HHmmss_SSS'), |
... | ... | @@ -68,8 +50,17 @@ ${JSON.stringify(req.body, null, 2)} |
68 | 50 | ].join('_'), |
69 | 51 | ); |
70 | 52 | |
71 | - await fsPromise.writeFile(dumpFileName, data); | |
72 | - await fsPromise.writeFile(lastDumpFileName, data); | |
53 | + try { | |
54 | + await mkdirIfNotExists(xid, path.dirname(dumpFileName)); | |
55 | + await fsPromise.writeFile(lastDumpFileName, data); | |
56 | + await fsPromise.writeFile(dumpFileName, data); | |
57 | + } catch (e) { | |
58 | + logger.warn(`${MODULE_NAME} E77C2B23: Exception on dumping file`, { | |
59 | + xid, | |
60 | + eCode: e.code, | |
61 | + eMessage: e.eMessage, | |
62 | + }); | |
63 | + } | |
73 | 64 | |
74 | 65 | next(); |
75 | 66 | }; |
lib/core-callback/dumper/sender.js
1 | 1 | const MODULE_NAME = 'CORE-CALLBACK.DUMPER.SENDER'; |
2 | 2 | |
3 | -const fs = require('fs'); | |
4 | 3 | const fsPromise = require('fs').promises; |
5 | 4 | const path = require('path'); |
6 | 5 | const config = require('komodo-sdk/config'); |
7 | 6 | const logger = require('komodo-sdk/logger'); |
8 | 7 | const moment = require('moment'); |
9 | 8 | |
10 | -const baseDumpDir = 'dump'; | |
11 | -const subBaseDumpDir = path.join(baseDumpDir, 'core-callback'); | |
12 | -const lastDumpFileName = path.join(subBaseDumpDir, 'last-sent'); | |
9 | +const mkdirIfNotExists = require('../../utils/mkdir-if-not-exists'); | |
13 | 10 | |
14 | -if (!fs.existsSync(baseDumpDir)) { | |
15 | - logger.verbose(`${MODULE_NAME} CE7EA06A: Creating base dump dir`); | |
16 | - fs.mkdirSync(baseDumpDir); | |
17 | -} | |
18 | - | |
19 | -if (!fs.existsSync(subBaseDumpDir)) { | |
20 | - logger.verbose(`${MODULE_NAME} A9807434: Creating dump dir`); | |
21 | - fs.mkdirSync(subBaseDumpDir); | |
22 | -} | |
11 | +const baseDumpDir = path.join('dump', 'core-callback'); | |
12 | +const lastDumpFileName = path.join(baseDumpDir, 'last-sent'); | |
23 | 13 | |
24 | 14 | module.exports = async (xid, httpMethod, endpointUrl, params, axiosResponse, axiosError) => { |
25 | 15 | if ( |
... | ... | @@ -55,19 +45,9 @@ ${ |
55 | 45 | } |
56 | 46 | `; |
57 | 47 | |
58 | - const dumpDir = path.join( | |
59 | - subBaseDumpDir, | |
60 | - moment().format('YYYY-MM-DD'), | |
61 | - ); | |
62 | - | |
63 | - try { | |
64 | - await fsPromise.stat(dumpDir); | |
65 | - } catch (e) { | |
66 | - await fsPromise.mkdir(dumpDir, { recursive: true }); | |
67 | - } | |
68 | - | |
69 | 48 | const dumpFileName = path.join( |
70 | - dumpDir, | |
49 | + baseDumpDir, | |
50 | + moment().format('YYYY-MM-DD'), | |
71 | 51 | [ |
72 | 52 | 'sent', |
73 | 53 | moment().format('YYMMDD_HHmmss_SSS'), |
... | ... | @@ -75,6 +55,15 @@ ${ |
75 | 55 | ].join('_'), |
76 | 56 | ); |
77 | 57 | |
78 | - await fsPromise.writeFile(dumpFileName, data); | |
79 | - await fsPromise.writeFile(lastDumpFileName, data); | |
58 | + try { | |
59 | + await mkdirIfNotExists(xid, path.dirname(dumpFileName)); | |
60 | + await fsPromise.writeFile(lastDumpFileName, data); | |
61 | + await fsPromise.writeFile(dumpFileName, data); | |
62 | + } catch (e) { | |
63 | + logger.warn(`${MODULE_NAME} 9BA99454: Exception on dumping file`, { | |
64 | + xid, | |
65 | + eCode: e.code, | |
66 | + eMessage: e.eMessage, | |
67 | + }); | |
68 | + } | |
80 | 69 | }; |
lib/utils/mkdir-if-not-exists.js
... | ... | @@ -0,0 +1,29 @@ |
1 | +const MODULE_NAME = 'MKDIR-IF-NOT-EXISTS'; | |
2 | + | |
3 | +const fsPromise = require('fs').promises; | |
4 | +const logger = require('komodo-sdk/logger'); | |
5 | + | |
6 | +const mkdir = async (xid, dirname) => { | |
7 | + try { | |
8 | + await fsPromise.mkdir(dirname, { recursive: true }); | |
9 | + } catch (e) { | |
10 | + logger.warn(`${MODULE_NAME} 857718E9: Exception on creating directory`, { | |
11 | + xid, | |
12 | + dirname, | |
13 | + eCode: e.code, | |
14 | + eMessage: e.message, | |
15 | + }); | |
16 | + } | |
17 | +}; | |
18 | + | |
19 | +module.exports = async (xid, dirname) => { | |
20 | + try { | |
21 | + await fsPromise.stat(dirname); | |
22 | + } catch (e) { | |
23 | + logger.verbose(`${MODULE_NAME} 6B08D52D: Creating directory`, { | |
24 | + xid, dirname, | |
25 | + }); | |
26 | + | |
27 | + await mkdir(xid, dirname); | |
28 | + } | |
29 | +}; |