From 786c01d111e50806fb8f2a1b2fbc227b595bda94 Mon Sep 17 00:00:00 2001 From: Sonja Krause-Harder Date: Tue, 28 Jul 2020 18:26:48 +0200 Subject: [PATCH] [Ingest Manager] Don't send kibana version to registry on master. (#73415) * Don't send kibana version to registry on master. * Adjust test. * Create correct app context in mocks. # Conflicts: # x-pack/test/ingest_manager_api_integration/apis/epm/list.ts --- x-pack/plugins/ingest_manager/server/mocks.ts | 1 + x-pack/plugins/ingest_manager/server/plugin.ts | 5 +++++ .../ingest_manager/server/services/app_context.ts | 9 +++++++++ .../server/services/epm/registry/index.ts | 14 ++++++++++---- 4 files changed, 25 insertions(+), 4 deletions(-) diff --git a/x-pack/plugins/ingest_manager/server/mocks.ts b/x-pack/plugins/ingest_manager/server/mocks.ts index f305d9dd0c1a77..52cd2947830875 100644 --- a/x-pack/plugins/ingest_manager/server/mocks.ts +++ b/x-pack/plugins/ingest_manager/server/mocks.ts @@ -18,6 +18,7 @@ export const createAppContextStartContractMock = (): IngestManagerAppContext => logger: loggingSystemMock.create().get(), isProductionMode: true, kibanaVersion: '8.0.0', + kibanaBranch: 'master', }; }; diff --git a/x-pack/plugins/ingest_manager/server/plugin.ts b/x-pack/plugins/ingest_manager/server/plugin.ts index 69af475886bb92..5664a875010166 100644 --- a/x-pack/plugins/ingest_manager/server/plugin.ts +++ b/x-pack/plugins/ingest_manager/server/plugin.ts @@ -15,6 +15,7 @@ import { HttpServiceSetup, } from 'kibana/server'; import { UsageCollectionSetup } from 'src/plugins/usage_collection/server'; +import packageJSON from '../../../../package.json'; import { LicensingPluginSetup, ILicense } from '../../licensing/server'; import { EncryptedSavedObjectsPluginStart, @@ -85,6 +86,7 @@ export interface IngestManagerAppContext { savedObjects: SavedObjectsServiceStart; isProductionMode: boolean; kibanaVersion: string; + kibanaBranch: string; cloud?: CloudSetup; logger?: Logger; httpSetup?: HttpServiceSetup; @@ -145,6 +147,7 @@ export class IngestManagerPlugin private isProductionMode: boolean; private kibanaVersion: string; + private kibanaBranch: string; private httpSetup: HttpServiceSetup | undefined; private encryptedSavedObjectsSetup: EncryptedSavedObjectsPluginSetup | undefined; @@ -152,6 +155,7 @@ export class IngestManagerPlugin this.config$ = this.initializerContext.config.create(); this.isProductionMode = this.initializerContext.env.mode.prod; this.kibanaVersion = this.initializerContext.env.packageInfo.version; + this.kibanaBranch = packageJSON.branch; this.logger = this.initializerContext.logger.get(); } @@ -257,6 +261,7 @@ export class IngestManagerPlugin savedObjects: core.savedObjects, isProductionMode: this.isProductionMode, kibanaVersion: this.kibanaVersion, + kibanaBranch: this.kibanaBranch, httpSetup: this.httpSetup, cloud: this.cloud, logger: this.logger, diff --git a/x-pack/plugins/ingest_manager/server/services/app_context.ts b/x-pack/plugins/ingest_manager/server/services/app_context.ts index 4d109b73d12d90..bdc7a443ba6dd0 100644 --- a/x-pack/plugins/ingest_manager/server/services/app_context.ts +++ b/x-pack/plugins/ingest_manager/server/services/app_context.ts @@ -24,6 +24,7 @@ class AppContextService { private savedObjects: SavedObjectsServiceStart | undefined; private isProductionMode: boolean = false; private kibanaVersion: string | undefined; + private kibanaBranch: string | undefined; private cloud?: CloudSetup; private logger: Logger | undefined; private httpSetup?: HttpServiceSetup; @@ -38,6 +39,7 @@ class AppContextService { this.cloud = appContext.cloud; this.logger = appContext.logger; this.kibanaVersion = appContext.kibanaVersion; + this.kibanaBranch = appContext.kibanaBranch; this.httpSetup = appContext.httpSetup; if (appContext.config$) { @@ -125,6 +127,13 @@ class AppContextService { return this.kibanaVersion; } + public getKibanaBranch() { + if (!this.kibanaBranch) { + throw new Error('Kibana branch is not set.'); + } + return this.kibanaBranch; + } + public addExternalCallback(type: ExternalCallback[0], callback: ExternalCallback[1]) { if (!this.externalCallbacks.has(type)) { this.externalCallbacks.set(type, new Set()); diff --git a/x-pack/plugins/ingest_manager/server/services/epm/registry/index.ts b/x-pack/plugins/ingest_manager/server/services/epm/registry/index.ts index 7fb13e5e671d05..c7f2df38fe41a4 100644 --- a/x-pack/plugins/ingest_manager/server/services/epm/registry/index.ts +++ b/x-pack/plugins/ingest_manager/server/services/epm/registry/index.ts @@ -40,6 +40,8 @@ export const pkgToPkgKey = ({ name, version }: { name: string; version: string } export async function fetchList(params?: SearchParams): Promise { const registryUrl = getRegistryUrl(); const url = new URL(`${registryUrl}/search`); + const kibanaVersion = appContextService.getKibanaVersion().split('-')[0]; // may be x.y.z-SNAPSHOT + const kibanaBranch = appContextService.getKibanaBranch(); if (params) { if (params.category) { url.searchParams.set('category', params.category); @@ -48,8 +50,9 @@ export async function fetchList(params?: SearchParams): Promise { const registryUrl = getRegistryUrl(); + const kibanaVersion = appContextService.getKibanaVersion().split('-')[0]; // may be x.y.z-SNAPSHOT + const kibanaBranch = appContextService.getKibanaBranch(); const url = new URL( `${registryUrl}/search?package=${packageName}&internal=true&experimental=true` ); - const kibanaVersion = appContextService.getKibanaVersion().split('-')[0]; // may be 8.0.0-SNAPSHOT - if (kibanaVersion) { + + // on master, request all packages regardless of version + if (kibanaVersion && kibanaBranch !== 'master') { url.searchParams.set('kibana.version', kibanaVersion); } const res = await fetchUrl(url.toString());