Skip to content

Commit e679b85

Browse files
John Schulzelasticmachine
andauthored
[7.x] [Ingest Manager] Ensure at least default Error handling on all routes (#77975) (#78086)
* [Ingest Manager] Ensure at least default Error handling on all routes (#77975) * res.customError -> defaultIngestErrorHandler * Missed a variable rename in prior commit * copying an invalid policy will 404; not 500 Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com> * Add import missed by backport script Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
1 parent b03c8bc commit e679b85

File tree

11 files changed

+89
-221
lines changed

11 files changed

+89
-221
lines changed

x-pack/plugins/ingest_manager/server/routes/agent/acks_handlers.ts

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import { RequestHandler } from 'kibana/server';
1010
import { AcksService } from '../../services/agents';
1111
import { AgentEvent } from '../../../common/types/models';
1212
import { PostAgentAcksRequest, PostAgentAcksResponse } from '../../../common/types/rest_spec';
13+
import { defaultIngestErrorHandler } from '../../errors';
1314

1415
export const postAgentAcksHandlerBuilder = function (
1516
ackService: AcksService
@@ -43,18 +44,8 @@ export const postAgentAcksHandlerBuilder = function (
4344
};
4445

4546
return response.ok({ body });
46-
} catch (e) {
47-
if (e.isBoom) {
48-
return response.customError({
49-
statusCode: e.output.statusCode,
50-
body: { message: e.message },
51-
});
52-
}
53-
54-
return response.customError({
55-
statusCode: 500,
56-
body: { message: e.message },
57-
});
47+
} catch (error) {
48+
return defaultIngestErrorHandler({ error, response });
5849
}
5950
};
6051
};

x-pack/plugins/ingest_manager/server/routes/agent/actions_handlers.ts

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { TypeOf } from '@kbn/config-schema';
1111
import { PostNewAgentActionRequestSchema } from '../../types/rest_spec';
1212
import { ActionsService } from '../../services/agents';
1313
import { PostNewAgentActionResponse } from '../../../common/types/rest_spec';
14+
import { defaultIngestErrorHandler } from '../../errors';
1415

1516
export const postNewAgentActionHandlerBuilder = function (
1617
actionsService: ActionsService
@@ -38,18 +39,8 @@ export const postNewAgentActionHandlerBuilder = function (
3839
};
3940

4041
return response.ok({ body });
41-
} catch (e) {
42-
if (e.isBoom) {
43-
return response.customError({
44-
statusCode: e.output.statusCode,
45-
body: { message: e.message },
46-
});
47-
}
48-
49-
return response.customError({
50-
statusCode: 500,
51-
body: { message: e.message },
52-
});
42+
} catch (error) {
43+
return defaultIngestErrorHandler({ error, response });
5344
}
5445
};
5546
};

x-pack/plugins/ingest_manager/server/routes/agent/handlers.ts

Lines changed: 19 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import {
3030
import * as AgentService from '../../services/agents';
3131
import * as APIKeyService from '../../services/api_keys';
3232
import { appContextService } from '../../services/app_context';
33+
import { defaultIngestErrorHandler } from '../../errors';
3334

3435
export const getAgentHandler: RequestHandler<TypeOf<
3536
typeof GetOneAgentRequestSchema.params
@@ -46,17 +47,14 @@ export const getAgentHandler: RequestHandler<TypeOf<
4647
};
4748

4849
return response.ok({ body });
49-
} catch (e) {
50-
if (soClient.errors.isNotFoundError(e)) {
50+
} catch (error) {
51+
if (soClient.errors.isNotFoundError(error)) {
5152
return response.notFound({
5253
body: { message: `Agent ${request.params.agentId} not found` },
5354
});
5455
}
5556

56-
return response.customError({
57-
statusCode: 500,
58-
body: { message: e.message },
59-
});
57+
return defaultIngestErrorHandler({ error, response });
6058
}
6159
};
6260

@@ -109,18 +107,15 @@ export const deleteAgentHandler: RequestHandler<TypeOf<
109107
};
110108

111109
return response.ok({ body });
112-
} catch (e) {
113-
if (e.isBoom) {
110+
} catch (error) {
111+
if (error.isBoom) {
114112
return response.customError({
115-
statusCode: e.output.statusCode,
113+
statusCode: error.output.statusCode,
116114
body: { message: `Agent ${request.params.agentId} not found` },
117115
});
118116
}
119117

120-
return response.customError({
121-
statusCode: 500,
122-
body: { message: e.message },
123-
});
118+
return defaultIngestErrorHandler({ error, response });
124119
}
125120
};
126121

@@ -144,17 +139,14 @@ export const updateAgentHandler: RequestHandler<
144139
};
145140

146141
return response.ok({ body });
147-
} catch (e) {
148-
if (e.isBoom && e.output.statusCode === 404) {
142+
} catch (error) {
143+
if (error.isBoom && error.output.statusCode === 404) {
149144
return response.notFound({
150145
body: { message: `Agent ${request.params.agentId} not found` },
151146
});
152147
}
153148

154-
return response.customError({
155-
statusCode: 500,
156-
body: { message: e.message },
157-
});
149+
return defaultIngestErrorHandler({ error, response });
158150
}
159151
};
160152

@@ -193,25 +185,8 @@ export const postAgentCheckinHandler: RequestHandler<
193185
};
194186

195187
return response.ok({ body });
196-
} catch (err) {
197-
const logger = appContextService.getLogger();
198-
if (err.isBoom) {
199-
if (err.output.statusCode >= 500) {
200-
logger.error(err);
201-
}
202-
203-
return response.customError({
204-
statusCode: err.output.statusCode,
205-
body: { message: err.output.payload.message },
206-
});
207-
}
208-
209-
logger.error(err);
210-
211-
return response.customError({
212-
statusCode: 500,
213-
body: { message: err.message },
214-
});
188+
} catch (error) {
189+
return defaultIngestErrorHandler({ error, response });
215190
}
216191
};
217192

@@ -250,18 +225,8 @@ export const postAgentEnrollHandler: RequestHandler<
250225
};
251226

252227
return response.ok({ body });
253-
} catch (e) {
254-
if (e.isBoom) {
255-
return response.customError({
256-
statusCode: e.output.statusCode,
257-
body: { message: e.message },
258-
});
259-
}
260-
261-
return response.customError({
262-
statusCode: 500,
263-
body: { message: e.message },
264-
});
228+
} catch (error) {
229+
return defaultIngestErrorHandler({ error, response });
265230
}
266231
};
267232

@@ -307,11 +272,8 @@ export const putAgentsReassignHandler: RequestHandler<
307272

308273
const body: PutAgentReassignResponse = {};
309274
return response.ok({ body });
310-
} catch (e) {
311-
return response.customError({
312-
statusCode: 500,
313-
body: { message: e.message },
314-
});
275+
} catch (error) {
276+
return defaultIngestErrorHandler({ error, response });
315277
}
316278
};
317279

@@ -330,10 +292,7 @@ export const getAgentStatusForAgentPolicyHandler: RequestHandler<
330292
const body: GetAgentStatusResponse = { results };
331293

332294
return response.ok({ body });
333-
} catch (e) {
334-
return response.customError({
335-
statusCode: 500,
336-
body: { message: e.message },
337-
});
295+
} catch (error) {
296+
return defaultIngestErrorHandler({ error, response });
338297
}
339298
};

x-pack/plugins/ingest_manager/server/routes/agent/unenroll_handler.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { TypeOf } from '@kbn/config-schema';
99
import { PostAgentUnenrollResponse } from '../../../common/types';
1010
import { PostAgentUnenrollRequestSchema } from '../../types';
1111
import * as AgentService from '../../services/agents';
12+
import { defaultIngestErrorHandler } from '../../errors';
1213

1314
export const postAgentsUnenrollHandler: RequestHandler<
1415
TypeOf<typeof PostAgentUnenrollRequestSchema.params>,
@@ -25,10 +26,7 @@ export const postAgentsUnenrollHandler: RequestHandler<
2526

2627
const body: PostAgentUnenrollResponse = {};
2728
return response.ok({ body });
28-
} catch (e) {
29-
return response.customError({
30-
statusCode: 500,
31-
body: { message: e.message },
32-
});
29+
} catch (error) {
30+
return defaultIngestErrorHandler({ error, response });
3331
}
3432
};

x-pack/plugins/ingest_manager/server/routes/agent_policy/handlers.ts

Lines changed: 17 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import {
3232
DeleteAgentPolicyResponse,
3333
GetFullAgentPolicyResponse,
3434
} from '../../../common';
35+
import { defaultIngestErrorHandler } from '../../errors';
3536

3637
export const getAgentPoliciesHandler: RequestHandler<
3738
undefined,
@@ -64,11 +65,8 @@ export const getAgentPoliciesHandler: RequestHandler<
6465
);
6566

6667
return response.ok({ body });
67-
} catch (e) {
68-
return response.customError({
69-
statusCode: 500,
70-
body: { message: e.message },
71-
});
68+
} catch (error) {
69+
return defaultIngestErrorHandler({ error, response });
7270
}
7371
};
7472

@@ -91,11 +89,8 @@ export const getOneAgentPolicyHandler: RequestHandler<TypeOf<
9189
body: { message: 'Agent policy not found' },
9290
});
9391
}
94-
} catch (e) {
95-
return response.customError({
96-
statusCode: 500,
97-
body: { message: e.message },
98-
});
92+
} catch (error) {
93+
return defaultIngestErrorHandler({ error, response });
9994
}
10095
};
10196

@@ -144,11 +139,8 @@ export const createAgentPolicyHandler: RequestHandler<
144139
return response.ok({
145140
body,
146141
});
147-
} catch (e) {
148-
return response.customError({
149-
statusCode: 500,
150-
body: { message: e.message },
151-
});
142+
} catch (error) {
143+
return defaultIngestErrorHandler({ error, response });
152144
}
153145
};
154146

@@ -172,11 +164,8 @@ export const updateAgentPolicyHandler: RequestHandler<
172164
return response.ok({
173165
body,
174166
});
175-
} catch (e) {
176-
return response.customError({
177-
statusCode: 500,
178-
body: { message: e.message },
179-
});
167+
} catch (error) {
168+
return defaultIngestErrorHandler({ error, response });
180169
}
181170
};
182171

@@ -200,11 +189,8 @@ export const copyAgentPolicyHandler: RequestHandler<
200189
return response.ok({
201190
body,
202191
});
203-
} catch (e) {
204-
return response.customError({
205-
statusCode: 500,
206-
body: { message: e.message },
207-
});
192+
} catch (error) {
193+
return defaultIngestErrorHandler({ error, response });
208194
}
209195
};
210196

@@ -222,11 +208,8 @@ export const deleteAgentPoliciesHandler: RequestHandler<
222208
return response.ok({
223209
body,
224210
});
225-
} catch (e) {
226-
return response.customError({
227-
statusCode: 500,
228-
body: { message: e.message },
229-
});
211+
} catch (error) {
212+
return defaultIngestErrorHandler({ error, response });
230213
}
231214
};
232215

@@ -255,11 +238,8 @@ export const getFullAgentPolicy: RequestHandler<
255238
body: { message: 'Agent policy not found' },
256239
});
257240
}
258-
} catch (e) {
259-
return response.customError({
260-
statusCode: 500,
261-
body: { message: e.message },
262-
});
241+
} catch (error) {
242+
return defaultIngestErrorHandler({ error, response });
263243
}
264244
};
265245

@@ -292,10 +272,7 @@ export const downloadFullAgentPolicy: RequestHandler<
292272
body: { message: 'Agent policy not found' },
293273
});
294274
}
295-
} catch (e) {
296-
return response.customError({
297-
statusCode: 500,
298-
body: { message: e.message },
299-
});
275+
} catch (error) {
276+
return defaultIngestErrorHandler({ error, response });
300277
}
301278
};

x-pack/plugins/ingest_manager/server/routes/data_streams/handlers.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import { RequestHandler, SavedObjectsClientContract } from 'src/core/server';
77
import { DataStream } from '../../types';
88
import { GetDataStreamsResponse, KibanaAssetType } from '../../../common';
99
import { getPackageSavedObjects, getKibanaSavedObject } from '../../services/epm/packages/get';
10+
import { defaultIngestErrorHandler } from '../../errors';
1011

1112
const DATA_STREAM_INDEX_PATTERN = 'logs-*-*,metrics-*-*';
1213

@@ -157,11 +158,8 @@ export const getListHandler: RequestHandler = async (context, request, response)
157158
return response.ok({
158159
body,
159160
});
160-
} catch (e) {
161-
return response.customError({
162-
statusCode: 500,
163-
body: { message: e.message },
164-
});
161+
} catch (error) {
162+
return defaultIngestErrorHandler({ error, response });
165163
}
166164
};
167165

0 commit comments

Comments
 (0)