From 81fa63f630f780959dbcb88be9cfa5c746294a0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20Salgado?= Date: Mon, 18 Oct 2021 17:18:35 +0100 Subject: [PATCH 1/3] feat: backport database selector flag --- .env | 1 + lib/options-loader.js | 17 ++++++++++------- test/stress/test-server.js | 2 +- 3 files changed, 12 insertions(+), 8 deletions(-) create mode 100644 .env diff --git a/.env b/.env new file mode 100644 index 00000000..69fccef7 --- /dev/null +++ b/.env @@ -0,0 +1 @@ +LAMASSU_DB=RELEASE \ No newline at end of file diff --git a/lib/options-loader.js b/lib/options-loader.js index 37605be5..81061d7c 100644 --- a/lib/options-loader.js +++ b/lib/options-loader.js @@ -2,8 +2,15 @@ const fs = require('fs') const path = require('path') const os = require('os') const argv = require('minimist')(process.argv.slice(2)) +const _ = require('lodash/fp') -const STRESS_TEST_DB = 'psql://postgres:postgres123@localhost/lamassu_stress' +require('dotenv').config() + +const dbMapping = psqlConf => ({ + STRESS_TEST: _.replace('lamassu', 'lamassu_stress', psqlConf), + RELEASE: _.replace('lamassu', 'lamassu_release', psqlConf), + DEV: _.replace('lamassu', 'lamassu', psqlConf) +}) /** * @return {{path: string, opts: any}} @@ -32,9 +39,7 @@ function load () { opts: JSON.parse(fs.readFileSync(globalConfigPath)) } - if (argv.testDB) { - config.opts.postgresql = STRESS_TEST_DB - } + config.opts.postgresql = dbMapping(config.opts.postgresql)[process.env.LAMASSU_DB] return config } catch (_) { @@ -45,9 +50,7 @@ function load () { opts: JSON.parse(fs.readFileSync(homeConfigPath)) } - if (argv.testDB) { - config.opts.postgresql = STRESS_TEST_DB - } + config.opts.postgresql = dbMapping(config.opts.postgresql)[process.env.LAMASSU_DB] return config } catch (_) { diff --git a/test/stress/test-server.js b/test/stress/test-server.js index 56a7811e..8d9b1f5b 100644 --- a/test/stress/test-server.js +++ b/test/stress/test-server.js @@ -3,5 +3,5 @@ const cmd = require('./scripts') process.on('message', async (msg) => { console.log('Message from parent:', msg) - await cmd.execCommand(`node --prof ../../bin/lamassu-server --mockSms --testDB`) + await cmd.execCommand(`node --prof LAMASSU_DB=STRESS_TEST ../../bin/lamassu-server --mockSms`) }) From 2c68323f6627109ec022aafeb0ff0dba71d357ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20Salgado?= Date: Tue, 26 Oct 2021 16:24:50 +0100 Subject: [PATCH 2/3] feat: add dev .env file fix: add selector for prod envs and default to prod value --- .env | 1 - .env.dev | 1 + .gitignore | 1 + lib/options-loader.js | 23 +++++++++++++++++++---- 4 files changed, 21 insertions(+), 5 deletions(-) delete mode 100644 .env create mode 100644 .env.dev diff --git a/.env b/.env deleted file mode 100644 index 69fccef7..00000000 --- a/.env +++ /dev/null @@ -1 +0,0 @@ -LAMASSU_DB=RELEASE \ No newline at end of file diff --git a/.env.dev b/.env.dev new file mode 100644 index 00000000..db93e716 --- /dev/null +++ b/.env.dev @@ -0,0 +1 @@ +LAMASSU_DB=DEV \ No newline at end of file diff --git a/.gitignore b/.gitignore index 78852c81..f5b53d44 100644 --- a/.gitignore +++ b/.gitignore @@ -40,3 +40,4 @@ terraform.* .terraform db.json +.env diff --git a/lib/options-loader.js b/lib/options-loader.js index 81061d7c..100525d0 100644 --- a/lib/options-loader.js +++ b/lib/options-loader.js @@ -4,12 +4,13 @@ const os = require('os') const argv = require('minimist')(process.argv.slice(2)) const _ = require('lodash/fp') -require('dotenv').config() +require('dotenv').config({ path: `.env${process.env.NODE_ENV !== 'production' ? `.dev` : ``}` }) const dbMapping = psqlConf => ({ STRESS_TEST: _.replace('lamassu', 'lamassu_stress', psqlConf), RELEASE: _.replace('lamassu', 'lamassu_release', psqlConf), - DEV: _.replace('lamassu', 'lamassu', psqlConf) + DEV: _.replace('lamassu', 'lamassu', psqlConf), + PROD: _.replace('lamassu', 'lamassu', psqlConf) }) /** @@ -39,7 +40,11 @@ function load () { opts: JSON.parse(fs.readFileSync(globalConfigPath)) } - config.opts.postgresql = dbMapping(config.opts.postgresql)[process.env.LAMASSU_DB] + config.opts.postgresql = dbMapping(config.opts.postgresql)[ + process.env.LAMASSU_DB === '' || !process.env.LAMASSU_DB + ? 'PROD' + : process.env.LAMASSU_DB + ] return config } catch (_) { @@ -50,7 +55,17 @@ function load () { opts: JSON.parse(fs.readFileSync(homeConfigPath)) } - config.opts.postgresql = dbMapping(config.opts.postgresql)[process.env.LAMASSU_DB] + console.log('flag', dbMapping(config.opts.postgresql)[ + process.env.LAMASSU_DB === '' || !process.env.LAMASSU_DB + ? 'PROD' + : process.env.LAMASSU_DB + ]) + + config.opts.postgresql = dbMapping(config.opts.postgresql)[ + process.env.LAMASSU_DB === '' || !process.env.LAMASSU_DB + ? 'PROD' + : process.env.LAMASSU_DB + ] return config } catch (_) { From 59de9e268ec60c0050423a61636d6a59502f9e83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20Salgado?= Date: Tue, 26 Oct 2021 20:31:32 +0100 Subject: [PATCH 3/3] fix: clean up code --- .env.dev => .env.sample | 0 lib/options-loader.js | 21 ++++----------------- 2 files changed, 4 insertions(+), 17 deletions(-) rename .env.dev => .env.sample (100%) diff --git a/.env.dev b/.env.sample similarity index 100% rename from .env.dev rename to .env.sample diff --git a/lib/options-loader.js b/lib/options-loader.js index 100525d0..1b6f09d0 100644 --- a/lib/options-loader.js +++ b/lib/options-loader.js @@ -4,8 +4,9 @@ const os = require('os') const argv = require('minimist')(process.argv.slice(2)) const _ = require('lodash/fp') -require('dotenv').config({ path: `.env${process.env.NODE_ENV !== 'production' ? `.dev` : ``}` }) +require('dotenv').config() +const dbPath = !process.env.LAMASSU_DB ? 'PROD' : process.env.LAMASSU_DB const dbMapping = psqlConf => ({ STRESS_TEST: _.replace('lamassu', 'lamassu_stress', psqlConf), RELEASE: _.replace('lamassu', 'lamassu_release', psqlConf), @@ -40,11 +41,7 @@ function load () { opts: JSON.parse(fs.readFileSync(globalConfigPath)) } - config.opts.postgresql = dbMapping(config.opts.postgresql)[ - process.env.LAMASSU_DB === '' || !process.env.LAMASSU_DB - ? 'PROD' - : process.env.LAMASSU_DB - ] + config.opts.postgresql = dbMapping(config.opts.postgresql)[dbPath] return config } catch (_) { @@ -55,17 +52,7 @@ function load () { opts: JSON.parse(fs.readFileSync(homeConfigPath)) } - console.log('flag', dbMapping(config.opts.postgresql)[ - process.env.LAMASSU_DB === '' || !process.env.LAMASSU_DB - ? 'PROD' - : process.env.LAMASSU_DB - ]) - - config.opts.postgresql = dbMapping(config.opts.postgresql)[ - process.env.LAMASSU_DB === '' || !process.env.LAMASSU_DB - ? 'PROD' - : process.env.LAMASSU_DB - ] + config.opts.postgresql = dbMapping(config.opts.postgresql)[dbPath] return config } catch (_) {