Skip to content

Commit

Permalink
Catch error if index patterns service can't be created.
Browse files Browse the repository at this point in the history
  • Loading branch information
Liza K committed Mar 11, 2021
1 parent eb4ba7f commit cb9d994
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,10 @@ export function registerValueSuggestionsRoute(
const { index } = request.params;
const signal = getRequestAbortedSignal(request.events.aborted$);

if (!context.indexPatterns) {
return response.badRequest();
}

const autocompleteSearchOptions = {
timeout: `${config.kibana.autocompleteTimeout.asMilliseconds()}ms`,
terminate_after: config.kibana.autocompleteTerminateAfter.asMilliseconds(),
Expand Down
16 changes: 11 additions & 5 deletions src/plugins/data/server/index_patterns/index_patterns_service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ export interface IndexPatternsServiceStart {

export interface IndexPatternsServiceSetupDeps {
expressions: ExpressionsServerSetup;
logger: Logger;
}

export interface IndexPatternsServiceStartDeps {
Expand All @@ -46,7 +47,7 @@ export interface IndexPatternsServiceStartDeps {
export class IndexPatternsServiceProvider implements Plugin<void, IndexPatternsServiceStart> {
public setup(
core: CoreSetup<DataPluginStartDependencies, DataPluginStart>,
{ expressions }: IndexPatternsServiceSetupDeps
{ logger, expressions }: IndexPatternsServiceSetupDeps
) {
core.savedObjects.registerType(indexPatternSavedObjectType);
core.capabilities.registerProvider(capabilitiesProvider);
Expand All @@ -55,10 +56,15 @@ export class IndexPatternsServiceProvider implements Plugin<void, IndexPatternsS
'indexPatterns',
async (context, request) => {
const [coreStart, , dataStart] = await core.getStartServices();
return await dataStart.indexPatterns.indexPatternsServiceFactory(
coreStart.savedObjects.getScopedClient(request),
coreStart.elasticsearch.client.asScoped(request).asCurrentUser
);
try {
return await dataStart.indexPatterns.indexPatternsServiceFactory(
coreStart.savedObjects.getScopedClient(request),
coreStart.elasticsearch.client.asScoped(request).asCurrentUser
);
} catch (e) {
logger.error(e);
return undefined;
}
}
);

Expand Down
5 changes: 4 additions & 1 deletion src/plugins/data/server/plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,10 @@ export class DataServerPlugin
this.queryService.setup(core);
this.autocompleteService.setup(core);
this.kqlTelemetryService.setup(core, { usageCollection });
this.indexPatterns.setup(core, { expressions });
this.indexPatterns.setup(core, {
expressions,
logger: this.logger.get('indexPatterns'),
});

core.uiSettings.register(getUiSettings());

Expand Down
2 changes: 1 addition & 1 deletion src/plugins/data/server/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import { IndexPatternsHandlerContext } from './index_patterns';
*/
export interface DataRequestHandlerContext extends RequestHandlerContext {
search: SearchRequestHandlerContext;
indexPatterns: IndexPatternsHandlerContext;
indexPatterns?: IndexPatternsHandlerContext;
}

export type DataPluginRouter = IRouter<DataRequestHandlerContext>;

0 comments on commit cb9d994

Please sign in to comment.