Skip to content

Commit 7b428f8

Browse files
committed
add getter and setter for dataSource plugin
Signed-off-by: Jackie Han <jkhanjob@gmail.com>
1 parent 2189a54 commit 7b428f8

File tree

8 files changed

+29
-33
lines changed

8 files changed

+29
-33
lines changed

public/anomaly_detection_app.tsx

-3
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,10 @@ import { Main } from './pages/main';
1717
import { Provider } from 'react-redux';
1818
import configureStore from './redux/configureStore';
1919
import { CoreServicesContext } from './components/CoreServices/CoreServices';
20-
import { DataSourcePluginSetup } from '../../../src/plugins/data_source/public';
2120

2221
export function renderApp(
2322
coreStart: CoreStart,
2423
params: AppMountParameters,
25-
dataSource: DataSourcePluginSetup
2624
) {
2725
const http = coreStart.http;
2826
const store = configureStore(http);
@@ -42,7 +40,6 @@ export function renderApp(
4240
render={(props) => (
4341
<CoreServicesContext.Provider value={coreStart}>
4442
<Main
45-
dataSourceEnabled={dataSource.dataSourceEnabled}
4643
setHeaderActionMenu={params.setHeaderActionMenu}
4744
{...props}
4845
/>

public/pages/Dashboard/Container/DashboardOverview.tsx

+5-4
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,10 @@ import {
4949
import { CoreServicesContext } from '../../../components/CoreServices/CoreServices';
5050
import { CoreStart, MountPoint } from '../../../../../../src/core/public';
5151
import { DataSourceSelectableConfig } from '../../../../../../src/plugins/data_source_management/public';
52-
import { getDataSourceManagementPlugin, getNotifications, getSavedObjectsClient } from '../../../services';
52+
import { getDataSourceManagementPlugin, getDataSourcePlugin, getNotifications, getSavedObjectsClient } from '../../../services';
5353
import { RouteComponentProps } from 'react-router-dom';
5454

5555
interface OverviewProps extends RouteComponentProps {
56-
dataSourceEnabled: boolean;
5756
setActionMenu: (menuMount: MountPoint | undefined) => void;
5857
}
5958

@@ -71,6 +70,8 @@ export function DashboardOverview(props: OverviewProps) {
7170
const errorGettingDetectors = adState.errorMessage;
7271
const isLoadingDetectors = adState.requesting;
7372

73+
const dataSourceEnabled = getDataSourcePlugin().dataSourceEnabled;
74+
7475
const [currentDetectors, setCurrentDetectors] = useState(
7576
Object.values(allDetectorList)
7677
);
@@ -204,7 +205,7 @@ export function DashboardOverview(props: OverviewProps) {
204205
...location,
205206
search: queryString.stringify(updatedParams),
206207
})
207-
if (props.dataSourceEnabled ? MDSOverviewState.selectedDataSourceId : true) {
208+
if (dataSourceEnabled ? MDSOverviewState.selectedDataSourceId : true) {
208209
intializeDetectors();
209210
}
210211
}, [MDSOverviewState]);
@@ -262,7 +263,7 @@ export function DashboardOverview(props: OverviewProps) {
262263
return (
263264
<div style={{ height: '1200px' }}>
264265
<Fragment>
265-
{renderDataSourceComponent}
266+
{dataSourceEnabled && renderDataSourceComponent}
266267
<DashboardHeader hasDetectors={totalRealtimeDetectors > 0} />
267268
{isLoadingDetectors ? (
268269
<div>

public/pages/DetectorDetail/containers/DetectorDetail.tsx

+3-4
Original file line numberDiff line numberDiff line change
@@ -59,13 +59,12 @@ import { DETECTOR_STATE } from '../../../../server/utils/constants';
5959
import { CatIndex } from '../../../../server/models/types';
6060
import { containsIndex } from '../utils/helpers';
6161
import { DataSourceViewConfig } from '../../../../../../src/plugins/data_source_management/public';
62-
import { getDataSourceManagementPlugin, getNotifications, getSavedObjectsClient } from '../../../services';
62+
import { getDataSourceManagementPlugin, getDataSourcePlugin, getNotifications, getSavedObjectsClient } from '../../../services';
6363

6464
export interface DetectorRouterProps {
6565
detectorId?: string;
6666
}
6767
interface DetectorDetailProps extends RouteComponentProps<DetectorRouterProps> {
68-
dataSourceEnabled: boolean;
6968
setActionMenu: (menuMount: MountPoint | undefined) => void;
7069
}
7170

@@ -107,14 +106,14 @@ export const DetectorDetail = (props: DetectorDetailProps) => {
107106
const core = React.useContext(CoreServicesContext) as CoreStart;
108107
const dispatch = useDispatch();
109108
const detectorId = get(props, 'match.params.detectorId', '') as string;
110-
109+
const dataSourceEnabled = getDataSourcePlugin().dataSourceEnabled;
111110
const location = useLocation();
112111
const queryParams = new URLSearchParams(location.search);
113112
const dataSourceId = queryParams.get('dataSourceId') as string;
114113

115114
const { detector, hasError, isLoadingDetector, errorMessage } =
116115
useFetchDetectorInfo(detectorId, dataSourceId);
117-
const { monitor} = useFetchMonitorInfo(detectorId, dataSourceId, props.dataSourceEnabled);
116+
const { monitor} = useFetchMonitorInfo(detectorId, dataSourceId, dataSourceEnabled);
118117
const visibleIndices = useSelector(
119118
(state: AppState) => state.opensearch.indices
120119
) as CatIndex[];

public/pages/DetectorsList/containers/List/List.tsx

+7-6
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ import {
8484
import { CoreStart, MountPoint } from '../../../../../../../src/core/public';
8585
import { CoreServicesContext } from '../../../../components/CoreServices/CoreServices';
8686
import { DataSourceSelectableConfig } from '../../../../../../../src/plugins/data_source_management/public';
87-
import { getDataSourceManagementPlugin, getNotifications, getSavedObjectsClient } from '../../../../services';
87+
import { getDataSourceManagementPlugin, getDataSourcePlugin, getNotifications, getSavedObjectsClient } from '../../../../services';
8888

8989
export interface ListRouterParams {
9090
from: string;
@@ -96,7 +96,6 @@ export interface ListRouterParams {
9696
dataSourceId: string;
9797
}
9898
interface ListProps extends RouteComponentProps<ListRouterParams> {
99-
dataSourceEnabled: boolean;
10099
setActionMenu: (menuMount: MountPoint | undefined) => void;
101100
}
102101
interface ListState {
@@ -133,6 +132,8 @@ export const DetectorList = (props: ListProps) => {
133132
(state: AppState) => state.ad.requesting
134133
);
135134

135+
const dataSourceEnabled = getDataSourcePlugin().dataSourceEnabled;
136+
136137
const [selectedDetectors, setSelectedDetectors] = useState(
137138
[] as DetectorListItem[]
138139
);
@@ -165,7 +166,7 @@ export const DetectorList = (props: ListProps) => {
165166
// Getting all initial monitors
166167
useEffect(() => {
167168
const getInitialMonitors = async () => {
168-
if (props.dataSourceEnabled ? state.selectedDataSourceId : true) {
169+
if (dataSourceEnabled ? state.selectedDataSourceId : true) {
169170
dispatch(searchMonitors(state.selectedDataSourceId));
170171
}
171172
};
@@ -240,7 +241,7 @@ export const DetectorList = (props: ListProps) => {
240241

241242
setIsLoadingFinalDetectors(true);
242243

243-
if (props.dataSourceEnabled ? state.selectedDataSourceId : true) {
244+
if (dataSourceEnabled ? state.selectedDataSourceId : true) {
244245
getUpdatedDetectors();
245246
}
246247
}, [
@@ -496,7 +497,7 @@ export const DetectorList = (props: ListProps) => {
496497
);
497498
})
498499
.finally(() => {
499-
if (props.dataSourceEnabled ? state.selectedDataSourceId : true) {
500+
if (dataSourceEnabled ? state.selectedDataSourceId : true) {
500501
getUpdatedDetectors();
501502
}
502503
});
@@ -690,7 +691,7 @@ export const DetectorList = (props: ListProps) => {
690691
return (
691692
<EuiPage>
692693
<EuiPageBody>
693-
{props.dataSourceEnabled && renderDataSourceComponent}
694+
{dataSourceEnabled && renderDataSourceComponent}
694695
<ContentPanel
695696
title={
696697
isLoading

public/pages/Overview/containers/AnomalyDetectionOverview.tsx

+4-6
Original file line numberDiff line numberDiff line change
@@ -58,15 +58,14 @@ import ContentPanel from '../../../components/ContentPanel/ContentPanel';
5858
import { CreateWorkflowStepDetails } from '../components/CreateWorkflowStepDetails';
5959
import { CreateWorkflowStepSeparator } from '../components/CreateWorkflowStepSeparator';
6060
import { DataSourceSelectableConfig } from '../../../../../../src/plugins/data_source_management/public';
61-
import { getDataSourceManagementPlugin, getNotifications, getSavedObjectsClient } from '../../../../public/services';
61+
import { getDataSourceManagementPlugin, getDataSourcePlugin, getNotifications, getSavedObjectsClient } from '../../../../public/services';
6262
import { MDSQueryParams } from 'server/models/types';
6363
import { RouteComponentProps } from 'react-router-dom';
6464
import queryString from 'querystring';
6565
import { getURLQueryParams } from '../../../../public/pages/DetectorsList/utils/helpers';
6666
import { getSampleDetectorsQueryParamsWithDataSouceId } from '../../../../public/pages/utils/helpers';
6767

6868
interface AnomalyDetectionOverviewProps extends RouteComponentProps {
69-
dataSourceEnabled: boolean;
7069
setActionMenu: (menuMount: MountPoint | undefined) => void;
7170
}
7271

@@ -83,11 +82,10 @@ export function AnomalyDetectionOverview(props: AnomalyDetectionOverviewProps) {
8382
const visibleSampleIndices = useSelector(
8483
(state: AppState) => state.opensearch.indices
8584
);
86-
8785
const allSampleDetectors = Object.values(
8886
useSelector((state: AppState) => state.ad.detectorList)
8987
);
90-
88+
const dataSourceEnabled = getDataSourcePlugin().dataSourceEnabled;
9189
const [isLoadingHttpData, setIsLoadingHttpData] = useState<boolean>(false);
9290
const [isLoadingEcommerceData, setIsLoadingEcommerceData] =
9391
useState<boolean>(false);
@@ -122,7 +120,7 @@ export function AnomalyDetectionOverview(props: AnomalyDetectionOverviewProps) {
122120
search: queryString.stringify(updatedParams),
123121
})
124122

125-
if (props.dataSourceEnabled ? MDSOverviewState.selectedDataSourceId : true) {
123+
if (dataSourceEnabled ? MDSOverviewState.selectedDataSourceId : true) {
126124
fetchData();
127125
}
128126
}, [MDSOverviewState]);
@@ -241,7 +239,7 @@ export function AnomalyDetectionOverview(props: AnomalyDetectionOverviewProps) {
241239
) : (
242240
<Fragment>
243241
<EuiPageHeader>
244-
{props.dataSourceEnabled && renderDataSourceComponent}
242+
{dataSourceEnabled && renderDataSourceComponent}
245243
<EuiFlexGroup justifyContent="spaceBetween">
246244
<EuiFlexItem grow={false}>
247245
<EuiTitle size="l" data-test-subj="overviewTitle">

public/pages/main/Main.tsx

+1-8
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,11 @@ enum Navigation {
3434
}
3535

3636
interface MainProps extends RouteComponentProps {
37-
dataSourceEnabled: boolean;
3837
setHeaderActionMenu: (menuMount: MountPoint | undefined) => void;
3938
}
4039

4140
export function Main(props: MainProps) {
42-
const { dataSourceEnabled, setHeaderActionMenu } = props;
41+
const { setHeaderActionMenu } = props;
4342

4443
const hideSideNavBar = useSelector(
4544
(state: AppState) => state.adApp.hideSideNavBar
@@ -96,7 +95,6 @@ export function Main(props: MainProps) {
9695
path={APP_PATH.DASHBOARD}
9796
render={(props: RouteComponentProps) =>
9897
<DashboardOverview
99-
dataSourceEnabled={dataSourceEnabled}
10098
setActionMenu={setHeaderActionMenu}
10199
{...props}
102100
/>}
@@ -106,7 +104,6 @@ export function Main(props: MainProps) {
106104
path={APP_PATH.LIST_DETECTORS}
107105
render={(props: RouteComponentProps<ListRouterParams>) => (
108106
<DetectorList
109-
dataSourceEnabled={dataSourceEnabled}
110107
setActionMenu={setHeaderActionMenu}
111108
{...props}
112109
/>
@@ -137,7 +134,6 @@ export function Main(props: MainProps) {
137134
path={APP_PATH.DETECTOR_DETAIL}
138135
render={(props: RouteComponentProps) => (
139136
<DetectorDetail
140-
dataSourceEnabled={dataSourceEnabled}
141137
setActionMenu={setHeaderActionMenu}
142138
{...props} />
143139
)}
@@ -153,7 +149,6 @@ export function Main(props: MainProps) {
153149
path={APP_PATH.OVERVIEW}
154150
render={(props: RouteComponentProps) => (
155151
<AnomalyDetectionOverview
156-
dataSourceEnabled={dataSourceEnabled}
157152
setActionMenu={setHeaderActionMenu}
158153
{...props}
159154
/>
@@ -164,13 +159,11 @@ export function Main(props: MainProps) {
164159
render={(props: RouteComponentProps) =>
165160
totalDetectors > 0 ? (
166161
<DashboardOverview
167-
dataSourceEnabled={dataSourceEnabled}
168162
setActionMenu={setHeaderActionMenu}
169163
{...props}
170164
/>
171165
) : (
172166
<AnomalyDetectionOverview
173-
dataSourceEnabled={dataSourceEnabled}
174167
setActionMenu={setHeaderActionMenu}
175168
{...props}
176169
/>

public/plugin.ts

+5-2
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ import {
3737
setQueryService,
3838
setSavedObjectsClient,
3939
setDataSourceManagementPlugin,
40+
setDataSourcePlugin,
4041
} from './services';
4142
import { AnomalyDetectionOpenSearchDashboardsPluginStart } from 'public';
4243
import {
@@ -46,6 +47,7 @@ import {
4647
import { UiActionsStart } from '../../../src/plugins/ui_actions/public';
4748
import { DataPublicPluginStart } from '../../../src/plugins/data/public';
4849
import { DataSourceManagementPluginSetup } from '../../../src/plugins/data_source_management/public';
50+
import { DataSourcePluginSetup } from '../../../src/plugins/data_source/public';
4951

5052
declare module '../../../src/plugins/ui_actions/public' {
5153
export interface ActionContextMapping {
@@ -59,7 +61,7 @@ export interface AnomalyDetectionSetupDeps {
5961
notifications: NotificationsSetup;
6062
visAugmenter: VisAugmenterSetup;
6163
dataSourceManagement: DataSourceManagementPluginSetup;
62-
//uiActions: UiActionsSetup;
64+
dataSource: DataSourcePluginSetup;
6365
}
6466

6567
export interface AnomalyDetectionStartDeps {
@@ -89,7 +91,6 @@ export class AnomalyDetectionOpenSearchDashboardsPlugin
8991
return renderApp(
9092
coreStart,
9193
params,
92-
plugins.dataSource
9394
);
9495
},
9596
});
@@ -102,6 +103,8 @@ export class AnomalyDetectionOpenSearchDashboardsPlugin
102103

103104
setDataSourceManagementPlugin(plugins.dataSourceManagement);
104105

106+
setDataSourcePlugin(plugins.dataSource);
107+
105108
// Create context menu actions
106109
const actions = getActions();
107110

public/services.ts

+4
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import { EmbeddableStart } from '../../../src/plugins/embeddable/public';
1515
import { createGetterSetter } from '../../../src/plugins/opensearch_dashboards_utils/public';
1616
import { UiActionsStart } from '../../../src/plugins/ui_actions/public';
1717
import { SavedAugmentVisLoader } from '../../../src/plugins/vis_augmenter/public';
18+
import { DataSourcePluginSetup } from '../../../src/plugins/data_source/public';
1819

1920
export const [getSavedFeatureAnywhereLoader, setSavedFeatureAnywhereLoader] =
2021
createGetterSetter<SavedAugmentVisLoader>('savedFeatureAnywhereLoader');
@@ -46,6 +47,9 @@ export const [getSavedObjectsClient, setSavedObjectsClient] =
4647
export const [getDataSourceManagementPlugin, setDataSourceManagementPlugin] =
4748
createGetterSetter<DataSourceManagementPluginSetup>('DataSourceManagement');
4849

50+
export const [getDataSourcePlugin, setDataSourcePlugin] =
51+
createGetterSetter<DataSourcePluginSetup>('DataSource');
52+
4953
// This is primarily used for mocking this module and each of its fns in tests.
5054
export default {
5155
getSavedFeatureAnywhereLoader,

0 commit comments

Comments
 (0)