From 1ffdeab4485ecaf7e9e948dce4cb88653199d6f4 Mon Sep 17 00:00:00 2001 From: Franco Charriol Date: Wed, 3 Nov 2021 14:58:30 -0300 Subject: [PATCH 1/3] fix: set kibana settings get conflict --- .../services/check-kibana-settings.service.ts | 39 ++++++++++--------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/public/components/health-check/services/check-kibana-settings.service.ts b/public/components/health-check/services/check-kibana-settings.service.ts index 136cf111a4..b740e6f721 100644 --- a/public/components/health-check/services/check-kibana-settings.service.ts +++ b/public/components/health-check/services/check-kibana-settings.service.ts @@ -12,39 +12,40 @@ * */ -import { AxiosResponse } from 'axios'; -import { GenericRequest } from '../../../react-services'; import { CheckLogger } from '../types/check_logger'; import _ from 'lodash'; - -type userValue = { userValue: T }; - -type kbnSettings = { - buildNum: userValue; - maxBuckets?: userValue; - metaFields?: userValue; - timeFilter?: userValue; -}; - -type responseKbnSettings = { settings: kbnSettings }; +import { getUiSettings } from '../../../kibana-services'; export const checkKibanaSettings = (kibanaSettingName: string, defaultAppValue: any, callback?: (checkLogger: CheckLogger, options: {defaultAppValue: any}) => void) => (appConfig: any) => async (checkLogger: CheckLogger) => { checkLogger.info('Getting settings...'); - const kibanaSettingsResponse: AxiosResponse = await GenericRequest.request('GET', '/api/kibana/settings'); - checkLogger.info('Got Kibana settings'); - const valueKibanaSetting = kibanaSettingsResponse.data?.settings?.[kibanaSettingName]?.userValue; - const settingsAreDifferent = !_.isEqual(valueKibanaSetting, defaultAppValue); + const valueKibanaSetting = getUiSettings().get(kibanaSettingName); + const settingsAreDifferent = !_.isEqual( + typeof defaultAppValue === 'string' ? stringifySetting(valueKibanaSetting) : valueKibanaSetting, + defaultAppValue + ); checkLogger.info(`Check Kibana setting [${kibanaSettingName}]: ${stringifySetting(valueKibanaSetting)}`); checkLogger.info(`App setting [${kibanaSettingName}]: ${stringifySetting(defaultAppValue)}`); checkLogger.info(`Settings mismatch [${kibanaSettingName}]: ${settingsAreDifferent ? 'yes' : 'no'}`); - if ( !valueKibanaSetting && settingsAreDifferent ){ + if ( !valueKibanaSetting || settingsAreDifferent ){ checkLogger.info(`Updating [${kibanaSettingName}] setting...`); - await GenericRequest.request('POST', '/api/kibana/settings', { changes: { [kibanaSettingName]: defaultAppValue } }); + await updateSetting(kibanaSettingName, defaultAppValue); checkLogger.action(`Updated [${kibanaSettingName}] setting to: ${stringifySetting(defaultAppValue)}`); callback && callback(checkLogger,{ defaultAppValue }); } } +async function updateSetting(kibanaSettingName, defaultAppValue, retries = 3) { + return await getUiSettings() + .set(kibanaSettingName, null) + .catch(async (error) => { + if (retries > 0) { + console.log("retry", retries) + return await updateSetting(kibanaSettingName, defaultAppValue, --retries); + } + throw error; + }); +} + function stringifySetting(setting: any){ try{ return JSON.stringify(setting); From 601b50d6641b4719c3baeaf7025ef6e181275d92 Mon Sep 17 00:00:00 2001 From: Franco Charriol Date: Wed, 3 Nov 2021 15:02:49 -0300 Subject: [PATCH 2/3] doc: add changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0e6b296528..d3e2e8b165 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ All notable changes to the Wazuh app project will be documented in this file. - Fixed interative register windows agent screen error [#3654](https://github.com/wazuh/wazuh-kibana-app/pull/3654) - Fixed breadcrumbs style compatibility for Kibana 7.14.2 [#3668](https://github.com/wazuh/wazuh-kibana-app/pull/3668) - Fixed Wazuh token is not removed after logout in Kibana 7.13 [#3670](https://github.com/wazuh/wazuh-kibana-app/pull/3670) +- Fixed error conflict setting kibana settings from the health check [#3678](https://github.com/wazuh/wazuh-kibana-app/pull/3678) ## Wazuh v4.2.4 - Kibana 7.10.2, 7.11.2, 7.12.1 - Revision 4205 From c6b3aeb92c776d6394cc6d53b2a4636c1894d588 Mon Sep 17 00:00:00 2001 From: Franco Charriol Date: Thu, 4 Nov 2021 14:18:34 -0300 Subject: [PATCH 3/3] fix: remove console.log --- .../health-check/services/check-kibana-settings.service.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/public/components/health-check/services/check-kibana-settings.service.ts b/public/components/health-check/services/check-kibana-settings.service.ts index b740e6f721..b26026e62f 100644 --- a/public/components/health-check/services/check-kibana-settings.service.ts +++ b/public/components/health-check/services/check-kibana-settings.service.ts @@ -39,7 +39,6 @@ async function updateSetting(kibanaSettingName, defaultAppValue, retries = 3) { .set(kibanaSettingName, null) .catch(async (error) => { if (retries > 0) { - console.log("retry", retries) return await updateSetting(kibanaSettingName, defaultAppValue, --retries); } throw error; @@ -52,4 +51,4 @@ function stringifySetting(setting: any){ }catch(error){ return setting; }; -}; \ No newline at end of file +};