From 354818b974e6472681f9a33361a76de5867e47a6 Mon Sep 17 00:00:00 2001 From: Hoan Luu Huu <110280845+xquanluu@users.noreply.github.com> Date: Wed, 7 Jun 2023 21:40:31 +0700 Subject: [PATCH] feat: sentinel configuraiton (#372) * feat: sentinel configuraiton * fixed * fix jslint --- lib/config.js | 29 ++++++++++++++++++++++++++++- lib/utils/install-srf-locals.js | 5 +++-- package-lock.json | 14 +++++++------- package.json | 2 +- 4 files changed, 39 insertions(+), 11 deletions(-) diff --git a/lib/config.js b/lib/config.js index 268eab83..54458944 100644 --- a/lib/config.js +++ b/lib/config.js @@ -8,7 +8,12 @@ const checkEnvs = () => { assert.ok(process.env.DRACHTIO_PORT || process.env.DRACHTIO_HOST, 'missing DRACHTIO_PORT env var'); assert.ok(process.env.DRACHTIO_SECRET, 'missing DRACHTIO_SECRET env var'); assert.ok(process.env.JAMBONES_FREESWITCH, 'missing JAMBONES_FREESWITCH env var'); - assert.ok(process.env.JAMBONES_REDIS_HOST, 'missing JAMBONES_REDIS_HOST env var'); + if (process.env.JAMBONES_REDIS_SENTINELS) { + assert.ok(process.env.JAMBONES_REDIS_SENTINEL_MASTER_NAME, + 'missing JAMBONES_REDIS_SENTINEL_MASTER_NAME env var, JAMBONES_REDIS_SENTINEL_PASSWORD env var is optional'); + } else { + assert.ok(process.env.JAMBONES_REDIS_HOST, 'missing JAMBONES_REDIS_HOST env var'); + } assert.ok(process.env.JAMBONES_NETWORK_CIDR || process.env.K8S, 'missing JAMBONES_SUBNET env var'); }; @@ -119,6 +124,27 @@ const HTTP_TIMEOUT = 10000; const OPTIONS_PING_INTERVAL = parseInt(process.env.OPTIONS_PING_INTERVAL, 10) || 30000; +const JAMBONES_REDIS_SENTINELS = process.env.JAMBONES_REDIS_SENTINELS ? { + sentinels: process.env.JAMBONES_REDIS_SENTINELS.split(',').map((sentinel) => { + let host, port = 26379; + if (sentinel.includes(':')) { + const arr = sentinel.split(':'); + host = arr[0]; + port = parseInt(arr[1], 10); + } else { + host = sentinel; + } + return {host, port}; + }), + name: process.env.JAMBONES_REDIS_SENTINEL_MASTER_NAME, + ...(process.env.JAMBONES_REDIS_SENTINEL_PASSWORD && { + password: process.env.JAMBONES_REDIS_SENTINEL_PASSWORD + }), + ...(process.env.JAMBONES_REDIS_SENTINEL_USERNAME && { + username: process.env.JAMBONES_REDIS_SENTINEL_USERNAME + }) +} : null; + module.exports = { JAMBONES_MYSQL_HOST, JAMBONES_MYSQL_USER, @@ -138,6 +164,7 @@ module.exports = { JAMBONES_FREESWITCH, JAMBONES_REDIS_HOST, JAMBONES_REDIS_PORT, + JAMBONES_REDIS_SENTINELS, SMPP_URL, JAMBONES_NETWORK_CIDR, JAMBONES_API_BASE_URL, diff --git a/lib/utils/install-srf-locals.js b/lib/utils/install-srf-locals.js index 3b7c72a9..95eadbb3 100644 --- a/lib/utils/install-srf-locals.js +++ b/lib/utils/install-srf-locals.js @@ -10,6 +10,7 @@ const { JAMBONES_FREESWITCH, JAMBONES_REDIS_HOST, JAMBONES_REDIS_PORT, + JAMBONES_REDIS_SENTINELS, SMPP_URL, JAMBONES_TIME_SERIES_HOST, JAMBONES_ESL_LISTEN_ADDRESS, @@ -172,7 +173,7 @@ function installSrfLocals(srf, logger) { retrieveByPatternSortedSet, sortedSetLength, sortedSetPositionByPattern - } = require('@jambonz/realtimedb-helpers')({ + } = require('@jambonz/realtimedb-helpers')(JAMBONES_REDIS_SENTINELS || { host: JAMBONES_REDIS_HOST, port: JAMBONES_REDIS_PORT || 6379 }, logger, tracer); @@ -180,7 +181,7 @@ function installSrfLocals(srf, logger) { synthAudio, getNuanceAccessToken, getIbmAccessToken, - } = require('@jambonz/speech-utils')({ + } = require('@jambonz/speech-utils')(JAMBONES_REDIS_SENTINELS || { host: JAMBONES_REDIS_HOST, port: JAMBONES_REDIS_PORT || 6379 }, logger, tracer); diff --git a/package-lock.json b/package-lock.json index 81ea77ca..f874034a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "@jambonz/db-helpers": "^0.9.0", "@jambonz/http-health-check": "^0.0.1", - "@jambonz/realtimedb-helpers": "^0.8.1", + "@jambonz/realtimedb-helpers": "^0.8.6", "@jambonz/speech-utils": "^0.0.15", "@jambonz/stats-collector": "^0.1.8", "@jambonz/time-series": "^0.2.5", @@ -1623,9 +1623,9 @@ } }, "node_modules/@jambonz/realtimedb-helpers": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/@jambonz/realtimedb-helpers/-/realtimedb-helpers-0.8.2.tgz", - "integrity": "sha512-v7zlJ9D3gFIegqoLXdrIqDYMPsZbyZGW/Y8NBImmZ9mC6QrId9fVi5705/04g9SK870C/IadrGNiFPYVmn8JwA==", + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/@jambonz/realtimedb-helpers/-/realtimedb-helpers-0.8.6.tgz", + "integrity": "sha512-ODKVVat2VAQheY13DjiAxiBBOmffMoeu3xviTjsTODr3ySZkqQZvSWU7N80pAIZvoiWG1UUEy9yI8D8mE4Jgiw==", "dependencies": { "debug": "^4.3.4", "ioredis": "^5.3.2" @@ -10085,9 +10085,9 @@ } }, "@jambonz/realtimedb-helpers": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/@jambonz/realtimedb-helpers/-/realtimedb-helpers-0.8.2.tgz", - "integrity": "sha512-v7zlJ9D3gFIegqoLXdrIqDYMPsZbyZGW/Y8NBImmZ9mC6QrId9fVi5705/04g9SK870C/IadrGNiFPYVmn8JwA==", + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/@jambonz/realtimedb-helpers/-/realtimedb-helpers-0.8.6.tgz", + "integrity": "sha512-ODKVVat2VAQheY13DjiAxiBBOmffMoeu3xviTjsTODr3ySZkqQZvSWU7N80pAIZvoiWG1UUEy9yI8D8mE4Jgiw==", "requires": { "debug": "^4.3.4", "ioredis": "^5.3.2" diff --git a/package.json b/package.json index c654d497..88c5af51 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "dependencies": { "@jambonz/db-helpers": "^0.9.0", "@jambonz/http-health-check": "^0.0.1", - "@jambonz/realtimedb-helpers": "^0.8.1", + "@jambonz/realtimedb-helpers": "^0.8.6", "@jambonz/speech-utils": "^0.0.15", "@jambonz/stats-collector": "^0.1.8", "@jambonz/time-series": "^0.2.5",