mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 17:59:23 -04:00
Parameterize migration test for kibana version (#105417)
This commit is contained in:
parent
887a149076
commit
595056060a
1 changed files with 17 additions and 11 deletions
|
@ -13,7 +13,12 @@ import * as kbnTestServer from '../../../../test_helpers/kbn_server';
|
|||
import { Root } from '../../../root';
|
||||
import JSON5 from 'json5';
|
||||
import { ElasticsearchClient } from '../../../elasticsearch';
|
||||
import { Env } from '@kbn/config';
|
||||
import { REPO_ROOT } from '@kbn/utils';
|
||||
import { getEnvOptions } from '@kbn/config/target/mocks';
|
||||
|
||||
const kibanaVersion = Env.createDefault(REPO_ROOT, getEnvOptions()).packageInfo.version;
|
||||
const targetIndex = `.kibana_${kibanaVersion}_001`;
|
||||
const logFilePath = Path.join(__dirname, '7_13_unknown_types_test.log');
|
||||
|
||||
async function removeLogFile() {
|
||||
|
@ -76,7 +81,7 @@ describe('migration v2', () => {
|
|||
unknownDocsWarningLog.message.startsWith(
|
||||
'[.kibana] CHECK_UNKNOWN_DOCUMENTS Upgrades will fail for 8.0+ because documents were found for unknown saved ' +
|
||||
'object types. To ensure that upgrades will succeed in the future, either re-enable plugins or delete ' +
|
||||
'these documents from the ".kibana_8.0.0_001" index after the current upgrade completes.'
|
||||
`these documents from the "${targetIndex}" index after the current upgrade completes.`
|
||||
)
|
||||
).toBeTruthy();
|
||||
|
||||
|
@ -100,14 +105,15 @@ describe('migration v2', () => {
|
|||
});
|
||||
|
||||
const client: ElasticsearchClient = esServer.es.getClient();
|
||||
const { body: response } = await client.indices.getSettings({ index: '.kibana_8.0.0_001' });
|
||||
const settings = response['.kibana_8.0.0_001']
|
||||
.settings as estypes.IndicesIndexStatePrefixedSettings;
|
||||
const { body: response } = await client.indices.getSettings({
|
||||
index: targetIndex,
|
||||
});
|
||||
const settings = response[targetIndex].settings as estypes.IndicesIndexStatePrefixedSettings;
|
||||
expect(settings.index).not.toBeUndefined();
|
||||
expect(settings.index!.blocks?.write).not.toEqual('true');
|
||||
|
||||
// Ensure that documents for unknown types were preserved in target index in an unmigrated state
|
||||
const spaceDocs = await fetchDocs(client, '.kibana_8.0.0_001', 'space');
|
||||
const spaceDocs = await fetchDocs(client, targetIndex, 'space');
|
||||
expect(spaceDocs.map((s) => s.id)).toEqual(
|
||||
expect.arrayContaining([
|
||||
'space:default',
|
||||
|
@ -123,7 +129,7 @@ describe('migration v2', () => {
|
|||
expect(d.migrationVersion.space).toEqual('6.6.0');
|
||||
expect(d.coreMigrationVersion).toEqual('7.13.0');
|
||||
});
|
||||
const fooDocs = await fetchDocs(client, '.kibana_8.0.0_001', 'foo');
|
||||
const fooDocs = await fetchDocs(client, targetIndex, 'foo');
|
||||
expect(fooDocs.map((f) => f.id)).toEqual(
|
||||
expect.arrayContaining([
|
||||
'P2SQfHkBs3dBRGh--No5',
|
||||
|
@ -155,13 +161,13 @@ describe('migration v2', () => {
|
|||
namespaceType: 'agnostic',
|
||||
migrations: {
|
||||
'6.6.0': (d) => d,
|
||||
'8.0.0': (d) => d,
|
||||
[kibanaVersion]: (d) => d,
|
||||
},
|
||||
});
|
||||
await root.start();
|
||||
|
||||
const client: ElasticsearchClient = esServer.es.getClient();
|
||||
const spacesDocsMigrated = await fetchDocs(client, '.kibana_8.0.0_001', 'space');
|
||||
const spacesDocsMigrated = await fetchDocs(client, targetIndex, 'space');
|
||||
expect(spacesDocsMigrated.map((s) => s.id)).toEqual(
|
||||
expect.arrayContaining([
|
||||
'space:default',
|
||||
|
@ -174,12 +180,12 @@ describe('migration v2', () => {
|
|||
])
|
||||
);
|
||||
spacesDocsMigrated.forEach((d) => {
|
||||
expect(d.migrationVersion.space).toEqual('8.0.0'); // should be migrated
|
||||
expect(d.coreMigrationVersion).toEqual('8.0.0');
|
||||
expect(d.migrationVersion.space).toEqual(kibanaVersion); // should be migrated
|
||||
expect(d.coreMigrationVersion).toEqual(kibanaVersion);
|
||||
});
|
||||
|
||||
// Make sure unmigrated foo docs are also still there in an unmigrated state
|
||||
const fooDocsUnmigrated = await fetchDocs(client, '.kibana_8.0.0_001', 'foo');
|
||||
const fooDocsUnmigrated = await fetchDocs(client, targetIndex, 'foo');
|
||||
expect(fooDocsUnmigrated.map((f) => f.id)).toEqual(
|
||||
expect.arrayContaining([
|
||||
'P2SQfHkBs3dBRGh--No5',
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue