From 011093f909578ad49087bfc2ce7092b8b00d701d Mon Sep 17 00:00:00 2001 From: Joe Portner <5295965+jportner@users.noreply.github.com> Date: Thu, 21 Jan 2021 22:56:45 -0500 Subject: [PATCH 1/2] Coerce Kibana version in the document migrator This is required for CI runs when the Kibana version is a snapshot. --- .../migrations/core/document_migrator.test.ts | 14 ++++++++++++++ .../migrations/core/document_migrator.ts | 3 ++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/core/server/saved_objects/migrations/core/document_migrator.test.ts b/src/core/server/saved_objects/migrations/core/document_migrator.test.ts index 741f715ba6ebe6..95331f7f008086 100644 --- a/src/core/server/saved_objects/migrations/core/document_migrator.test.ts +++ b/src/core/server/saved_objects/migrations/core/document_migrator.test.ts @@ -206,6 +206,20 @@ describe('DocumentMigrator', () => { ); }); + it('coerces the current Kibana version if it has a hyphen', () => { + const invalidDefinition = { + kibanaVersion: '3.2.0-SNAPSHOT', + typeRegistry: createRegistry({ + name: 'foo', + convertToMultiNamespaceTypeVersion: '3.2.0', + namespaceType: 'multiple', + }), + minimumConvertVersion: '0.0.0', + log: mockLogger, + }; + expect(() => new DocumentMigrator(invalidDefinition)).not.toThrowError(); + }); + it('validates convertToMultiNamespaceTypeVersion is not used on a patch version', () => { const invalidDefinition = { kibanaVersion: '3.2.3', diff --git a/src/core/server/saved_objects/migrations/core/document_migrator.ts b/src/core/server/saved_objects/migrations/core/document_migrator.ts index e4b89a949d3cf7..e93586ec7ce4c2 100644 --- a/src/core/server/saved_objects/migrations/core/document_migrator.ts +++ b/src/core/server/saved_objects/migrations/core/document_migrator.ts @@ -159,10 +159,11 @@ export class DocumentMigrator implements VersionedTransformer { */ constructor({ typeRegistry, - kibanaVersion, + kibanaVersion: rawKibanaVersion, minimumConvertVersion = DEFAULT_MINIMUM_CONVERT_VERSION, log, }: DocumentMigratorOptions) { + const kibanaVersion = rawKibanaVersion.split('-')[0]; // coerce a semver-like string (x.y.z-SNAPSHOT) or prerelease version (x.y.z-alpha) to a regular semver (x.y.z) validateMigrationDefinition(typeRegistry, kibanaVersion, minimumConvertVersion); this.documentMigratorOptions = { typeRegistry, kibanaVersion, log }; From d608741fed9985619bf199af229f496bd035018f Mon Sep 17 00:00:00 2001 From: Joe Portner <5295965+jportner@users.noreply.github.com> Date: Thu, 21 Jan 2021 23:07:41 -0500 Subject: [PATCH 2/2] Fix typo --- .../saved_objects/migrations/core/document_migrator.test.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/core/server/saved_objects/migrations/core/document_migrator.test.ts b/src/core/server/saved_objects/migrations/core/document_migrator.test.ts index 95331f7f008086..6ba652abda3d59 100644 --- a/src/core/server/saved_objects/migrations/core/document_migrator.test.ts +++ b/src/core/server/saved_objects/migrations/core/document_migrator.test.ts @@ -207,7 +207,7 @@ describe('DocumentMigrator', () => { }); it('coerces the current Kibana version if it has a hyphen', () => { - const invalidDefinition = { + const validDefinition = { kibanaVersion: '3.2.0-SNAPSHOT', typeRegistry: createRegistry({ name: 'foo', @@ -217,7 +217,7 @@ describe('DocumentMigrator', () => { minimumConvertVersion: '0.0.0', log: mockLogger, }; - expect(() => new DocumentMigrator(invalidDefinition)).not.toThrowError(); + expect(() => new DocumentMigrator(validDefinition)).not.toThrowError(); }); it('validates convertToMultiNamespaceTypeVersion is not used on a patch version', () => {