Skip to content

Commit fdf2808

Browse files
added fix for jobs and cache Support for workbench ,MDS support (#1739) (#1784)
* cacahe updated to support MDS-client and added MDS support * addressed PR comments, added fix for jobs and cache * updated the tests, PR comments * addressed comments, fixed loading of flint datasources * added fix for cache and cahnged router * fixed linter --------- (cherry picked from commit 868ddcb) Signed-off-by: sumukhswamy <[email protected]> Signed-off-by: Sumukh Swamy <[email protected]> Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
1 parent 8e1e7d7 commit fdf2808

File tree

26 files changed

+485
-222
lines changed

26 files changed

+485
-222
lines changed

common/types/data_connections.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ export interface CachedDataSource {
121121
lastUpdated: string; // date string in UTC format
122122
status: CachedDataSourceStatus;
123123
databases: CachedDatabase[];
124+
dataSourceMDSId?: string;
124125
}
125126

126127
export interface DataSourceCacheData {
@@ -143,6 +144,7 @@ export interface CachedAccelerationByDataSource {
143144
accelerations: CachedAcceleration[];
144145
lastUpdated: string; // date string in UTC format
145146
status: CachedDataSourceStatus;
147+
dataSourceMDSId?: string;
146148
}
147149

148150
export interface AccelerationsCacheData {
@@ -240,6 +242,13 @@ export interface CreateAccelerationForm {
240242

241243
export interface LoadCachehookOutput {
242244
loadStatus: DirectQueryLoadingStatus;
243-
startLoading: (dataSourceName: string, databaseName?: string, tableName?: string) => void;
245+
startLoading: (params: StartLoadingParams) => void;
244246
stopLoading: () => void;
245247
}
248+
249+
export interface StartLoadingParams {
250+
dataSourceName: string;
251+
dataSourceMDSId?: string;
252+
databaseName?: string;
253+
tableName?: string;
254+
}

common/utils/shared.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ export function get<T = unknown>(obj: Record<string, any>, path: string, default
1818
}
1919

2020
export function addBackticksIfNeeded(input: string): string {
21+
if (input === undefined) {
22+
return '';
23+
}
2124
// Check if the string already has backticks
2225
if (input.startsWith('`') && input.endsWith('`')) {
2326
return input; // Return the string as it is

public/components/datasources/components/manage/accelerations/acceleration_details_flyout.tsx

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,24 +16,25 @@ import {
1616
EuiText,
1717
} from '@elastic/eui';
1818
import React, { useEffect, useState } from 'react';
19+
import { OpenSearchDashboardsResponse } from '../../../../../../../../src/core/server/http/router';
20+
import { CachedAcceleration } from '../../../../../../common/types/data_connections';
21+
import { coreRefs } from '../../../../../framework/core_refs';
22+
import { AccelerationActionOverlay } from './acceleration_action_overlay';
23+
import { useAccelerationOperation } from './acceleration_operation';
1924
import { AccelerationDetailsTab } from './flyout_modules/acceleration_details_tab';
2025
import { AccelerationSchemaTab } from './flyout_modules/accelerations_schema_tab';
2126
import {
22-
onDiscoverIconClick,
2327
AccelerationActionType,
2428
getAccelerationName,
29+
onDiscoverIconClick,
2530
} from './utils/acceleration_utils';
26-
import { coreRefs } from '../../../../../framework/core_refs';
27-
import { OpenSearchDashboardsResponse } from '../../../../../../../../src/core/server/http/router';
28-
import { CachedAcceleration } from '../../../../../../common/types/data_connections';
29-
import { useAccelerationOperation } from './acceleration_operation';
30-
import { AccelerationActionOverlay } from './acceleration_action_overlay';
3131

3232
export interface AccelerationDetailsFlyoutProps {
3333
acceleration: CachedAcceleration;
3434
dataSourceName: string;
3535
resetFlyout: () => void;
3636
handleRefresh?: () => void;
37+
dataSourceMDSId?: string;
3738
}
3839

3940
const getMappings = (index: string): Promise<OpenSearchDashboardsResponse> | undefined => {

public/components/datasources/components/manage/accelerations/acceleration_table.tsx

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -18,27 +18,29 @@ import {
1818
EuiText,
1919
} from '@elastic/eui';
2020
import React, { useCallback, useEffect, useState } from 'react';
21-
import {
22-
onDiscoverIconClick,
23-
AccelerationStatus,
24-
ACC_LOADING_MSG,
25-
ACC_PANEL_TITLE,
26-
ACC_PANEL_DESC,
27-
getAccelerationName,
28-
AccelerationActionType,
29-
CreateAccelerationFlyoutButton,
30-
} from './utils/acceleration_utils';
31-
import { getRenderAccelerationDetailsFlyout } from '../../../../../plugin';
32-
import { CatalogCacheManager } from '../../../../../framework/catalog_cache/cache_manager';
3321
import {
3422
CachedAcceleration,
3523
CachedDataSourceStatus,
3624
} from '../../../../../../common/types/data_connections';
3725
import { DirectQueryLoadingStatus } from '../../../../../../common/types/explorer';
38-
import { AccelerationActionOverlay } from './acceleration_action_overlay';
26+
import { CatalogCacheManager } from '../../../../../framework/catalog_cache/cache_manager';
27+
import {
28+
getRenderAccelerationDetailsFlyout,
29+
getRenderCreateAccelerationFlyout,
30+
} from '../../../../../plugin';
3931
import { isCatalogCacheFetching } from '../associated_objects/utils/associated_objects_tab_utils';
40-
import { getRenderCreateAccelerationFlyout } from '../../../../../plugin';
32+
import { AccelerationActionOverlay } from './acceleration_action_overlay';
4133
import { useAccelerationOperation } from './acceleration_operation';
34+
import {
35+
ACC_LOADING_MSG,
36+
ACC_PANEL_DESC,
37+
ACC_PANEL_TITLE,
38+
AccelerationActionType,
39+
AccelerationStatus,
40+
CreateAccelerationFlyoutButton,
41+
getAccelerationName,
42+
onDiscoverIconClick,
43+
} from './utils/acceleration_utils';
4244

4345
interface AccelerationTableProps {
4446
dataSourceName: string;
@@ -108,7 +110,7 @@ export const AccelerationTable = ({
108110
!isCatalogCacheFetching(accelerationsLoadStatus)
109111
) {
110112
setIsRefreshing(true);
111-
startLoadingAccelerations(dataSourceName);
113+
startLoadingAccelerations({ dataSourceName });
112114
} else {
113115
setAccelerations(cachedDataSource.accelerations);
114116
setUpdatedTime(cachedDataSource.lastUpdated);

public/components/datasources/components/manage/accelerations/create_accelerations_flyout/create/create_acceleration.tsx

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ export interface CreateAccelerationProps {
4545
resetFlyout: () => void;
4646
databaseName?: string;
4747
tableName?: string;
48+
dataSourceMDSId?: string;
4849
refreshHandler?: () => void;
4950
}
5051

@@ -53,6 +54,7 @@ export const CreateAcceleration = ({
5354
resetFlyout,
5455
databaseName,
5556
tableName,
57+
dataSourceMDSId,
5658
refreshHandler,
5759
}: CreateAccelerationProps) => {
5860
const { setToast } = useToast();
@@ -141,12 +143,22 @@ export const CreateAcceleration = ({
141143
if (dataTable !== '') {
142144
setTableFieldsLoading(true);
143145
try {
144-
const cachedTable = CatalogCacheManager.getTable(dataSource, database, dataTable);
146+
const cachedTable = CatalogCacheManager.getTable(
147+
dataSource,
148+
database,
149+
dataTable,
150+
dataSourceMDSId
151+
);
145152
if (cachedTable.columns) {
146153
loadColumnsToAccelerationForm(cachedTable);
147154
setTableFieldsLoading(false);
148155
} else {
149-
startLoading(dataSource, database, dataTable);
156+
startLoading({
157+
dataSourceName: dataSource,
158+
dataSourceMDSId,
159+
databaseName: database,
160+
tableName: dataTable,
161+
});
150162
}
151163
} catch (error) {
152164
setToast('Your cache is outdated, refresh databases and tables', 'warning');
@@ -173,7 +185,8 @@ export const CreateAcceleration = ({
173185
cachedTable = CatalogCacheManager.getTable(
174186
accelerationFormData.dataSource,
175187
accelerationFormData.database,
176-
accelerationFormData.dataTable
188+
accelerationFormData.dataTable,
189+
dataSourceMDSId
177190
);
178191
} catch (error) {
179192
setToast('Your cache is outdated, refresh databases and tables', 'warning');
@@ -218,6 +231,7 @@ export const CreateAcceleration = ({
218231
selectedDatasource={selectedDatasource}
219232
dataSourcesPreselected={dataSourcesPreselected}
220233
tableFieldsLoading={tableFieldsLoading}
234+
dataSourceMDSId={dataSourceMDSId}
221235
/>
222236
<EuiSpacer size="xxl" />
223237
<IndexTypeSelector
@@ -235,6 +249,7 @@ export const CreateAcceleration = ({
235249
accelerationFormData={accelerationFormData}
236250
setAccelerationFormData={setAccelerationFormData}
237251
tableFieldsLoading={tableFieldsLoading}
252+
dataSourceMDSId={dataSourceMDSId}
238253
/>
239254
<EuiSpacer size="xxl" />
240255
<IndexAdvancedSettings

public/components/datasources/components/manage/accelerations/create_accelerations_flyout/selectors/selector_helpers/load_databases.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ export const SelectorLoadDatabases = ({
4242

4343
const onClickRefreshDatabases = () => {
4444
setIsLoading(true);
45-
startDatabasesLoading(dataSourceName);
45+
startDatabasesLoading({ dataSourceName });
4646
};
4747

4848
useEffect(() => {

public/components/datasources/components/manage/accelerations/create_accelerations_flyout/selectors/selector_helpers/load_objects.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,8 @@ export const SelectorLoadObjects = ({
6565
tableStatus: true,
6666
accelerationsStatus: true,
6767
});
68-
startLoadingTables(dataSourceName, databaseName);
69-
startLoadingAccelerations(dataSourceName);
68+
startLoadingTables({ dataSourceName, databaseName });
69+
startLoadingAccelerations({ dataSourceName });
7070
};
7171

7272
useEffect(() => {

public/components/datasources/components/manage/accelerations/create_accelerations_flyout/selectors/source_selector.tsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,13 @@ import React, { useEffect, useState } from 'react';
2020
import { CoreStart } from '../../../../../../../../../../src/core/public';
2121
import { DATACONNECTIONS_BASE } from '../../../../../../../../common/constants/shared';
2222
import {
23-
CachedDatabase,
2423
CachedDataSourceStatus,
24+
CachedDatabase,
2525
CreateAccelerationForm,
2626
} from '../../../../../../../../common/types/data_connections';
2727
import { CatalogCacheManager } from '../../../../../../../framework/catalog_cache/cache_manager';
2828
import { useToast } from '../../../../../../common/toast';
29-
import { hasError, validateDatabase, validateDataTable } from '../create/utils';
29+
import { hasError, validateDataTable, validateDatabase } from '../create/utils';
3030
import { SelectorLoadDatabases } from './selector_helpers/load_databases';
3131
import { SelectorLoadObjects } from './selector_helpers/load_objects';
3232

@@ -37,6 +37,7 @@ interface AccelerationDataSourceSelectorProps {
3737
selectedDatasource: string;
3838
dataSourcesPreselected: boolean;
3939
tableFieldsLoading: boolean;
40+
dataSourceMDSId?: string;
4041
}
4142

4243
export const AccelerationDataSourceSelector = ({
@@ -46,6 +47,7 @@ export const AccelerationDataSourceSelector = ({
4647
selectedDatasource,
4748
dataSourcesPreselected,
4849
tableFieldsLoading,
50+
dataSourceMDSId,
4951
}: AccelerationDataSourceSelectorProps) => {
5052
const { setToast } = useToast();
5153
const [databases, setDatabases] = useState<Array<EuiComboBoxOptionOption<string>>>([]);
@@ -72,7 +74,7 @@ export const AccelerationDataSourceSelector = ({
7274
const loadDataSource = () => {
7375
setLoadingComboBoxes({ ...loadingComboBoxes, dataSource: true });
7476
http
75-
.get(DATACONNECTIONS_BASE)
77+
.get(DATACONNECTIONS_BASE + `/dataSourceMDSId=${dataSourceMDSId}`)
7678
.then((res) => {
7779
const isValidDataSource = res.some(
7880
(connection: any) =>

public/components/datasources/components/manage/accelerations/create_accelerations_flyout/visual_editors/query_visual_editor.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,14 @@ interface QueryVisualEditorProps {
1414
accelerationFormData: CreateAccelerationForm;
1515
setAccelerationFormData: React.Dispatch<React.SetStateAction<CreateAccelerationForm>>;
1616
tableFieldsLoading: boolean;
17+
dataSourceMDSId?: string;
1718
}
1819

1920
export const QueryVisualEditor = ({
2021
accelerationFormData,
2122
setAccelerationFormData,
2223
tableFieldsLoading,
24+
dataSourceMDSId,
2325
}: QueryVisualEditorProps) => {
2426
return tableFieldsLoading ? (
2527
<>
@@ -38,6 +40,7 @@ export const QueryVisualEditor = ({
3840
<SkippingIndexBuilder
3941
accelerationFormData={accelerationFormData}
4042
setAccelerationFormData={setAccelerationFormData}
43+
dataSourceMDSId={dataSourceMDSId}
4144
/>
4245
)}
4346
{accelerationFormData.accelerationIndexType === 'covering' && (

public/components/datasources/components/manage/accelerations/create_accelerations_flyout/visual_editors/skipping_index/generate_fields.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,15 @@ interface GenerateFieldsProps {
2626
setAccelerationFormData: React.Dispatch<React.SetStateAction<CreateAccelerationForm>>;
2727
isSkippingtableLoading: boolean;
2828
setIsSkippingtableLoading: React.Dispatch<boolean>;
29+
dataSourceMDSId?: string;
2930
}
3031

3132
export const GenerateFields = ({
3233
accelerationFormData,
3334
setAccelerationFormData,
3435
isSkippingtableLoading,
3536
setIsSkippingtableLoading,
37+
dataSourceMDSId,
3638
}: GenerateFieldsProps) => {
3739
const [isGenerateRun, setIsGenerateRun] = useState(false);
3840
const { loadStatus, startLoading, stopLoading: _stopLoading, pollingResult } = useDirectQuery();
@@ -84,7 +86,7 @@ export const GenerateFields = ({
8486
)}`,
8587
datasource: accelerationFormData.dataSource,
8688
};
87-
startLoading(requestPayload);
89+
startLoading(requestPayload, dataSourceMDSId);
8890
setIsSkippingtableLoading(true);
8991
setIsGenerateRun(true);
9092
setReplaceDefinitionModal(<></>);

0 commit comments

Comments
 (0)