@cryptexlabs/codex-nodejs-common 0.3.1 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/package.json +5 -5
- package/lib/src/service/consumer/websocket-consumer.service.js +1 -0
- package/lib/src/service/consumer/websocket-consumer.service.js.map +1 -1
- package/lib/src/service/elasticsearch/elasticsearch-healthz.service.js +17 -23
- package/lib/src/service/elasticsearch/elasticsearch-healthz.service.js.map +1 -1
- package/lib/src/service/elasticsearch/elasticsearch.initializer.js +4 -7
- package/lib/src/service/elasticsearch/elasticsearch.initializer.js.map +1 -1
- package/lib/src/service/kafka/kafka.service.d.ts +1 -1
- package/lib/src/service/kafka/kafka.service.js +3 -8
- package/lib/src/service/kafka/kafka.service.js.map +1 -1
- package/package.json +5 -5
- package/src/service/consumer/websocket-consumer.service.ts +1 -1
- package/src/service/elasticsearch/elasticsearch-healthz.service.ts +20 -25
- package/src/service/elasticsearch/elasticsearch.initializer.ts +4 -6
- package/src/service/healthz/healthz.service.spec.ts +5 -5
- package/src/service/kafka/kafka.service.ts +3 -1
package/lib/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cryptexlabs/codex-nodejs-common",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.2",
|
|
4
4
|
"description": "Common code for Assistant applications",
|
|
5
5
|
"main": "lib/src/index.js",
|
|
6
6
|
"repository": "git@gitlab.com:cryptexlabs/public/codex-nodejs-common.git",
|
|
@@ -15,10 +15,10 @@
|
|
|
15
15
|
"@cryptexlabs/codex-data-model": "^0.1.3"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@elastic/elasticsearch": "^
|
|
18
|
+
"@elastic/elasticsearch": "^8.0.0",
|
|
19
19
|
"@nestjs/common": "^8.0.6",
|
|
20
20
|
"@nestjs/core": "^8.0.6",
|
|
21
|
-
"@nestjs/elasticsearch": "^8.
|
|
21
|
+
"@nestjs/elasticsearch": "^8.1.0",
|
|
22
22
|
"@nestjs/platform-socket.io": "^8.0.6",
|
|
23
23
|
"@nestjs/platform-ws": "^8.0.6",
|
|
24
24
|
"@nestjs/swagger": "^5.0.9",
|
|
@@ -51,12 +51,12 @@
|
|
|
51
51
|
"@types/supertest": "^2.0.10",
|
|
52
52
|
"@types/uuid": "^8.3.1",
|
|
53
53
|
"husky": "^4.3.6",
|
|
54
|
-
"jest": "^
|
|
54
|
+
"jest": "^28.1.0",
|
|
55
55
|
"nodemon": "^2.0.6",
|
|
56
56
|
"prettier": "^2.2.1",
|
|
57
57
|
"rimraf": "^3.0.2",
|
|
58
58
|
"supertest": "^6.0.1",
|
|
59
|
-
"ts-jest": "^
|
|
59
|
+
"ts-jest": "^28.0.2",
|
|
60
60
|
"ts-loader": "^8.0.12",
|
|
61
61
|
"ts-mockito": "^2.6.1",
|
|
62
62
|
"ts-node": "^9.1.1",
|
|
@@ -53,6 +53,7 @@ let WebsocketConsumerService = class WebsocketConsumerService {
|
|
|
53
53
|
};
|
|
54
54
|
WebsocketConsumerService = __decorate([
|
|
55
55
|
(0, common_1.Injectable)(),
|
|
56
|
+
__param(0, (0, common_1.Inject)("HEALTHZ_SERVICE")),
|
|
56
57
|
__param(1, (0, common_1.Inject)("CONSUMER_SERVICE_DELEGATE")),
|
|
57
58
|
__param(2, (0, common_1.Inject)("CONFIG")),
|
|
58
59
|
__param(3, (0, common_1.Inject)("LOGGER")),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket-consumer.service.js","sourceRoot":"","sources":["../../../../src/service/consumer/websocket-consumer.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAmE;AAGnE,yCAA6C;AAE7C,kCAAkC;AAClC,yBAAyB;AAEzB,6DAAyD;AACzD,mDAA+C;AAC/C,wCAAkE;AAIlE,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;AAG7C,IAAa,wBAAwB,GAArC,MAAa,wBAAwB;IAInC,
|
|
1
|
+
{"version":3,"file":"websocket-consumer.service.js","sourceRoot":"","sources":["../../../../src/service/consumer/websocket-consumer.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAmE;AAGnE,yCAA6C;AAE7C,kCAAkC;AAClC,yBAAyB;AAEzB,6DAAyD;AACzD,mDAA+C;AAC/C,wCAAkE;AAIlE,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;AAG7C,IAAa,wBAAwB,GAArC,MAAa,wBAAwB;IAInC,YAC8C,cAA8B,EAEzD,uBAAyD,EACvC,MAAqB,EACrB,MAAqB,EAEvC,eAA6C;QANlB,mBAAc,GAAd,cAAc,CAAgB;QAEzD,4BAAuB,GAAvB,uBAAuB,CAAkC;QACvC,WAAM,GAAN,MAAM,CAAe;QACrB,WAAM,GAAN,MAAM,CAAe;QAEvC,oBAAe,GAAf,eAAe,CAA8B;QAE9D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAC3B,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CACjC,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,4BAAY,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CACrC,8BAAoB,CAAC,oBAAoB,CAC1C,CAAC;QACF,MAAM,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CACnD,YAAY,CAAC,QAAQ,EAAE,CACxB,CAAC;QACF,MAAM,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,CAAC;QAC7C,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CACnC,8BAAoB,CAAC,oBAAoB,CAC1C,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAgB;QAC5B,IAAI;YACF,MAAM,IAAI,CAAC,uBAAuB,CAAC,YAAY,EAAE,CAAC;YAClD,MAAM,WAAW,GAAG,4BAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACnD,MAAM,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAC9C,WAAW,EACX,KAAK,EAAE,KAAa,EAAE,OAAgB,EAAE,EAAE;gBACxC,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBACvD,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YAC1D,CAAC,CACF,CAAC;SACH;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CACrC,8BAAoB,CAAC,oBAAoB,CAC1C,CAAC;SACH;IACH,CAAC;CACF,CAAA;AAjDY,wBAAwB;IADpC,IAAA,mBAAU,GAAE;IAMR,WAAA,IAAA,eAAM,EAAC,iBAAiB,CAAC,CAAA;IACzB,WAAA,IAAA,eAAM,EAAC,2BAA2B,CAAC,CAAA;IAEnC,WAAA,IAAA,eAAM,EAAC,QAAQ,CAAC,CAAA;IAChB,WAAA,IAAA,eAAM,EAAC,QAAQ,CAAC,CAAA;IAChB,WAAA,IAAA,eAAM,EAAC,uCAAuC,CAAC,CAAA;qCALY,wBAAc,UAG/B,sBAAa;GAR/C,wBAAwB,CAiDpC;AAjDY,4DAAwB"}
|
|
@@ -27,7 +27,7 @@ let ElasticsearchHealthzService = class ElasticsearchHealthzService {
|
|
|
27
27
|
}
|
|
28
28
|
async start() {
|
|
29
29
|
await this.healthzService.makeUnhealthy(healthz_1.HealthzComponentEnum.DATABASE_ELASTICSEARCH);
|
|
30
|
-
this._ping();
|
|
30
|
+
this._ping().then();
|
|
31
31
|
setInterval(() => {
|
|
32
32
|
this._ping();
|
|
33
33
|
}, this.config.elasticsearch.pingIntervalSeconds * 1000);
|
|
@@ -36,17 +36,12 @@ let ElasticsearchHealthzService = class ElasticsearchHealthzService {
|
|
|
36
36
|
this.logger.log("Waiting for elasticsearch connection", "info");
|
|
37
37
|
while (true) {
|
|
38
38
|
try {
|
|
39
|
-
await
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
await util_1.TimeUtil.sleep(1000);
|
|
46
|
-
reject();
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
});
|
|
39
|
+
const pingResponse = await this.elasticsearchService.ping();
|
|
40
|
+
if (!pingResponse) {
|
|
41
|
+
this.logger.debug("Elasticsearch not available", "debug");
|
|
42
|
+
await util_1.TimeUtil.sleep(1000);
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
50
45
|
this.logger.log("Elasticsearch service connected", "info");
|
|
51
46
|
await this.healthzService.makeHealthy(healthz_1.HealthzComponentEnum.DATABASE_ELASTICSEARCH);
|
|
52
47
|
return;
|
|
@@ -57,17 +52,16 @@ let ElasticsearchHealthzService = class ElasticsearchHealthzService {
|
|
|
57
52
|
}
|
|
58
53
|
}
|
|
59
54
|
}
|
|
60
|
-
_ping() {
|
|
61
|
-
this.elasticsearchService.ping(
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
});
|
|
55
|
+
async _ping() {
|
|
56
|
+
const success = await this.elasticsearchService.ping();
|
|
57
|
+
if (success) {
|
|
58
|
+
this.logger.debug("Elasticsearch service was successfully pinged");
|
|
59
|
+
await this.healthzService.makeHealthy(healthz_1.HealthzComponentEnum.DATABASE_ELASTICSEARCH);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
this.logger.error("Elasticsearch service could not be reached", "");
|
|
63
|
+
await this.healthzService.makeUnhealthy(healthz_1.HealthzComponentEnum.DATABASE_ELASTICSEARCH);
|
|
64
|
+
}
|
|
71
65
|
}
|
|
72
66
|
};
|
|
73
67
|
ElasticsearchHealthzService = __decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elasticsearch-healthz.service.js","sourceRoot":"","sources":["../../../../src/service/elasticsearch/elasticsearch-healthz.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAmE;AACnE,yCAA6C;AAC7C,yDAA6D;AAC7D,wCAAkE;AAClE,qCAAsC;AAGtC,IAAa,2BAA2B,GAAxC,MAAa,2BAA2B;IACtC,YACqC,MAAqB,EACrB,MAAqB,EAEvC,oBAA0C,EACf,cAA8B;QAJvC,WAAM,GAAN,MAAM,CAAe;QACrB,WAAM,GAAN,MAAM,CAAe;QAEvC,yBAAoB,GAApB,oBAAoB,CAAsB;QACf,mBAAc,GAAd,cAAc,CAAgB;IACzE,CAAC;IAEJ,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CACrC,8BAAoB,CAAC,sBAAsB,CAC5C,CAAC;QACF,IAAI,CAAC,KAAK,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"elasticsearch-healthz.service.js","sourceRoot":"","sources":["../../../../src/service/elasticsearch/elasticsearch-healthz.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAmE;AACnE,yCAA6C;AAC7C,yDAA6D;AAC7D,wCAAkE;AAClE,qCAAsC;AAGtC,IAAa,2BAA2B,GAAxC,MAAa,2BAA2B;IACtC,YACqC,MAAqB,EACrB,MAAqB,EAEvC,oBAA0C,EACf,cAA8B;QAJvC,WAAM,GAAN,MAAM,CAAe;QACrB,WAAM,GAAN,MAAM,CAAe;QAEvC,yBAAoB,GAApB,oBAAoB,CAAsB;QACf,mBAAc,GAAd,cAAc,CAAgB;IACzE,CAAC;IAEJ,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CACrC,8BAAoB,CAAC,sBAAsB,CAC5C,CAAC;QACF,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;QACpB,WAAW,CAAC,GAAG,EAAE;YACf,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,sCAAsC,EAAE,MAAM,CAAC,CAAC;QAChE,OAAO,IAAI,EAAE;YACX,IAAI;gBACF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;gBAC5D,IAAI,CAAC,YAAY,EAAE;oBACjB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,OAAO,CAAC,CAAC;oBAC1D,MAAM,eAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC3B,OAAO;iBACR;gBAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iCAAiC,EAAE,MAAM,CAAC,CAAC;gBAC3D,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CACnC,8BAAoB,CAAC,sBAAsB,CAC5C,CAAC;gBACF,OAAO;aACR;YAAC,OAAO,CAAC,EAAE;gBACV,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,OAAO,CAAC,CAAC;gBAC1D,MAAM,eAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAC5B;SACF;IACH,CAAC;IAEO,KAAK,CAAC,KAAK;QACjB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;QACvD,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;YACnE,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CACnC,8BAAoB,CAAC,sBAAsB,CAC5C,CAAC;SACH;aAAM;YACL,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4CAA4C,EAAE,EAAE,CAAC,CAAC;YACpE,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CACrC,8BAAoB,CAAC,sBAAsB,CAC5C,CAAC;SACH;IACH,CAAC;CACF,CAAA;AAxDY,2BAA2B;IADvC,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,eAAM,EAAC,QAAQ,CAAC,CAAA;IAChB,WAAA,IAAA,eAAM,EAAC,QAAQ,CAAC,CAAA;IAChB,WAAA,IAAA,eAAM,EAAC,uBAAuB,CAAC,CAAA;IAE/B,WAAA,IAAA,eAAM,EAAC,iBAAiB,CAAC,CAAA;qCAJiB,sBAAa,UAGjB,oCAAoB;QACC,wBAAc;GANjE,2BAA2B,CAwDvC;AAxDY,kEAA2B"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ElasticsearchInitializer = void 0;
|
|
4
|
-
const common_1 = require("@nestjs/common");
|
|
5
4
|
class ElasticsearchInitializer {
|
|
6
5
|
constructor(logger, index, elasticsearchService, indexProperties, type) {
|
|
7
6
|
this.logger = logger;
|
|
@@ -17,10 +16,9 @@ class ElasticsearchInitializer {
|
|
|
17
16
|
});
|
|
18
17
|
}
|
|
19
18
|
async _getIndexExists() {
|
|
20
|
-
|
|
19
|
+
return await this.elasticsearchService.indices.exists({
|
|
21
20
|
index: this.index,
|
|
22
21
|
});
|
|
23
|
-
return body;
|
|
24
22
|
}
|
|
25
23
|
async initializeIndex() {
|
|
26
24
|
await this._waitForReady();
|
|
@@ -48,11 +46,10 @@ class ElasticsearchInitializer {
|
|
|
48
46
|
}
|
|
49
47
|
}
|
|
50
48
|
async _isReady() {
|
|
51
|
-
return new Promise((resolve) => {
|
|
49
|
+
return new Promise(async (resolve) => {
|
|
52
50
|
try {
|
|
53
|
-
this.elasticsearchService.ping(
|
|
54
|
-
|
|
55
|
-
});
|
|
51
|
+
const result = await this.elasticsearchService.ping();
|
|
52
|
+
resolve(result);
|
|
56
53
|
}
|
|
57
54
|
catch (e) {
|
|
58
55
|
resolve(false);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elasticsearch.initializer.js","sourceRoot":"","sources":["../../../../src/service/elasticsearch/elasticsearch.initializer.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"elasticsearch.initializer.js","sourceRoot":"","sources":["../../../../src/service/elasticsearch/elasticsearch.initializer.ts"],"names":[],"mappings":";;;AAIA,MAAa,wBAAwB;IACnC,YACmB,MAAoB,EACpB,KAAa,EACb,oBAA0C,EAC1C,eAAoB,EACpB,IAAa;QAJb,WAAM,GAAN,MAAM,CAAc;QACpB,UAAK,GAAL,KAAK,CAAQ;QACb,yBAAoB,GAApB,oBAAoB,CAAsB;QAC1C,oBAAe,GAAf,eAAe,CAAK;QACpB,SAAI,GAAJ,IAAI,CAAS;IAC7B,CAAC;IAEI,KAAK,CAAC,YAAY;QACxB,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,MAAM,CAAC;YAC7C,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,EAAE;SACT,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,eAAe;QAC3B,OAAO,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,MAAM,CAAC;YACpD,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAE3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC5C,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;SAC3B;QAED,IAAI,MAAM,GAAQ;YAChB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE;gBACJ,UAAU,EAAE,IAAI,CAAC,eAAe;aACjC;SACF,CAAC;QACF,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,MAAM,mCACD,MAAM,KACT,IAAI,EAAE,IAAI,CAAC,IAAI,GAChB,CAAC;SACH;QACD,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE;YAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAC9C,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC5B,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IACD,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YACnC,IAAI;gBACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;gBACtD,OAAO,CAAC,MAAM,CAAC,CAAC;aACjB;YAAC,OAAO,CAAC,EAAE;gBACV,OAAO,CAAC,KAAK,CAAC,CAAC;aAChB;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AA/DD,4DA+DC"}
|
|
@@ -9,7 +9,7 @@ export declare class KafkaService implements ConsumerServiceDelegateInterface {
|
|
|
9
9
|
private _kafkaConsumer;
|
|
10
10
|
private _kafkaProducer;
|
|
11
11
|
private _kafkaAdmin;
|
|
12
|
-
constructor(config: DefaultConfig, logger: LoggerService);
|
|
12
|
+
constructor(config: DefaultConfig, logger: LoggerService, extraConfig?: any);
|
|
13
13
|
stopConsumer(): Promise<void>;
|
|
14
14
|
connect(): Promise<void>;
|
|
15
15
|
disconnect(): Promise<void>;
|
|
@@ -18,15 +18,10 @@ const kafkajs_1 = require("kafkajs");
|
|
|
18
18
|
const config_1 = require("../../config");
|
|
19
19
|
const kafka_logger_1 = require("./kafka.logger");
|
|
20
20
|
let KafkaService = class KafkaService {
|
|
21
|
-
constructor(config, logger) {
|
|
21
|
+
constructor(config, logger, extraConfig = {}) {
|
|
22
22
|
this.config = config;
|
|
23
23
|
this.logger = logger;
|
|
24
|
-
const kafkaClientConfig = {
|
|
25
|
-
clientId: config.clientId,
|
|
26
|
-
brokers: [config.kafka.endpoint],
|
|
27
|
-
sasl: undefined,
|
|
28
|
-
ssl: undefined,
|
|
29
|
-
};
|
|
24
|
+
const kafkaClientConfig = Object.assign({ clientId: config.clientId, brokers: [config.kafka.endpoint], sasl: undefined, ssl: undefined }, extraConfig);
|
|
30
25
|
if (config.kafka.username) {
|
|
31
26
|
kafkaClientConfig.sasl = {
|
|
32
27
|
mechanism: config.kafka.saslMechanism.toLowerCase(),
|
|
@@ -222,7 +217,7 @@ KafkaService = __decorate([
|
|
|
222
217
|
(0, common_1.Injectable)(),
|
|
223
218
|
__param(0, (0, common_1.Inject)("CONFIG")),
|
|
224
219
|
__param(1, (0, common_1.Inject)("LOGGER")),
|
|
225
|
-
__metadata("design:paramtypes", [config_1.DefaultConfig, Object])
|
|
220
|
+
__metadata("design:paramtypes", [config_1.DefaultConfig, Object, Object])
|
|
226
221
|
], KafkaService);
|
|
227
222
|
exports.KafkaService = KafkaService;
|
|
228
223
|
//# sourceMappingURL=kafka.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kafka.service.js","sourceRoot":"","sources":["../../../../src/service/kafka/kafka.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAmE;AACnE,qCASiB;AACjB,yCAA6C;AAE7C,iDAA6C;AAG7C,IAAa,YAAY,GAAzB,MAAa,YAAY;IAMvB,YACqC,MAAqB,EACrB,MAAqB;
|
|
1
|
+
{"version":3,"file":"kafka.service.js","sourceRoot":"","sources":["../../../../src/service/kafka/kafka.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAmE;AACnE,qCASiB;AACjB,yCAA6C;AAE7C,iDAA6C;AAG7C,IAAa,YAAY,GAAzB,MAAa,YAAY;IAMvB,YACqC,MAAqB,EACrB,MAAqB,EACxD,cAAmB,EAAE;QAFc,WAAM,GAAN,MAAM,CAAe;QACrB,WAAM,GAAN,MAAM,CAAe;QAGxD,MAAM,iBAAiB,mBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ,EACzB,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAChC,IAAI,EAAE,SAAS,EACf,GAAG,EAAE,SAAS,IACX,WAAW,CACf,CAAC;QAEF,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE;YACzB,iBAAiB,CAAC,IAAI,GAAG;gBACvB,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,WAAW,EAAmB;gBACpE,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ;gBAC/B,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ;aAChC,CAAC;YACF,iBAAiB,CAAC,GAAG,GAAG,IAAI,CAAC;SAC9B;QAED,MAAM,WAAW,GAAG,IAAI,0BAAW,CAAC,MAAM,CAAC,CAAC;QAE5C,IAAI,CAAC,MAAM,GAAG,IAAI,eAAK,iCAClB,iBAAiB,KACpB,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE;gBACvB,OAAO,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC3C,CAAC,IACD,CAAC;IACL,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IACnC,CAAC;IAEM,KAAK,CAAC,OAAO;QAClB,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;SACrC;QACD,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;SACrC;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACvC,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;IACnC,CAAC;IAEM,KAAK,CAAC,UAAU;QACrB,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;SACxC;QACD,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;SACxC;IACH,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,aAAqB;QACnD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;IACzE,CAAC;IAEM,KAAK,CAAC,kBAAkB;QAC7B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC/C,CAAC;IAEM,KAAK,CAAC,aAAa,CACxB,MAA2B,EAC3B,QAA4D;QAE5D,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC1B,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAC/D,CAAC;SACH;QACD,IAAI;YACF,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;SAC7B;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;SACvC;QAED,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAEtC,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;YAC5B,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;gBACnD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;oBACd,KAAK;oBACL,SAAS;oBACT,OAAO,EAAE;wBACP,GAAG,EAAE,OAAO,CAAC,GAAG;wBAChB,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE;qBAChC;iBACF,CAAC,CAAC;gBACH,MAAM,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACjC,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAC9B,MAA2B,EAC3B,QAA4D;QAE5D,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAE/B,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC1B,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAC9D,CAAC;SACH;QACD,IAAI;YACF,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAE5B,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAEtC,MAAM,OAAO,GAAG;gBACd,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;oBACtB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;wBACtB,WAAW,EAAE,KAAK,EAAE,cAAkC,EAAE,EAAE;4BACxD,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC;4BACrD,MAAM,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;wBACjC,CAAC;qBACF,CAAC,CAAC;gBACL,CAAC,CAAC;aACH,CAAC;YACF,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;SAC5B;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;SACvC;IACH,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,MAA2B;QAC1D,MAAM,YAAY,GAAG,EAAE,CAAC;QACxB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBAC7B,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC1B;SACF;QAED,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;QAC1D,MAAM,YAAY,GAAmB,EAAE,CAAC;QACxC,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE;YAChC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBAClC,MAAM,WAAW,GAAiB;oBAChC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB;oBAClD,KAAK;iBACN,CAAC;gBACF,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aAChC;SACF;QAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3B,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;gBAClC,cAAc,EAAE,IAAI;gBACpB,MAAM,EAAE,YAAY;aACrB,CAAC,CAAC;SACJ;IACH,CAAC;IAGM,KAAK,CAAC,OAAO,CAAC,KAAa,EAAE,OAAY;QAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,IAAI,aAAa,KAAK,EAAE,CAAC,CAAC;QACzE,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;YAC7B,KAAK;YACL,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;SAC5B,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,KAAa,EAAE,QAAe;QACrD,MAAM,QAAQ,GAAG,EAAE,CAAC;QAEpB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;SAC/D;QAED,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;YAC7B,KAAK;YACL,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,iBAAiB;QAoB7B,IAAI,uBAAuB,GAAG,EAAE,CAAC;QACjC,IAAI,CAAC,cAAc,CAAC,EAAE,CACpB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,EACrC,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;YACpB,MAAM,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC;YAErC,uBAAuB,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAC/D,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,EAAE;gBAC9B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;oBAClC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,KAAK,IAAI,SAAS,EAAE,CAAC,CAAC;oBAChE,MAAM,CAAC,GAAG,KAAK,IAAI,SAAS,EAAE,CAAC,GAAG,KAAK,CAAC;iBACzC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC,EACD,EAAE,CACH,CAAC;QACJ,CAAC,CACF,CAAC;QAYF,IAAI,cAAc,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE;YACxE,IAAI,cAAc,KAAK,KAAK,EAAE;gBAC5B,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;gBACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACjB;YAED,cAAc,GAAG,KAAK,CAAC;QACzB,CAAC,CAAC,CAAC;QAMH,IAAI,CAAC,cAAc,CAAC,EAAE,CACpB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,iBAAiB,EAC5C,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;YACpB,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;YAEhD,uBAAuB,CAAC,GAAG,KAAK,IAAI,SAAS,EAAE,CAAC,GAAG,SAAS,KAAK,GAAG,CAAC;YAErE,IACE,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,CACxD,OAAO,CAAC,QAAQ,CAAC,CAClB,EACD;gBACA,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;gBACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACjB;YAED,cAAc,GAAG,IAAI,CAAC;QACxB,CAAC,CACF,CAAC;QAGF,MAAM,UAAU,GAAG,CAAC,oBAAoB,EAAE,mBAAmB,CAAC,CAAC;QAC/D,MAAM,WAAW,GAAqB,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QAEvE,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACtB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;gBAC3B,IAAI;oBACF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;oBACxC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBACrB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;oBACxB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBACjB;gBAAC,OAAO,CAAC,EAAE;oBACV,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBACjB;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACvB,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;gBAC5B,IAAI;oBACF,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;iBACzB;wBAAS;oBACR,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;iBACjC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AA1SY,YAAY;IADxB,IAAA,mBAAU,GAAE;IAQR,WAAA,IAAA,eAAM,EAAC,QAAQ,CAAC,CAAA;IAChB,WAAA,IAAA,eAAM,EAAC,QAAQ,CAAC,CAAA;qCAD0B,sBAAa;GAP/C,YAAY,CA0SxB;AA1SY,oCAAY"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cryptexlabs/codex-nodejs-common",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.2",
|
|
4
4
|
"description": "Common code for Assistant applications",
|
|
5
5
|
"main": "lib/src/index.js",
|
|
6
6
|
"repository": "git@gitlab.com:cryptexlabs/public/codex-nodejs-common.git",
|
|
@@ -15,10 +15,10 @@
|
|
|
15
15
|
"@cryptexlabs/codex-data-model": "^0.1.3"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@elastic/elasticsearch": "^
|
|
18
|
+
"@elastic/elasticsearch": "^8.0.0",
|
|
19
19
|
"@nestjs/common": "^8.0.6",
|
|
20
20
|
"@nestjs/core": "^8.0.6",
|
|
21
|
-
"@nestjs/elasticsearch": "^8.
|
|
21
|
+
"@nestjs/elasticsearch": "^8.1.0",
|
|
22
22
|
"@nestjs/platform-socket.io": "^8.0.6",
|
|
23
23
|
"@nestjs/platform-ws": "^8.0.6",
|
|
24
24
|
"@nestjs/swagger": "^5.0.9",
|
|
@@ -51,12 +51,12 @@
|
|
|
51
51
|
"@types/supertest": "^2.0.10",
|
|
52
52
|
"@types/uuid": "^8.3.1",
|
|
53
53
|
"husky": "^4.3.6",
|
|
54
|
-
"jest": "^
|
|
54
|
+
"jest": "^28.1.0",
|
|
55
55
|
"nodemon": "^2.0.6",
|
|
56
56
|
"prettier": "^2.2.1",
|
|
57
57
|
"rimraf": "^3.0.2",
|
|
58
58
|
"supertest": "^6.0.1",
|
|
59
|
-
"ts-jest": "^
|
|
59
|
+
"ts-jest": "^28.0.2",
|
|
60
60
|
"ts-loader": "^8.0.12",
|
|
61
61
|
"ts-mockito": "^2.6.1",
|
|
62
62
|
"ts-node": "^9.1.1",
|
|
@@ -20,7 +20,7 @@ export class WebsocketConsumerService {
|
|
|
20
20
|
private eventHandler: EventHandler;
|
|
21
21
|
|
|
22
22
|
constructor(
|
|
23
|
-
private readonly healthzService: HealthzService,
|
|
23
|
+
@Inject("HEALTHZ_SERVICE") private readonly healthzService: HealthzService,
|
|
24
24
|
@Inject("CONSUMER_SERVICE_DELEGATE")
|
|
25
25
|
private readonly consumerDelegateService: ConsumerServiceDelegateInterface,
|
|
26
26
|
@Inject("CONFIG") private readonly config: DefaultConfig,
|
|
@@ -18,7 +18,7 @@ export class ElasticsearchHealthzService {
|
|
|
18
18
|
await this.healthzService.makeUnhealthy(
|
|
19
19
|
HealthzComponentEnum.DATABASE_ELASTICSEARCH
|
|
20
20
|
);
|
|
21
|
-
this._ping();
|
|
21
|
+
this._ping().then();
|
|
22
22
|
setInterval(() => {
|
|
23
23
|
this._ping();
|
|
24
24
|
}, this.config.elasticsearch.pingIntervalSeconds * 1000);
|
|
@@ -28,16 +28,12 @@ export class ElasticsearchHealthzService {
|
|
|
28
28
|
this.logger.log("Waiting for elasticsearch connection", "info");
|
|
29
29
|
while (true) {
|
|
30
30
|
try {
|
|
31
|
-
await
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
reject();
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
});
|
|
31
|
+
const pingResponse = await this.elasticsearchService.ping();
|
|
32
|
+
if (!pingResponse) {
|
|
33
|
+
this.logger.debug("Elasticsearch not available", "debug");
|
|
34
|
+
await TimeUtil.sleep(1000);
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
41
37
|
|
|
42
38
|
this.logger.log("Elasticsearch service connected", "info");
|
|
43
39
|
await this.healthzService.makeHealthy(
|
|
@@ -51,19 +47,18 @@ export class ElasticsearchHealthzService {
|
|
|
51
47
|
}
|
|
52
48
|
}
|
|
53
49
|
|
|
54
|
-
private _ping() {
|
|
55
|
-
this.elasticsearchService.ping(
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
});
|
|
50
|
+
private async _ping() {
|
|
51
|
+
const success = await this.elasticsearchService.ping();
|
|
52
|
+
if (success) {
|
|
53
|
+
this.logger.debug("Elasticsearch service was successfully pinged");
|
|
54
|
+
await this.healthzService.makeHealthy(
|
|
55
|
+
HealthzComponentEnum.DATABASE_ELASTICSEARCH
|
|
56
|
+
);
|
|
57
|
+
} else {
|
|
58
|
+
this.logger.error("Elasticsearch service could not be reached", "");
|
|
59
|
+
await this.healthzService.makeUnhealthy(
|
|
60
|
+
HealthzComponentEnum.DATABASE_ELASTICSEARCH
|
|
61
|
+
);
|
|
62
|
+
}
|
|
68
63
|
}
|
|
69
64
|
}
|
|
@@ -19,10 +19,9 @@ export class ElasticsearchInitializer {
|
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
private async _getIndexExists() {
|
|
22
|
-
|
|
22
|
+
return await this.elasticsearchService.indices.exists({
|
|
23
23
|
index: this.index,
|
|
24
24
|
});
|
|
25
|
-
return body;
|
|
26
25
|
}
|
|
27
26
|
|
|
28
27
|
async initializeIndex() {
|
|
@@ -57,11 +56,10 @@ export class ElasticsearchInitializer {
|
|
|
57
56
|
}
|
|
58
57
|
}
|
|
59
58
|
async _isReady(): Promise<boolean> {
|
|
60
|
-
return new Promise((resolve) => {
|
|
59
|
+
return new Promise(async (resolve) => {
|
|
61
60
|
try {
|
|
62
|
-
this.elasticsearchService.ping(
|
|
63
|
-
|
|
64
|
-
});
|
|
61
|
+
const result = await this.elasticsearchService.ping();
|
|
62
|
+
resolve(result);
|
|
65
63
|
} catch (e) {
|
|
66
64
|
resolve(false);
|
|
67
65
|
}
|
|
@@ -20,7 +20,7 @@ import { HealthzService } from "./healthz.service";
|
|
|
20
20
|
import { DefaultConfig } from "../../config";
|
|
21
21
|
import { instance, mock, when } from "ts-mockito";
|
|
22
22
|
import { unlink, writeFile } from "fs";
|
|
23
|
-
import { mocked } from "
|
|
23
|
+
import { mocked } from "jest-mock";
|
|
24
24
|
|
|
25
25
|
describe("HealthzService", () => {
|
|
26
26
|
let service: HealthzService;
|
|
@@ -61,7 +61,7 @@ describe("HealthzService", () => {
|
|
|
61
61
|
|
|
62
62
|
it("Should delete healthz file when made unhealthy and file exists", async () => {
|
|
63
63
|
await service.makeHealthy(HealthzComponentEnum.DATABASE_ELASTICSEARCH);
|
|
64
|
-
const mockedUnlink = mocked(unlink, true);
|
|
64
|
+
const mockedUnlink = await mocked(unlink, true);
|
|
65
65
|
when(MockedConfig.healthzFilePath).thenReturn("/tmp/noexist");
|
|
66
66
|
expect(mockedUnlink.mock.calls.length).toBe(0);
|
|
67
67
|
await service.makeUnhealthy(HealthzComponentEnum.DATABASE_ELASTICSEARCH);
|
|
@@ -70,14 +70,14 @@ describe("HealthzService", () => {
|
|
|
70
70
|
|
|
71
71
|
it("Should delete healthz file when made unhealthy and file does not exist", async () => {
|
|
72
72
|
await service.makeHealthy(HealthzComponentEnum.DATABASE_ELASTICSEARCH);
|
|
73
|
-
const mockedUnlink = mocked(unlink, true);
|
|
73
|
+
const mockedUnlink = await mocked(unlink, true);
|
|
74
74
|
expect(mockedUnlink.mock.calls.length).toBe(0);
|
|
75
75
|
await service.makeUnhealthy(HealthzComponentEnum.DATABASE_ELASTICSEARCH);
|
|
76
76
|
expect(mockedUnlink.mock.calls.length).toBe(0);
|
|
77
77
|
});
|
|
78
78
|
|
|
79
79
|
it("Should create healthz file when all components are made healthy", async () => {
|
|
80
|
-
const mockedWriteFile = mocked(writeFile, true);
|
|
80
|
+
const mockedWriteFile = await mocked(writeFile, true);
|
|
81
81
|
|
|
82
82
|
// Make both components unhealthy
|
|
83
83
|
await service.makeUnhealthy(HealthzComponentEnum.DATABASE_ELASTICSEARCH);
|
|
@@ -95,7 +95,7 @@ describe("HealthzService", () => {
|
|
|
95
95
|
});
|
|
96
96
|
|
|
97
97
|
it("Should not create healthz file when file already is created", async () => {
|
|
98
|
-
const mockedWriteFile = mocked(writeFile, true);
|
|
98
|
+
const mockedWriteFile = await mocked(writeFile, true);
|
|
99
99
|
|
|
100
100
|
await service.makeHealthy(HealthzComponentEnum.DATABASE_ELASTICSEARCH);
|
|
101
101
|
|
|
@@ -22,13 +22,15 @@ export class KafkaService implements ConsumerServiceDelegateInterface {
|
|
|
22
22
|
|
|
23
23
|
constructor(
|
|
24
24
|
@Inject("CONFIG") private readonly config: DefaultConfig,
|
|
25
|
-
@Inject("LOGGER") private readonly logger: LoggerService
|
|
25
|
+
@Inject("LOGGER") private readonly logger: LoggerService,
|
|
26
|
+
extraConfig: any = {}
|
|
26
27
|
) {
|
|
27
28
|
const kafkaClientConfig = {
|
|
28
29
|
clientId: config.clientId,
|
|
29
30
|
brokers: [config.kafka.endpoint],
|
|
30
31
|
sasl: undefined,
|
|
31
32
|
ssl: undefined,
|
|
33
|
+
...extraConfig,
|
|
32
34
|
};
|
|
33
35
|
|
|
34
36
|
if (config.kafka.username) {
|