From 1db14bd1deacae9ade86cf1eedda5fe137dab2a2 Mon Sep 17 00:00:00 2001 From: Jean-Louis Leysens Date: Mon, 7 Jun 2021 13:38:49 +0200 Subject: [PATCH] Revert "[Reporting] ILM policy for managing reporting indices (#100130)" (#101358) This reverts commit 662fe7475738d90120342503e5a56016c2a5ee95. Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../server/lib/store/report_ilm_policy.ts | 18 ----- .../reporting/server/lib/store/store.test.ts | 39 ----------- .../reporting/server/lib/store/store.ts | 66 ++++--------------- x-pack/plugins/reporting/server/plugin.ts | 3 - 4 files changed, 12 insertions(+), 114 deletions(-) delete mode 100644 x-pack/plugins/reporting/server/lib/store/report_ilm_policy.ts diff --git a/x-pack/plugins/reporting/server/lib/store/report_ilm_policy.ts b/x-pack/plugins/reporting/server/lib/store/report_ilm_policy.ts deleted file mode 100644 index f4cd69a0331d7..0000000000000 --- a/x-pack/plugins/reporting/server/lib/store/report_ilm_policy.ts +++ /dev/null @@ -1,18 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { PutLifecycleRequest } from '@elastic/elasticsearch/api/types'; - -export const reportingIlmPolicy: PutLifecycleRequest['body'] = { - policy: { - phases: { - hot: { - actions: {}, - }, - }, - }, -}; diff --git a/x-pack/plugins/reporting/server/lib/store/store.test.ts b/x-pack/plugins/reporting/server/lib/store/store.test.ts index fa35240dfc8fb..7f96433fcc6ce 100644 --- a/x-pack/plugins/reporting/server/lib/store/store.test.ts +++ b/x-pack/plugins/reporting/server/lib/store/store.test.ts @@ -7,7 +7,6 @@ import type { DeeplyMockedKeys } from '@kbn/utility-types/jest'; import { ElasticsearchClient } from 'src/core/server'; -import { elasticsearchServiceMock } from 'src/core/server/mocks'; import { ReportingCore } from '../../'; import { createMockConfigSchema, @@ -17,8 +16,6 @@ import { import { Report, ReportDocument } from './report'; import { ReportingStore } from './store'; -const { createApiResponse } = elasticsearchServiceMock; - describe('ReportingStore', () => { const mockLogger = createMockLevelLogger(); let mockCore: ReportingCore; @@ -406,40 +403,4 @@ describe('ReportingStore', () => { ] `); }); - - describe('start', () => { - it('creates an ILM policy for managing reporting indices if there is not already one', async () => { - mockEsClient.ilm.getLifecycle.mockRejectedValueOnce(createApiResponse({ statusCode: 404 })); - mockEsClient.ilm.putLifecycle.mockResolvedValueOnce(createApiResponse()); - - const store = new ReportingStore(mockCore, mockLogger); - await store.start(); - - expect(mockEsClient.ilm.getLifecycle).toHaveBeenCalledWith({ policy: 'kibana-reporting' }); - expect(mockEsClient.ilm.putLifecycle.mock.calls[0][0]).toMatchInlineSnapshot(` - Object { - "body": Object { - "policy": Object { - "phases": Object { - "hot": Object { - "actions": Object {}, - }, - }, - }, - }, - "policy": "kibana-reporting", - } - `); - }); - - it('does not create an ILM policy for managing reporting indices if one already exists', async () => { - mockEsClient.ilm.getLifecycle.mockResolvedValueOnce(createApiResponse()); - - const store = new ReportingStore(mockCore, mockLogger); - await store.start(); - - expect(mockEsClient.ilm.getLifecycle).toHaveBeenCalledWith({ policy: 'kibana-reporting' }); - expect(mockEsClient.ilm.putLifecycle).not.toHaveBeenCalled(); - }); - }); }); diff --git a/x-pack/plugins/reporting/server/lib/store/store.ts b/x-pack/plugins/reporting/server/lib/store/store.ts index 9fb203fd5627a..fc7bd9c23d769 100644 --- a/x-pack/plugins/reporting/server/lib/store/store.ts +++ b/x-pack/plugins/reporting/server/lib/store/store.ts @@ -14,7 +14,6 @@ import { ReportTaskParams } from '../tasks'; import { indexTimestamp } from './index_timestamp'; import { mapping } from './mapping'; import { Report, ReportDocument, ReportSource } from './report'; -import { reportingIlmPolicy } from './report_ilm_policy'; /* * When searching for long-pending reports, we get a subset of fields @@ -72,22 +71,19 @@ export class ReportingStore { return exists; } + const indexSettings = { + number_of_shards: 1, + auto_expand_replicas: '0-1', + }; + const body = { + settings: indexSettings, + mappings: { + properties: mapping, + }, + }; + try { - await client.indices.create({ - index: indexName, - body: { - settings: { - number_of_shards: 1, - auto_expand_replicas: '0-1', - lifecycle: { - name: this.ilmPolicyName, - }, - }, - mappings: { - properties: mapping, - }, - }, - }); + await client.indices.create({ index: indexName, body }); return true; } catch (error) { @@ -134,44 +130,6 @@ export class ReportingStore { return client.indices.refresh({ index }); } - private readonly ilmPolicyName = 'kibana-reporting'; - - private async doesIlmPolicyExist(): Promise { - const client = await this.getClient(); - try { - await client.ilm.getLifecycle({ policy: this.ilmPolicyName }); - return true; - } catch (e) { - if (e.statusCode === 404) { - return false; - } - throw e; - } - } - - /** - * Function to be called during plugin start phase. This ensures the environment is correctly - * configured for storage of reports. - */ - public async start() { - const client = await this.getClient(); - try { - if (await this.doesIlmPolicyExist()) { - this.logger.debug(`Found ILM policy ${this.ilmPolicyName}; skipping creation.`); - return; - } - this.logger.info(`Creating ILM policy for managing reporting indices: ${this.ilmPolicyName}`); - await client.ilm.putLifecycle({ - policy: this.ilmPolicyName, - body: reportingIlmPolicy, - }); - } catch (e) { - this.logger.error('Error in start phase'); - this.logger.error(e.body.error); - throw e; - } - } - public async addReport(report: Report): Promise { let index = report._index; if (!index) { diff --git a/x-pack/plugins/reporting/server/plugin.ts b/x-pack/plugins/reporting/server/plugin.ts index dc0ddf27a53b3..4e7328cf18003 100644 --- a/x-pack/plugins/reporting/server/plugin.ts +++ b/x-pack/plugins/reporting/server/plugin.ts @@ -108,9 +108,6 @@ export class ReportingPlugin logger: this.logger, }); - // Note: this must be called after ReportingCore.pluginStart - await store.start(); - this.logger.debug('Start complete'); })().catch((e) => { this.logger.error(`Error in Reporting start, reporting may not function properly`);