From d1701ca62d2df2090cac076d025a8fdf32e3b85d Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Sat, 7 Dec 2024 08:14:37 +1100 Subject: [PATCH] [8.x] [Cloud Security] Refactoring the limit error message for agentless agent (#203257) (#203330) # Backport This will backport the following commits from `main` to `8.x`: - [[Cloud Security] Refactoring the limit error message for agentless agent (#203257)](https://github.com/elastic/kibana/pull/203257) ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) Co-authored-by: seanrathier --- .../server/services/agents/agentless_agent.ts | 27 ++++++++++--------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/x-pack/plugins/fleet/server/services/agents/agentless_agent.ts b/x-pack/plugins/fleet/server/services/agents/agentless_agent.ts index 6d1945fced809..3cd885beba455 100644 --- a/x-pack/plugins/fleet/server/services/agents/agentless_agent.ts +++ b/x-pack/plugins/fleet/server/services/agents/agentless_agent.ts @@ -37,6 +37,15 @@ import { listFleetServerHosts } from '../fleet_server_host'; import type { AgentlessConfig } from '../utils/agentless'; import { prependAgentlessApiBasePathToEndpoint, isAgentlessEnabled } from '../utils/agentless'; +interface AgentlessAgentErrorHandlingMessages { + [key: string]: { + [key: string]: { + log: string; + message: string; + }; + }; +} + class AgentlessAgentService { public async createAgentlessAgent( esClient: ElasticsearchClient, @@ -326,14 +335,12 @@ class AgentlessAgentService { throw this.getAgentlessAgentError(action, error.message, traceId); } - const ERROR_HANDLING_MESSAGES = this.getErrorHandlingMessages(agentlessPolicyId); + const ERROR_HANDLING_MESSAGES: AgentlessAgentErrorHandlingMessages = + this.getErrorHandlingMessages(agentlessPolicyId); if (error.response) { if (error.response.status in ERROR_HANDLING_MESSAGES) { - const handledResponseErrorMessage = - ERROR_HANDLING_MESSAGES[error.response.status as keyof typeof ERROR_HANDLING_MESSAGES][ - action - ]; + const handledResponseErrorMessage = ERROR_HANDLING_MESSAGES[error.response.status][action]; this.handleResponseError( action, error.response, @@ -426,7 +433,7 @@ class AgentlessAgentService { : new AgentlessAgentDeleteError(this.withRequestIdMessage(userMessage, traceId)); } - private getErrorHandlingMessages(agentlessPolicyId: string) { + private getErrorHandlingMessages(agentlessPolicyId: string): AgentlessAgentErrorHandlingMessages { return { 400: { create: { @@ -483,13 +490,7 @@ class AgentlessAgentService { create: { log: '[Agentless API] Creating the agentless agent failed with a status 429 for agentless policy, agentless agent limit has been reached for this deployment or project.', message: - 'the Agentless API could not create the agentless agent, you have reached the limit of agentless agents provisioned for this deployment or project. Consider removing some agentless agents and try again or use agent-based agents for this integration.', - }, - // this is likely to happen when deleting agentless agents, but covering it in case - delete: { - log: '[Agentless API] Deleting the agentless deployment failed with a status 429 for agentless policy, agentless agent limit has been reached for this deployment or project.', - message: - 'the Agentless API could not delete the agentless deployment, you have reached the limit of agentless agents provisioned for this deployment or project. Consider removing some agentless agents and try again or use agent-based agents for this integration.', + 'you have reached the limit for agentless provisioning. Please remove some or switch to agent-based integration.', }, }, 500: {