From aef175f5d7d25d80c1c8044e9cab305963cadd09 Mon Sep 17 00:00:00 2001 From: Muhammed Hussein Karimi Date: Tue, 27 Jun 2023 18:50:02 +0330 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat:=20done=20with=20`elasticSearc?= =?UTF-8?q?hQueryAsync`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Muhammed Hussein Karimi --- server/util-server.js | 49 +++++++++++++++++++++++++++---------------- 1 file changed, 31 insertions(+), 18 deletions(-) diff --git a/server/util-server.js b/server/util-server.js index 7d7f3dced..db5049ab7 100644 --- a/server/util-server.js +++ b/server/util-server.js @@ -132,35 +132,48 @@ exports.pingAsync = function (hostname, ipv6 = false, size = 56) { }); }; -exports.elasticSearchQueryAsync = function (version, nodes, headers, index, query) { +exports.elasticSearchQueryAsync = function (version, nodes, headers, index, query, options) { return new Promise((resolve, reject) => { + const { interval = 20, ssl = true } = options; + + const timeoutID = setTimeout(() => { + log.debug("elasticSearchQuery", "ElasticSearchQuery timeout triggered"); + reject(new Error("Timeout")); + }, interval * 1000 * 0.8); + + const opts = { + headers: headers, + nodes: nodes, + ssl: { + rejectUnauthorized: ssl !== false, + }, + }; + let client; switch (version) { case 6: - client = new esClient6({ - headers: headers, - nodes: nodes, - }); + client = new esClient6(opts); break; case 7: - client = new esClient7({ - headers: headers, - nodes: nodes, - }); + client = new esClient7(opts); break; case 8: - client = new esClient8({ - headers: headers, - nodes: nodes, - }); + client = new esClient8(opts); break; default: - throw new Error("Invalid Elasticsearch version"); + throw new Error("Elasticsearch version is not valid"); + } + try { + client.search({ + index: index, + query: query, + }); + clearTimeout(timeoutID); + resolve("Successfully ran query"); + } catch (e) { + clearTimeout(timeoutID); + reject(new Error("Error querying data: " + e.message)); } - client.search({ - index: index, - query: query, - }); }); };