From 7ede2cfe1f3223a511a2b69d30822c76f8dc15d0 Mon Sep 17 00:00:00 2001 From: Sonja Krause-Harder Date: Tue, 2 Mar 2021 10:13:52 +0100 Subject: [PATCH 1/2] Report, not fail, on ingest manager setup errors --- .../common/types/rest_spec/ingest_setup.ts | 1 + .../fleet/server/routes/setup/handlers.ts | 18 ++++++++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/x-pack/plugins/fleet/common/types/rest_spec/ingest_setup.ts b/x-pack/plugins/fleet/common/types/rest_spec/ingest_setup.ts index 12054aff124f7..c28ff0279095c 100644 --- a/x-pack/plugins/fleet/common/types/rest_spec/ingest_setup.ts +++ b/x-pack/plugins/fleet/common/types/rest_spec/ingest_setup.ts @@ -7,4 +7,5 @@ export interface PostIngestSetupResponse { isInitialized: boolean; + packageInstallUpgradeErrors?: any[]; } diff --git a/x-pack/plugins/fleet/server/routes/setup/handlers.ts b/x-pack/plugins/fleet/server/routes/setup/handlers.ts index b306b4d6802ad..f15acd3445114 100644 --- a/x-pack/plugins/fleet/server/routes/setup/handlers.ts +++ b/x-pack/plugins/fleet/server/routes/setup/handlers.ts @@ -63,13 +63,18 @@ export const createFleetSetupHandler: RequestHandler< try { const soClient = context.core.savedObjects.client; const esClient = context.core.elasticsearch.client.asCurrentUser; - await setupIngestManager(soClient, esClient); + const packageInstallUpgradeErrors = []; + try { + await setupIngestManager(soClient, esClient); + } catch (error) { + packageInstallUpgradeErrors.push(error); + } await setupFleet(soClient, esClient, { forceRecreate: request.body?.forceRecreate ?? false, }); return response.ok({ - body: { isInitialized: true }, + body: { isInitialized: true, packageInstallUpgradeErrors }, }); } catch (error) { return defaultIngestErrorHandler({ error, response }); @@ -81,8 +86,13 @@ export const FleetSetupHandler: RequestHandler = async (context, request, respon const esClient = context.core.elasticsearch.client.asCurrentUser; try { - const body: PostIngestSetupResponse = { isInitialized: true }; - await setupIngestManager(soClient, esClient); + const packageInstallUpgradeErrors = []; + try { + await setupIngestManager(soClient, esClient); + } catch (error) { + packageInstallUpgradeErrors.push(error); + } + const body: PostIngestSetupResponse = { isInitialized: true, packageInstallUpgradeErrors }; return response.ok({ body, }); From d218541ae1796ab1d9978a1e2051007bc1ae00bd Mon Sep 17 00:00:00 2001 From: Sonja Krause-Harder Date: Thu, 11 Mar 2021 13:10:52 +0100 Subject: [PATCH 2/2] Suppress NotFound error when deleting saved objects. --- x-pack/plugins/fleet/server/services/epm/packages/remove.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/fleet/server/services/epm/packages/remove.ts b/x-pack/plugins/fleet/server/services/epm/packages/remove.ts index da407c1d4cfa0..31185b858196c 100644 --- a/x-pack/plugins/fleet/server/services/epm/packages/remove.ts +++ b/x-pack/plugins/fleet/server/services/epm/packages/remove.ts @@ -78,6 +78,7 @@ export async function removeInstallation(options: { return installedAssets; } +// TODO we have both deleteKibanaAssets and deleteKibanaSavedObjectsAssets (below) function deleteKibanaAssets( installedObjects: KibanaAssetReference[], savedObjectsClient: SavedObjectsClientContract @@ -135,6 +136,7 @@ async function deleteTemplate(esClient: ElasticsearchClient, name: string): Prom } } +// TODO we have both deleteKibanaSavedObjectsAssets and deleteKibanaAssets (above) export async function deleteKibanaSavedObjectsAssets( savedObjectsClient: SavedObjectsClientContract, installedRefs: AssetReference[] @@ -152,6 +154,8 @@ export async function deleteKibanaSavedObjectsAssets( try { await Promise.all(deletePromises); } catch (err) { - logger.warn(err); + if (!savedObjectsClient.errors.isNotFoundError(err)) { + logger.error(err); + } } }