From 476cffc2f793b424d68981aaaee9aa1f9fd958be Mon Sep 17 00:00:00 2001 From: Chang Liu Date: Sun, 14 Apr 2024 15:03:00 -0700 Subject: [PATCH] Validation succeed as long as status code in response is 200 (#6399) Signed-off-by: cliu123 --- CHANGELOG.md | 1 + .../data_source_connection_validator.test.ts | 30 ++++++++----------- .../data_source_connection_validator.ts | 2 +- 3 files changed, 15 insertions(+), 18 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bbcc7f0a9c96..17d4ec919e3d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -115,6 +115,7 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) - [BUG][Multiple Datasource]Fix bug in data source aggregated view to change it to depend on displayAllCompatibleDataSources property to show the badge value ([#6291](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/6291)) - [BUG][Multiple Datasource]Read hideLocalCluster setting from yml and set in data source selector and data source menu ([#6361](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/6361)) - [BUG] Fix for checkForFunctionProperty so that order does not matter ([#6248](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/6248)) +- [BUG][Multiple Datasource] Validation succeed as long as status code in response is 200 ([#6399](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/6399)) ### 🚞 Infrastructure diff --git a/src/plugins/data_source/server/routes/data_source_connection_validator.test.ts b/src/plugins/data_source/server/routes/data_source_connection_validator.test.ts index 0a2b39c15f45..129234d16ddc 100644 --- a/src/plugins/data_source/server/routes/data_source_connection_validator.test.ts +++ b/src/plugins/data_source/server/routes/data_source_connection_validator.test.ts @@ -165,24 +165,20 @@ describe('DataSourceManagement: data_source_connection_validator.ts', () => { expect(validateDataSourcesResponse.statusCode).toBe(200); }); - test('failure: opensearch client response code is 200 and response body is empty', async () => { - try { - const opensearchClient = opensearchServiceMock.createOpenSearchClient(); - opensearchClient.cat.indices.mockResolvedValue(opensearchServiceMock.createApiResponse()); - const dataSourceValidator = new DataSourceConnectionValidator(opensearchClient, { - auth: { - statusCode: 200, - body: '', - credentials: { - service: SigV4ServiceName.OpenSearchServerless, - }, + test('Success: opensearch client response code is 200 and response body is empty', async () => { + const opensearchClient = opensearchServiceMock.createOpenSearchClient(); + opensearchClient.cat.indices.mockResolvedValue(opensearchServiceMock.createApiResponse()); + const dataSourceValidator = new DataSourceConnectionValidator(opensearchClient, { + auth: { + statusCode: 200, + body: '', + credentials: { + service: SigV4ServiceName.OpenSearchServerless, }, - }); - const validateDataSourcesResponse = await dataSourceValidator.validate(); - expect(validateDataSourcesResponse.statusCode).toBe(200); - } catch (e) { - expect(e).toBeTruthy(); - } + }, + }); + const validateDataSourcesResponse = await dataSourceValidator.validate(); + expect(validateDataSourcesResponse.statusCode).toBe(200); }); test('failure: opensearch client response code is other than 200', async () => { diff --git a/src/plugins/data_source/server/routes/data_source_connection_validator.ts b/src/plugins/data_source/server/routes/data_source_connection_validator.ts index 0d94eaa9bb56..8e2e34014595 100644 --- a/src/plugins/data_source/server/routes/data_source_connection_validator.ts +++ b/src/plugins/data_source/server/routes/data_source_connection_validator.ts @@ -20,7 +20,7 @@ export class DataSourceConnectionValidator { this.dataSourceAttr.auth?.credentials?.service === SigV4ServiceName.OpenSearchServerless ) { validationResponse = await this.callDataCluster.cat.indices(); - if (validationResponse?.statusCode === 200 && validationResponse?.body) { + if (validationResponse?.statusCode === 200) { return validationResponse; } } else {