Blame view
lib/core-callback/dumper/sender.js
2.13 KB
d05e75946
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
const MODULE_NAME = 'CORE-CALLBACK.DUMPER.SENDER'; const fs = require('fs'); const fsPromise = require('fs').promises; const path = require('path'); const config = require('komodo-sdk/config'); const logger = require('komodo-sdk/logger'); const moment = require('moment'); const baseDumpDir = 'dump'; const subBaseDumpDir = path.join(baseDumpDir, 'core-callback'); const lastSymbolicLinkName = path.join(subBaseDumpDir, 'last-sent'); if (!fs.existsSync(baseDumpDir)) { logger.verbose(`${MODULE_NAME} CE7EA06A: Creating base dump dir`); fs.mkdirSync(baseDumpDir); } if (!fs.existsSync(subBaseDumpDir)) { logger.verbose(`${MODULE_NAME} A9807434: Creating dump dir`); fs.mkdirSync(subBaseDumpDir); } module.exports = async (xid, httpMethod, endpointUrl, params, axiosResponse, axiosError) => { if ( !config || !config.listener || !config.listener.core || !config.listener.core.dump ) { return; } const data = `-------- XID: ${xid} PID: ${process.pid} DATE: ${moment().format('YYYY-MM-DD HH:mm:ss.SSS')} HTTP METHOD: ${httpMethod} ENDPOINT URL: ${endpointUrl} REQ PARAMS: ${JSON.stringify(params, null, 2)} ERROR CODE: ${(axiosError && axiosError.code) || ''} ERROR MESSAGE: ${(axiosError && axiosError.message) || ''} RES HTTP STATUS: ${axiosResponse && axiosResponse.status} RES BODY: ${ axiosResponse && axiosResponse.data && ( ((typeof axiosResponse.data === 'string') && axiosResponse.data) || JSON.stringify(axiosResponse.data, null, 2) ) } `; const dumpDir = path.join( subBaseDumpDir, moment().format('YYYY-MM-DD'), ); try { await fsPromise.stat(dumpDir); } catch (e) { await fsPromise.mkdir(dumpDir, { recursive: true }); } const dumpFileName = path.join( dumpDir, [ 'sent', moment().format('YYMMDD_HHmmss_SSS'), xid, ].join('_'), ); await fsPromise.writeFile(dumpFileName, data); try { await fsPromise.unlink(lastSymbolicLinkName); } catch (e) { // } await fs.symlink(dumpFileName, lastSymbolicLinkName); }; |