Skip to content

Commit

Permalink
[discover] Clean up enhanced search API (#8226)
Browse files Browse the repository at this point in the history
* Clean up enhanced search API

* Deletes the connections service.
* Removes dataframe object being passed into request
* Deletes unused APIs

Signed-off-by: Kawika Avilla <[email protected]>

* Changeset file for PR #8226 created/updated

---------

Signed-off-by: Kawika Avilla <[email protected]>
Co-authored-by: opensearch-changeset-bot[bot] <154024398+opensearch-changeset-bot[bot]@users.noreply.github.com>
(cherry picked from commit 6296b4e)
Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
  • Loading branch information
1 parent a513a8c commit ecdbb00
Show file tree
Hide file tree
Showing 11 changed files with 42 additions and 226 deletions.
2 changes: 2 additions & 0 deletions changelogs/fragments/8226.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
fix:
- Remove unused enhancements APIs, clean up, and error handling ([#8226](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/8226))
2 changes: 1 addition & 1 deletion src/plugins/data/common/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ export const DEFAULT_DATA = {
} as DataStructure,
LOCAL_DATASOURCE: {
id: '',
title: 'Local Cluster',
title: 'Default Cluster',
type: 'DATA_SOURCE',
},
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,19 +53,16 @@ export function getExternalSearchParamsFromRequest(
searchRequest: SearchRequest,
dependencies: {
getConfig: GetConfigFn;
getDataFrame: GetDataFrameFn;
}
): ISearchRequestParams {
const { getConfig, getDataFrame } = dependencies;
const { getConfig } = dependencies;

Check warning on line 58 in src/plugins/data/common/search/search_source/fetch/get_search_params.ts

View check run for this annotation

Codecov / codecov/patch

src/plugins/data/common/search/search_source/fetch/get_search_params.ts#L58

Added line #L58 was not covered by tests
const searchParams = getSearchParams(getConfig);
const dataFrame = getDataFrame();
const indexTitle = searchRequest.index.title || searchRequest.index;

return {
index: indexTitle,
body: {
...searchRequest.body,
...(dataFrame && dataFrame?.name === indexTitle ? { df: dataFrame } : {}),
},
...searchParams,
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ export const indexTypeConfig: DatasetTypeConfig = {
const dataSources = await fetchDataSources(services.savedObjects.client);
return {
...dataStructure,
columnHeader: 'Cluster',
columnHeader: 'Clusters',
hasNext: true,
children: dataSources,
};
Expand Down
5 changes: 2 additions & 3 deletions src/plugins/query_enhancements/common/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,8 @@ export const API = {
GENERATE: `${BASE_API}/assist/generate`,
},
DATA_SOURCE: {
EXTERNAL: `${BASE_API}/datasource/external`,
ASYNC_JOBS: `${BASE_API}/datasource/jobs`,
CONNECTIONS: `${BASE_API}/datasource/connections`,
ASYNC_JOBS: `${BASE_API}/jobs`,
CONNECTIONS: `${BASE_API}/connections`,
},
};

Expand Down
29 changes: 22 additions & 7 deletions src/plugins/query_enhancements/public/datasets/s3_type.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
*/

import { HttpSetup, SavedObjectsClientContract } from 'opensearch-dashboards/public';
import { trimEnd } from 'lodash';
import {
DATA_STRUCTURE_META_TYPES,
DEFAULT_DATA,
Expand All @@ -14,7 +15,7 @@ import {
DatasetField,
} from '../../../data/common';
import { DatasetTypeConfig, IDataPluginServices } from '../../../data/public';
import { DATASET, handleQueryStatus } from '../../common';
import { API, DATASET, handleQueryStatus } from '../../common';
import S3_ICON from '../assets/s3_mark.svg';

export const s3TypeConfig: DatasetTypeConfig = {
Expand Down Expand Up @@ -115,7 +116,9 @@ const fetch = async (
try {
const response = await handleQueryStatus({
fetchStatus: () =>
http.fetch('../../api/enhancements/datasource/jobs', {
http.fetch({

Check warning on line 119 in src/plugins/query_enhancements/public/datasets/s3_type.ts

View check run for this annotation

Codecov / codecov/patch

src/plugins/query_enhancements/public/datasets/s3_type.ts#L119

Added line #L119 was not covered by tests
method: 'GET',
path: trimEnd(`${API.DATA_SOURCE.ASYNC_JOBS}`),
query: {
id: dataSource?.id,
queryId: meta.queryId,
Expand Down Expand Up @@ -171,9 +174,13 @@ const fetchConnections = async (
http: HttpSetup,
dataSource: DataStructure
): Promise<DataStructure[]> => {
const query = (dataSource.meta as DataStructureCustomMeta).query;
const response = await http.fetch(`../../api/enhancements/datasource/external`, {
query,
const abortController = new AbortController();
const query =
dataSource.id !== '' ? (dataSource.meta as DataStructureCustomMeta).query : undefined;
const response = await http.fetch({
method: 'GET',
path: trimEnd(`${API.DATA_SOURCE.CONNECTIONS}/${query?.id || ''}`),
signal: abortController.signal,
});

return response
Expand All @@ -190,10 +197,13 @@ const fetchConnections = async (
};

const fetchDatabases = async (http: HttpSetup, path: DataStructure[]): Promise<DataStructure[]> => {
const abortController = new AbortController();

Check warning on line 200 in src/plugins/query_enhancements/public/datasets/s3_type.ts

View check run for this annotation

Codecov / codecov/patch

src/plugins/query_enhancements/public/datasets/s3_type.ts#L200

Added line #L200 was not covered by tests
const dataSource = path.find((ds) => ds.type === 'DATA_SOURCE');
const connection = path[path.length - 1];
const meta = connection.meta as DataStructureCustomMeta;
const response = await http.post(`../../api/enhancements/datasource/jobs`, {
const response = await http.fetch({

Check warning on line 204 in src/plugins/query_enhancements/public/datasets/s3_type.ts

View check run for this annotation

Codecov / codecov/patch

src/plugins/query_enhancements/public/datasets/s3_type.ts#L204

Added line #L204 was not covered by tests
method: 'POST',
path: trimEnd(`${API.DATA_SOURCE.ASYNC_JOBS}`),
body: JSON.stringify({
lang: 'sql',
query: `SHOW DATABASES in ${connection.title}`,
Expand All @@ -203,6 +213,7 @@ const fetchDatabases = async (http: HttpSetup, path: DataStructure[]): Promise<D
query: {
id: dataSource?.id,
},
signal: abortController.signal,
});

connection.meta = setMeta(connection, response);
Expand All @@ -211,11 +222,14 @@ const fetchDatabases = async (http: HttpSetup, path: DataStructure[]): Promise<D
};

const fetchTables = async (http: HttpSetup, path: DataStructure[]): Promise<DataStructure[]> => {
const abortController = new AbortController();

Check warning on line 225 in src/plugins/query_enhancements/public/datasets/s3_type.ts

View check run for this annotation

Codecov / codecov/patch

src/plugins/query_enhancements/public/datasets/s3_type.ts#L225

Added line #L225 was not covered by tests
const dataSource = path.find((ds) => ds.type === 'DATA_SOURCE');
const connection = path.find((ds) => ds.type === 'CONNECTION');
const sessionId = (connection?.meta as DataStructureCustomMeta).sessionId;
const database = path[path.length - 1];
const response = await http.post(`../../api/enhancements/datasource/jobs`, {
const response = await http.fetch({

Check warning on line 230 in src/plugins/query_enhancements/public/datasets/s3_type.ts

View check run for this annotation

Codecov / codecov/patch

src/plugins/query_enhancements/public/datasets/s3_type.ts#L230

Added line #L230 was not covered by tests
method: 'POST',
path: trimEnd(`${API.DATA_SOURCE.ASYNC_JOBS}`),
body: JSON.stringify({
lang: 'sql',
query: `SHOW TABLES in ${database.title}`,
Expand All @@ -225,6 +239,7 @@ const fetchTables = async (http: HttpSetup, path: DataStructure[]): Promise<Data
query: {
id: dataSource?.id,
},
signal: abortController.signal,
});

database.meta = setMeta(database, response);
Expand Down

This file was deleted.

2 changes: 0 additions & 2 deletions src/plugins/query_enhancements/public/services/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,3 @@ import { createGetterSetter } from '../../../opensearch_dashboards_utils/common'

export const [getStorage, setStorage] = createGetterSetter<DataStorage>('storage');
export const [getData, setData] = createGetterSetter<DataPublicPluginStart>('data');

export { ConnectionsService } from './connections_service';
5 changes: 0 additions & 5 deletions src/plugins/query_enhancements/public/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,3 @@ export interface Connection {
auth?: any;
};
}

export interface ConnectionsServiceDeps {
http: CoreSetup['http'];
startServices: Promise<[CoreStart, QueryEnhancementsPluginStartDependencies, unknown]>;
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,62 +13,26 @@ export function registerDataSourceConnectionsRoutes(
) {
router.get(
{
path: API.DATA_SOURCE.CONNECTIONS,
validate: {
params: schema.object({}, { unknowns: 'allow' }),
},
},
async (context, request, response) => {
const fields = ['id', 'title', 'auth.type'];
const resp = await context.core.savedObjects.client.find({
type: 'data-source',
fields,
perPage: 10000,
});

return response.ok({ body: { savedObjects: resp.saved_objects } });
}
);

router.get(
{
path: `${API.DATA_SOURCE.CONNECTIONS}/{dataSourceId}`,
path: `${API.DATA_SOURCE.CONNECTIONS}/{id?}`,
validate: {
params: schema.object({
dataSourceId: schema.string(),
}),
},
},
async (context, request, response) => {
const resp = await context.core.savedObjects.client.get(
'data-source',
request.params.dataSourceId
);
return response.ok({ body: resp });
}
);

router.get(
{
path: `${API.DATA_SOURCE.EXTERNAL}`,
validate: {
query: schema.object({
id: schema.string(),
name: schema.nullable(schema.string()),
id: schema.maybe(schema.string()),
}),
},
},
async (context, request, response) => {
const client = request.query.id
? context.dataSource.opensearch.legacy.getClient(request.query.id).callAPI
const client = request.params.id
? context.dataSource.opensearch.legacy.getClient(request.params.id).callAPI
: defaultClient.asScoped(request).callAsCurrentUser;

const resp = request.query.name
? await client('enhancements.getDataConnectionById', {
dataconnection: request.query.name,
})
: await client('enhancements.getDataConnections');
return response.ok({ body: resp });
try {
const resp = await client('enhancements.getDataConnections');
return response.ok({ body: resp });
} catch (error) {
if (error.statusCode === 404 || error.statusCode === 400) {
return response.ok({ body: [] });
}
return response.custom({ statusCode: error.statusCode || 500, body: error.message });
}
}
);

Expand Down
Loading

0 comments on commit ecdbb00

Please sign in to comment.