Skip to content

Commit

Permalink
Revert "[Reporting] ILM policy for managing reporting indices (#100130)…
Browse files Browse the repository at this point in the history
…" (#101358)

This reverts commit 662fe74.

Co-authored-by: Kibana Machine <[email protected]>
# Conflicts:
#	x-pack/plugins/reporting/server/lib/store/store.ts
  • Loading branch information
jloleysens committed Jun 7, 2021
1 parent ce25bf2 commit 381e083
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 114 deletions.
18 changes: 0 additions & 18 deletions x-pack/plugins/reporting/server/lib/store/report_ilm_policy.ts

This file was deleted.

39 changes: 0 additions & 39 deletions x-pack/plugins/reporting/server/lib/store/store.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -17,8 +16,6 @@ import {
import { Report } from './report';
import { ReportingStore } from './store';

const { createApiResponse } = elasticsearchServiceMock;

describe('ReportingStore', () => {
const mockLogger = createMockLevelLogger();
let mockCore: ReportingCore;
Expand Down Expand Up @@ -342,40 +339,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();
});
});
});
66 changes: 12 additions & 54 deletions x-pack/plugins/reporting/server/lib/store/store.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ import { ReportingCore } from '../../';
import { indexTimestamp } from './index_timestamp';
import { mapping } from './mapping';
import { Report } from './report';
import { reportingIlmPolicy } from './report_ilm_policy';

const checkReportIsEditable = (report: Report) => {
if (!report._id || !report._index) {
Expand Down Expand Up @@ -53,22 +52,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) {
Expand Down Expand Up @@ -115,44 +111,6 @@ export class ReportingStore {
return client.indices.refresh({ index });
}

private readonly ilmPolicyName = 'kibana-reporting';

private async doesIlmPolicyExist(): Promise<boolean> {
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<Report> {
let index = report._index;
if (!index) {
Expand Down
3 changes: 0 additions & 3 deletions x-pack/plugins/reporting/server/plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -113,9 +113,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`);
Expand Down

0 comments on commit 381e083

Please sign in to comment.