diff --git a/lib/core-callback/dumper/req.js b/lib/core-callback/dumper/req.js index 66b2345..a4b0e23 100644 --- a/lib/core-callback/dumper/req.js +++ b/lib/core-callback/dumper/req.js @@ -1,25 +1,16 @@ const MODULE_NAME = 'CORE-CALLBACK.DUMPER.REQ'; -const fs = require('fs'); +// 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 lastDumpFileName = path.join(subBaseDumpDir, 'last-req'); +const mkdirIfNotExists = require('../../utils/mkdir-if-not-exists'); -if (!fs.existsSync(baseDumpDir)) { - logger.verbose(`${MODULE_NAME} B5785525: Creating base dump dir`); - fs.mkdirSync(baseDumpDir); -} - -if (!fs.existsSync(subBaseDumpDir)) { - logger.verbose(`${MODULE_NAME} 13BD289A: Creating dump dir`); - fs.mkdirSync(subBaseDumpDir); -} +const baseDumpDir = path.join('dump', 'core-callback'); +const lastDumpFileName = path.join(baseDumpDir, 'last-req'); module.exports = async (req, res, next) => { if ( @@ -48,19 +39,10 @@ REQ BODY: ${JSON.stringify(req.body, 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, + baseDumpDir, + moment().format('YYYY-MM-DD'), [ 'req', moment().format('YYMMDD_HHmmss_SSS'), @@ -68,8 +50,17 @@ ${JSON.stringify(req.body, null, 2)} ].join('_'), ); - await fsPromise.writeFile(dumpFileName, data); - await fsPromise.writeFile(lastDumpFileName, data); + try { + await mkdirIfNotExists(xid, path.dirname(dumpFileName)); + await fsPromise.writeFile(lastDumpFileName, data); + await fsPromise.writeFile(dumpFileName, data); + } catch (e) { + logger.warn(`${MODULE_NAME} E77C2B23: Exception on dumping file`, { + xid, + eCode: e.code, + eMessage: e.eMessage, + }); + } next(); }; diff --git a/lib/core-callback/dumper/sender.js b/lib/core-callback/dumper/sender.js index e7c33a8..ea154aa 100644 --- a/lib/core-callback/dumper/sender.js +++ b/lib/core-callback/dumper/sender.js @@ -1,25 +1,15 @@ 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 lastDumpFileName = path.join(subBaseDumpDir, 'last-sent'); +const mkdirIfNotExists = require('../../utils/mkdir-if-not-exists'); -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); -} +const baseDumpDir = path.join('dump', 'core-callback'); +const lastDumpFileName = path.join(baseDumpDir, 'last-sent'); module.exports = async (xid, httpMethod, endpointUrl, params, axiosResponse, axiosError) => { if ( @@ -55,19 +45,9 @@ ${ } `; - 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, + baseDumpDir, + moment().format('YYYY-MM-DD'), [ 'sent', moment().format('YYMMDD_HHmmss_SSS'), @@ -75,6 +55,15 @@ ${ ].join('_'), ); - await fsPromise.writeFile(dumpFileName, data); - await fsPromise.writeFile(lastDumpFileName, data); + try { + await mkdirIfNotExists(xid, path.dirname(dumpFileName)); + await fsPromise.writeFile(lastDumpFileName, data); + await fsPromise.writeFile(dumpFileName, data); + } catch (e) { + logger.warn(`${MODULE_NAME} 9BA99454: Exception on dumping file`, { + xid, + eCode: e.code, + eMessage: e.eMessage, + }); + } }; diff --git a/lib/utils/mkdir-if-not-exists.js b/lib/utils/mkdir-if-not-exists.js new file mode 100644 index 0000000..60a3c44 --- /dev/null +++ b/lib/utils/mkdir-if-not-exists.js @@ -0,0 +1,29 @@ +const MODULE_NAME = 'MKDIR-IF-NOT-EXISTS'; + +const fsPromise = require('fs').promises; +const logger = require('komodo-sdk/logger'); + +const mkdir = async (xid, dirname) => { + try { + await fsPromise.mkdir(dirname, { recursive: true }); + } catch (e) { + logger.warn(`${MODULE_NAME} 857718E9: Exception on creating directory`, { + xid, + dirname, + eCode: e.code, + eMessage: e.message, + }); + } +}; + +module.exports = async (xid, dirname) => { + try { + await fsPromise.stat(dirname); + } catch (e) { + logger.verbose(`${MODULE_NAME} 6B08D52D: Creating directory`, { + xid, dirname, + }); + + await mkdir(xid, dirname); + } +};