Commit 6621ca5cdb5472470c4073070c18c1a1145d6cb9
1 parent
96092d4c0a
Exists in
master
Last dump filename
Showing 2 changed files with 2 additions and 2 deletions Inline Diff
lib/callback/dumper.js
1 | const MODULE_NAME = 'CALLBACK.DUMPER'; | 1 | const MODULE_NAME = 'CALLBACK.DUMPER'; |
2 | 2 | ||
3 | const fs = require('fs'); | 3 | const fs = require('fs'); |
4 | const fsPromise = require('fs').promises; | 4 | const fsPromise = require('fs').promises; |
5 | const path = require('path'); | 5 | const path = require('path'); |
6 | const config = require('komodo-sdk/config'); | 6 | const config = require('komodo-sdk/config'); |
7 | const logger = require('komodo-sdk/logger'); | 7 | const logger = require('komodo-sdk/logger'); |
8 | const moment = require('moment'); | 8 | const moment = require('moment'); |
9 | 9 | ||
10 | const baseDumpDir = 'dump'; | 10 | const baseDumpDir = 'dump'; |
11 | const callbackDumpDir = path.join(baseDumpDir, 'callback'); | 11 | const callbackDumpDir = path.join(baseDumpDir, 'callback'); |
12 | 12 | ||
13 | if (!fs.existsSync(baseDumpDir)) { | 13 | if (!fs.existsSync(baseDumpDir)) { |
14 | logger.verbose(`${MODULE_NAME} D7E3D88E: Creating base dump dir`); | 14 | logger.verbose(`${MODULE_NAME} D7E3D88E: Creating base dump dir`); |
15 | fs.mkdirSync(baseDumpDir); | 15 | fs.mkdirSync(baseDumpDir); |
16 | } | 16 | } |
17 | 17 | ||
18 | if (!fs.existsSync(callbackDumpDir)) { | 18 | if (!fs.existsSync(callbackDumpDir)) { |
19 | logger.verbose(`${MODULE_NAME} 002EC4A8: Creating callback dump dir`); | 19 | logger.verbose(`${MODULE_NAME} 002EC4A8: Creating callback dump dir`); |
20 | fs.mkdirSync(callbackDumpDir); | 20 | fs.mkdirSync(callbackDumpDir); |
21 | } | 21 | } |
22 | 22 | ||
23 | module.exports = async (req, res, next) => { | 23 | module.exports = async (req, res, next) => { |
24 | if ( | 24 | if ( |
25 | !config | 25 | !config |
26 | || !config.partner | 26 | || !config.partner |
27 | || !config.partner.callback | 27 | || !config.partner.callback |
28 | || !config.partner.callback.dump_request | 28 | || !config.partner.callback.dump_request |
29 | ) { | 29 | ) { |
30 | next(); | 30 | next(); |
31 | return; | 31 | return; |
32 | } | 32 | } |
33 | 33 | ||
34 | const { xid } = res.locals; | 34 | const { xid } = res.locals; |
35 | 35 | ||
36 | const data = `-------- | 36 | const data = `-------- |
37 | XID: ${xid} | 37 | XID: ${xid} |
38 | PID: ${process.pid} | 38 | PID: ${process.pid} |
39 | DATE: ${moment().format('YYYY-MM-DD HH:mm:ss.SSS')} | 39 | DATE: ${moment().format('YYYY-MM-DD HH:mm:ss.SSS')} |
40 | REMOTE-ADDR: ${req.ip} | 40 | REMOTE-ADDR: ${req.ip} |
41 | USER-AGENT: ${req.get('user-agent')} | 41 | USER-AGENT: ${req.get('user-agent')} |
42 | METHOD: ${req.method} | 42 | METHOD: ${req.method} |
43 | URL: ${req.url} | 43 | URL: ${req.url} |
44 | 44 | ||
45 | QUERY-STRING: | 45 | QUERY-STRING: |
46 | ${JSON.stringify(req.query, null, 2)} | 46 | ${JSON.stringify(req.query, null, 2)} |
47 | 47 | ||
48 | REQ-CONTENT-TYPE: ${req.get('content-type')} | 48 | REQ-CONTENT-TYPE: ${req.get('content-type')} |
49 | REQ-BODY-TYPEOF: ${typeof req.body} | 49 | REQ-BODY-TYPEOF: ${typeof req.body} |
50 | REQ-BODY: | 50 | REQ-BODY: |
51 | ${(req.body && typeof req.body === 'object' && JSON.stringify(req.body, null, 2)) || req.body} | 51 | ${(req.body && typeof req.body === 'object' && JSON.stringify(req.body, null, 2)) || req.body} |
52 | `; | 52 | `; |
53 | 53 | ||
54 | const dumpDir = path.join( | 54 | const dumpDir = path.join( |
55 | callbackDumpDir, | 55 | callbackDumpDir, |
56 | moment().format('YYYY-MM-DD'), | 56 | moment().format('YYYY-MM-DD'), |
57 | ); | 57 | ); |
58 | 58 | ||
59 | try { | 59 | try { |
60 | await fsPromise.stat(dumpDir); | 60 | await fsPromise.stat(dumpDir); |
61 | } catch { | 61 | } catch { |
62 | await fsPromise.mkdir(dumpDir, { recursive: true }); | 62 | await fsPromise.mkdir(dumpDir, { recursive: true }); |
63 | } | 63 | } |
64 | 64 | ||
65 | await fsPromise.writeFile( | 65 | await fsPromise.writeFile( |
66 | path.join( | 66 | path.join( |
67 | dumpDir, | 67 | dumpDir, |
68 | [ | 68 | [ |
69 | moment().format('YYMMDD_HHmmss_SSS'), | 69 | moment().format('YYMMDD_HHmmss_SSS'), |
70 | xid, | 70 | xid, |
71 | ].join('_'), | 71 | ].join('_'), |
72 | ), | 72 | ), |
73 | data, | 73 | data, |
74 | ); | 74 | ); |
75 | 75 | ||
76 | await fsPromise.writeFile( | 76 | await fsPromise.writeFile( |
77 | path.join(callbackDumpDir, 'last-callback'), | 77 | path.join(callbackDumpDir, 'last'), |
78 | data, | 78 | data, |
79 | ); | 79 | ); |
80 | 80 | ||
81 | next(); | 81 | next(); |
82 | }; | 82 | }; |
83 | 83 |
lib/hit/dump-req-res.js
1 | const MODULE_NAME = 'DUMP-REQ-RES'; | 1 | const MODULE_NAME = 'DUMP-REQ-RES'; |
2 | 2 | ||
3 | const fs = require('fs'); | 3 | const fs = require('fs'); |
4 | const path = require('path'); | 4 | const path = require('path'); |
5 | const fsPromise = require('fs').promises; | 5 | const fsPromise = require('fs').promises; |
6 | const moment = require('moment'); | 6 | const moment = require('moment'); |
7 | 7 | ||
8 | const config = require('komodo-sdk/config'); | 8 | const config = require('komodo-sdk/config'); |
9 | const logger = require('komodo-sdk/logger'); | 9 | const logger = require('komodo-sdk/logger'); |
10 | 10 | ||
11 | const baseDumpDir = 'dump'; | 11 | const baseDumpDir = 'dump'; |
12 | const requestDumpDir = path.join(baseDumpDir, 'request'); | 12 | const requestDumpDir = path.join(baseDumpDir, 'request'); |
13 | 13 | ||
14 | if (!fs.existsSync(baseDumpDir)) { | 14 | if (!fs.existsSync(baseDumpDir)) { |
15 | logger.verbose(`${MODULE_NAME} 51105314: Creating base dump dir`); | 15 | logger.verbose(`${MODULE_NAME} 51105314: Creating base dump dir`); |
16 | fs.mkdirSync(baseDumpDir); | 16 | fs.mkdirSync(baseDumpDir); |
17 | } | 17 | } |
18 | 18 | ||
19 | if (!fs.existsSync(requestDumpDir)) { | 19 | if (!fs.existsSync(requestDumpDir)) { |
20 | logger.verbose(`${MODULE_NAME} 8A52891B: Creating request dump dir`); | 20 | logger.verbose(`${MODULE_NAME} 8A52891B: Creating request dump dir`); |
21 | fs.mkdirSync(requestDumpDir); | 21 | fs.mkdirSync(requestDumpDir); |
22 | } | 22 | } |
23 | 23 | ||
24 | module.exports = async ( | 24 | module.exports = async ( |
25 | xid, task, httpMethod, endpointUrl, params, responseBody, responseStatus, | 25 | xid, task, httpMethod, endpointUrl, params, responseBody, responseStatus, |
26 | ) => { | 26 | ) => { |
27 | if ( | 27 | if ( |
28 | !config | 28 | !config |
29 | || !config.partner | 29 | || !config.partner |
30 | || !config.partner.dump_request | 30 | || !config.partner.dump_request |
31 | ) { | 31 | ) { |
32 | return; | 32 | return; |
33 | } | 33 | } |
34 | 34 | ||
35 | const data = `-------- | 35 | const data = `-------- |
36 | XID: ${xid} | 36 | XID: ${xid} |
37 | PID: ${process.pid} | 37 | PID: ${process.pid} |
38 | DATE: ${moment().format('YYYY-MM-DD HH:mm:ss.SSS')} | 38 | DATE: ${moment().format('YYYY-MM-DD HH:mm:ss.SSS')} |
39 | 39 | ||
40 | TASK: | 40 | TASK: |
41 | ${JSON.stringify(task, null, 2)} | 41 | ${JSON.stringify(task, null, 2)} |
42 | 42 | ||
43 | 43 | ||
44 | HTTP-METHOD: ${httpMethod} | 44 | HTTP-METHOD: ${httpMethod} |
45 | URL: ${endpointUrl} | 45 | URL: ${endpointUrl} |
46 | PARAMS: | 46 | PARAMS: |
47 | ${ | 47 | ${ |
48 | params && ( | 48 | params && ( |
49 | (typeof params === 'string' && params) | 49 | (typeof params === 'string' && params) |
50 | || JSON.stringify(params, null, 2) | 50 | || JSON.stringify(params, null, 2) |
51 | ) | 51 | ) |
52 | } | 52 | } |
53 | 53 | ||
54 | RESPONSE-STATUS: ${responseStatus} | 54 | RESPONSE-STATUS: ${responseStatus} |
55 | RESPONSE-BODY: | 55 | RESPONSE-BODY: |
56 | ${ | 56 | ${ |
57 | responseBody && ( | 57 | responseBody && ( |
58 | (typeof responseBody === 'string' && responseBody) | 58 | (typeof responseBody === 'string' && responseBody) |
59 | || JSON.stringify(responseBody, null, 2) | 59 | || JSON.stringify(responseBody, null, 2) |
60 | ) | 60 | ) |
61 | } | 61 | } |
62 | `; | 62 | `; |
63 | 63 | ||
64 | const dumpDir = path.join( | 64 | const dumpDir = path.join( |
65 | requestDumpDir, | 65 | requestDumpDir, |
66 | moment().format('YYYY-MM-DD'), | 66 | moment().format('YYYY-MM-DD'), |
67 | ); | 67 | ); |
68 | 68 | ||
69 | try { | 69 | try { |
70 | await fsPromise.stat(dumpDir); | 70 | await fsPromise.stat(dumpDir); |
71 | } catch { | 71 | } catch { |
72 | await fsPromise.mkdir(dumpDir, { recursive: true }); | 72 | await fsPromise.mkdir(dumpDir, { recursive: true }); |
73 | } | 73 | } |
74 | 74 | ||
75 | await fsPromise.writeFile( | 75 | await fsPromise.writeFile( |
76 | path.join( | 76 | path.join( |
77 | dumpDir, | 77 | dumpDir, |
78 | `trx_${task.trx_id}`, | 78 | `trx_${task.trx_id}`, |
79 | ), | 79 | ), |
80 | data, | 80 | data, |
81 | ); | 81 | ); |
82 | 82 | ||
83 | await fsPromise.writeFile( | 83 | await fsPromise.writeFile( |
84 | path.join(dumpDir, 'last-trx'), | 84 | path.join(requestDumpDir, 'last'), |
85 | data, | 85 | data, |
86 | ); | 86 | ); |
87 | }; | 87 | }; |
88 | 88 |