Commit c6a2bf27de4b34be33861bb50fcd0f25495007e3

Authored by Adhidarma Hadiwinoto
1 parent 72660b6d95
Exists in master and in 1 other branch dev

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 +};