Skip to content

Commit f0e4281

Browse files
author
Liza K
committed
Use sync config in data-enhanced plugin
1 parent 19fa7e1 commit f0e4281

6 files changed

Lines changed: 41 additions & 48 deletions

File tree

x-pack/plugins/data_enhanced/server/plugin.ts

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
*/
66

77
import { CoreSetup, CoreStart, Logger, Plugin, PluginInitializerContext } from 'kibana/server';
8-
import { Observable } from 'rxjs';
98
import { TaskManagerSetupContract, TaskManagerStartContract } from '../../task_manager/server';
109
import {
1110
PluginSetup as DataPluginSetup,
@@ -39,11 +38,11 @@ export class EnhancedDataServerPlugin
3938
implements Plugin<void, void, SetupDependencies, StartDependencies> {
4039
private readonly logger: Logger;
4140
private sessionService!: SearchSessionService;
42-
private config$: Observable<ConfigSchema>;
41+
private config: ConfigSchema;
4342

4443
constructor(private initializerContext: PluginInitializerContext<ConfigSchema>) {
4544
this.logger = initializerContext.logger.get('data_enhanced');
46-
this.config$ = this.initializerContext.config.create();
45+
this.config = this.initializerContext.config.get<ConfigSchema>();
4746
}
4847

4948
public setup(core: CoreSetup<DataPluginStart>, deps: SetupDependencies) {
@@ -55,7 +54,7 @@ export class EnhancedDataServerPlugin
5554
deps.data.search.registerSearchStrategy(
5655
ENHANCED_ES_SEARCH_STRATEGY,
5756
enhancedEsSearchStrategyProvider(
58-
this.config$,
57+
this.config,
5958
this.initializerContext.config.legacy.globalConfig$,
6059
this.logger,
6160
usage
@@ -67,10 +66,7 @@ export class EnhancedDataServerPlugin
6766
eqlSearchStrategyProvider(this.logger)
6867
);
6968

70-
this.sessionService = new SearchSessionService(
71-
this.logger,
72-
this.initializerContext.config.create()
73-
);
69+
this.sessionService = new SearchSessionService(this.logger, this.config);
7470

7571
deps.data.__enhance({
7672
search: {

x-pack/plugins/data_enhanced/server/search/es_search_strategy.test.ts

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -71,13 +71,13 @@ describe('ES search strategy', () => {
7171
},
7272
});
7373

74-
const mockConfig$ = new BehaviorSubject<any>({
74+
const mockConfig: any = {
7575
search: {
7676
sessions: {
7777
defaultExpiration: moment.duration('1', 'm'),
7878
},
7979
},
80-
});
80+
};
8181

8282
beforeEach(() => {
8383
mockApiCaller.mockClear();
@@ -88,7 +88,7 @@ describe('ES search strategy', () => {
8888

8989
it('returns a strategy with `search and `cancel`', async () => {
9090
const esSearch = await enhancedEsSearchStrategyProvider(
91-
mockConfig$,
91+
mockConfig,
9292
mockLegacyConfig$,
9393
mockLogger
9494
);
@@ -103,7 +103,7 @@ describe('ES search strategy', () => {
103103

104104
const params = { index: 'logstash-*', body: { query: {} } };
105105
const esSearch = await enhancedEsSearchStrategyProvider(
106-
mockConfig$,
106+
mockConfig,
107107
mockLegacyConfig$,
108108
mockLogger
109109
);
@@ -122,7 +122,7 @@ describe('ES search strategy', () => {
122122

123123
const params = { index: 'logstash-*', body: { query: {} } };
124124
const esSearch = await enhancedEsSearchStrategyProvider(
125-
mockConfig$,
125+
mockConfig,
126126
mockLegacyConfig$,
127127
mockLogger
128128
);
@@ -141,7 +141,7 @@ describe('ES search strategy', () => {
141141

142142
const params = { index: 'foo-*', body: {} };
143143
const esSearch = await enhancedEsSearchStrategyProvider(
144-
mockConfig$,
144+
mockConfig,
145145
mockLegacyConfig$,
146146
mockLogger
147147
);
@@ -159,7 +159,7 @@ describe('ES search strategy', () => {
159159

160160
const params = { index: 'foo-程', body: {} };
161161
const esSearch = await enhancedEsSearchStrategyProvider(
162-
mockConfig$,
162+
mockConfig,
163163
mockLegacyConfig$,
164164
mockLogger
165165
);
@@ -188,7 +188,7 @@ describe('ES search strategy', () => {
188188

189189
const params = { index: 'logstash-*', body: { query: {} } };
190190
const esSearch = await enhancedEsSearchStrategyProvider(
191-
mockConfig$,
191+
mockConfig,
192192
mockLegacyConfig$,
193193
mockLogger
194194
);
@@ -208,7 +208,7 @@ describe('ES search strategy', () => {
208208

209209
const params = { index: 'logstash-*', body: { query: {} } };
210210
const esSearch = await enhancedEsSearchStrategyProvider(
211-
mockConfig$,
211+
mockConfig,
212212
mockLegacyConfig$,
213213
mockLogger
214214
);
@@ -236,7 +236,7 @@ describe('ES search strategy', () => {
236236

237237
const params = { index: 'logstash-*', body: { query: {} } };
238238
const esSearch = await enhancedEsSearchStrategyProvider(
239-
mockConfig$,
239+
mockConfig,
240240
mockLegacyConfig$,
241241
mockLogger
242242
);
@@ -261,7 +261,7 @@ describe('ES search strategy', () => {
261261

262262
const params = { index: 'logstash-*', body: { query: {} } };
263263
const esSearch = await enhancedEsSearchStrategyProvider(
264-
mockConfig$,
264+
mockConfig,
265265
mockLegacyConfig$,
266266
mockLogger
267267
);
@@ -286,7 +286,7 @@ describe('ES search strategy', () => {
286286

287287
const id = 'some_id';
288288
const esSearch = await enhancedEsSearchStrategyProvider(
289-
mockConfig$,
289+
mockConfig,
290290
mockLegacyConfig$,
291291
mockLogger
292292
);
@@ -310,7 +310,7 @@ describe('ES search strategy', () => {
310310

311311
const id = 'some_id';
312312
const esSearch = await enhancedEsSearchStrategyProvider(
313-
mockConfig$,
313+
mockConfig,
314314
mockLegacyConfig$,
315315
mockLogger
316316
);
@@ -337,7 +337,7 @@ describe('ES search strategy', () => {
337337
const id = 'some_other_id';
338338
const keepAlive = '1d';
339339
const esSearch = await enhancedEsSearchStrategyProvider(
340-
mockConfig$,
340+
mockConfig,
341341
mockLegacyConfig$,
342342
mockLogger
343343
);
@@ -356,7 +356,7 @@ describe('ES search strategy', () => {
356356
const id = 'some_other_id';
357357
const keepAlive = '1d';
358358
const esSearch = await enhancedEsSearchStrategyProvider(
359-
mockConfig$,
359+
mockConfig,
360360
mockLegacyConfig$,
361361
mockLogger
362362
);

x-pack/plugins/data_enhanced/server/search/es_search_strategy.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ import { ConfigSchema } from '../../config';
3838
import { getKbnServerError, KbnServerError } from '../../../../../src/plugins/kibana_utils/server';
3939

4040
export const enhancedEsSearchStrategyProvider = (
41-
config$: Observable<ConfigSchema>,
41+
config: ConfigSchema,
4242
legacyConfig$: Observable<SharedGlobalConfig>,
4343
logger: Logger,
4444
usage?: SearchUsage
@@ -59,7 +59,6 @@ export const enhancedEsSearchStrategyProvider = (
5959
const client = esClient.asCurrentUser.asyncSearch;
6060

6161
const search = async () => {
62-
const config = await config$.pipe(first()).toPromise();
6362
const params = id
6463
? getDefaultAsyncGetParams(options)
6564
: {

x-pack/plugins/data_enhanced/server/search/session/monitoring_task.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44
* you may not use this file except in compliance with the Elastic License.
55
*/
66

7-
import { Observable } from 'rxjs';
8-
import { first } from 'rxjs/operators';
97
import { Duration } from 'moment';
108
import {
119
TaskManagerSetupContract,
@@ -23,14 +21,13 @@ export const SEARCH_SESSIONS_TASK_ID = `data_enhanced_${SEARCH_SESSIONS_TASK_TYP
2321
interface SearchSessionTaskDeps {
2422
taskManager: TaskManagerSetupContract;
2523
logger: Logger;
26-
config$: Observable<ConfigSchema>;
24+
config: ConfigSchema;
2725
}
2826

29-
function searchSessionRunner(core: CoreSetup, { logger, config$ }: SearchSessionTaskDeps) {
27+
function searchSessionRunner(core: CoreSetup, { logger, config }: SearchSessionTaskDeps) {
3028
return ({ taskInstance }: RunContext) => {
3129
return {
3230
async run() {
33-
const config = await config$.pipe(first()).toPromise();
3431
const sessionConfig = config.search.sessions;
3532
const [coreStart] = await core.getStartServices();
3633
const internalRepo = coreStart.savedObjects.createInternalRepository([SEARCH_SESSION_TYPE]);

x-pack/plugins/data_enhanced/server/search/session/session_service.test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* you may not use this file except in compliance with the Elastic License.
55
*/
66

7-
import { BehaviorSubject, of } from 'rxjs';
7+
import { of } from 'rxjs';
88
import {
99
SavedObject,
1010
SavedObjectsClientContract,
@@ -46,7 +46,7 @@ describe('SearchSessionService', () => {
4646

4747
beforeEach(async () => {
4848
savedObjectsClient = savedObjectsClientMock.create();
49-
const config$ = new BehaviorSubject<ConfigSchema>({
49+
const config: ConfigSchema = {
5050
search: {
5151
sessions: {
5252
enabled: true,
@@ -59,13 +59,13 @@ describe('SearchSessionService', () => {
5959
management: {} as any,
6060
},
6161
},
62-
});
62+
};
6363
const mockLogger: any = {
6464
debug: jest.fn(),
6565
warn: jest.fn(),
6666
error: jest.fn(),
6767
};
68-
service = new SearchSessionService(mockLogger, config$);
68+
service = new SearchSessionService(mockLogger, config);
6969
const coreStart = coreMock.createStart();
7070
const mockTaskManager = taskManagerMock.createStart();
7171
await flushPromises();

x-pack/plugins/data_enhanced/server/search/session/session_service.ts

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
*/
66

77
import { from, Observable } from 'rxjs';
8-
import { first, switchMap, tap } from 'rxjs/operators';
8+
import { switchMap, tap } from 'rxjs/operators';
99
import {
1010
CoreStart,
1111
KibanaRequest,
@@ -57,32 +57,33 @@ function sleep(ms: number) {
5757
return new Promise((r) => setTimeout(r, ms));
5858
}
5959
export class SearchSessionService implements ISessionService {
60-
private config!: SearchSessionsConfig;
60+
private sessionConfig!: SearchSessionsConfig;
6161

62-
constructor(
63-
private readonly logger: Logger,
64-
private readonly config$: Observable<ConfigSchema>
65-
) {}
62+
constructor(private readonly logger: Logger, private readonly config: ConfigSchema) {
63+
this.sessionConfig = this.config.search.sessions;
64+
}
6665

6766
public setup(core: CoreSetup, deps: SetupDependencies) {
6867
registerSearchSessionsTask(core, {
69-
config$: this.config$,
68+
config: this.config,
7069
taskManager: deps.taskManager,
7170
logger: this.logger,
7271
});
7372
}
7473

7574
public async start(core: CoreStart, deps: StartDependencies) {
76-
const configPromise = await this.config$.pipe(first()).toPromise();
77-
this.config = (await configPromise).search.sessions;
7875
return this.setupMonitoring(core, deps);
7976
}
8077

8178
public stop() {}
8279

8380
private setupMonitoring = async (core: CoreStart, deps: StartDependencies) => {
84-
if (this.config.enabled) {
85-
scheduleSearchSessionsTasks(deps.taskManager, this.logger, this.config.trackingInterval);
81+
if (this.sessionConfig.enabled) {
82+
scheduleSearchSessionsTasks(
83+
deps.taskManager,
84+
this.logger,
85+
this.sessionConfig.trackingInterval
86+
);
8687
}
8788
};
8889

@@ -139,7 +140,7 @@ export class SearchSessionService implements ISessionService {
139140
} catch (createError) {
140141
if (
141142
SavedObjectsErrorHelpers.isConflictError(createError) &&
142-
retry < this.config.maxUpdateRetries
143+
retry < this.sessionConfig.maxUpdateRetries
143144
) {
144145
return await retryOnConflict(createError);
145146
} else {
@@ -148,7 +149,7 @@ export class SearchSessionService implements ISessionService {
148149
}
149150
} else if (
150151
SavedObjectsErrorHelpers.isConflictError(e) &&
151-
retry < this.config.maxUpdateRetries
152+
retry < this.sessionConfig.maxUpdateRetries
152153
) {
153154
return await retryOnConflict(e);
154155
} else {
@@ -200,7 +201,7 @@ export class SearchSessionService implements ISessionService {
200201
sessionId,
201202
status: SearchSessionStatus.IN_PROGRESS,
202203
expires: new Date(
203-
Date.now() + this.config.defaultExpiration.asMilliseconds()
204+
Date.now() + this.sessionConfig.defaultExpiration.asMilliseconds()
204205
).toISOString(),
205206
created: new Date().toISOString(),
206207
touched: new Date().toISOString(),

0 commit comments

Comments
 (0)