Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Ingest Manager] Ensure at least default Error handling on all routes #77975

Merged
merged 4 commits into from
Sep 21, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 3 additions & 12 deletions x-pack/plugins/ingest_manager/server/routes/agent/acks_handlers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import { RequestHandler } from 'kibana/server';
import { AcksService } from '../../services/agents';
import { AgentEvent } from '../../../common/types/models';
import { PostAgentAcksRequest, PostAgentAcksResponse } from '../../../common/types/rest_spec';
import { defaultIngestErrorHandler } from '../../errors';

export const postAgentAcksHandlerBuilder = function (
ackService: AcksService
Expand Down Expand Up @@ -43,18 +44,8 @@ export const postAgentAcksHandlerBuilder = function (
};

return response.ok({ body });
} catch (e) {
if (e.isBoom) {
return response.customError({
statusCode: e.output.statusCode,
body: { message: e.message },
});
}

return response.customError({
statusCode: 500,
body: { message: e.message },
});
} catch (error) {
return defaultIngestErrorHandler({ error, response });
}
};
};
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import { TypeOf } from '@kbn/config-schema';
import { PostNewAgentActionRequestSchema } from '../../types/rest_spec';
import { ActionsService } from '../../services/agents';
import { PostNewAgentActionResponse } from '../../../common/types/rest_spec';
import { defaultIngestErrorHandler } from '../../errors';

export const postNewAgentActionHandlerBuilder = function (
actionsService: ActionsService
Expand Down Expand Up @@ -38,18 +39,8 @@ export const postNewAgentActionHandlerBuilder = function (
};

return response.ok({ body });
} catch (e) {
if (e.isBoom) {
return response.customError({
statusCode: e.output.statusCode,
body: { message: e.message },
});
}

return response.customError({
statusCode: 500,
body: { message: e.message },
});
} catch (error) {
return defaultIngestErrorHandler({ error, response });
}
};
};
78 changes: 18 additions & 60 deletions x-pack/plugins/ingest_manager/server/routes/agent/handlers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -47,17 +47,14 @@ export const getAgentHandler: RequestHandler<TypeOf<
};

return response.ok({ body });
} catch (e) {
if (soClient.errors.isNotFoundError(e)) {
} catch (error) {
if (soClient.errors.isNotFoundError(error)) {
return response.notFound({
body: { message: `Agent ${request.params.agentId} not found` },
});
}

return response.customError({
statusCode: 500,
body: { message: e.message },
});
return defaultIngestErrorHandler({ error, response });
}
};

Expand Down Expand Up @@ -106,18 +103,15 @@ export const deleteAgentHandler: RequestHandler<TypeOf<
};

return response.ok({ body });
} catch (e) {
if (e.isBoom) {
} catch (error) {
if (error.isBoom) {
return response.customError({
statusCode: e.output.statusCode,
statusCode: error.output.statusCode,
body: { message: `Agent ${request.params.agentId} not found` },
});
}

return response.customError({
statusCode: 500,
body: { message: e.message },
});
return defaultIngestErrorHandler({ error, response });
}
};

Expand All @@ -141,17 +135,14 @@ export const updateAgentHandler: RequestHandler<
};

return response.ok({ body });
} catch (e) {
if (e.isBoom && e.output.statusCode === 404) {
} catch (error) {
if (error.isBoom && error.output.statusCode === 404) {
return response.notFound({
body: { message: `Agent ${request.params.agentId} not found` },
});
}

return response.customError({
statusCode: 500,
body: { message: e.message },
});
return defaultIngestErrorHandler({ error, response });
}
};

Expand Down Expand Up @@ -190,25 +181,8 @@ export const postAgentCheckinHandler: RequestHandler<
};

return response.ok({ body });
} catch (err) {
const logger = appContextService.getLogger();
if (err.isBoom) {
if (err.output.statusCode >= 500) {
logger.error(err);
}

return response.customError({
statusCode: err.output.statusCode,
body: { message: err.output.payload.message },
});
}

logger.error(err);

return response.customError({
statusCode: 500,
body: { message: err.message },
});
} catch (error) {
return defaultIngestErrorHandler({ error, response });
}
};

Expand Down Expand Up @@ -247,18 +221,8 @@ export const postAgentEnrollHandler: RequestHandler<
};

return response.ok({ body });
} catch (e) {
if (e.isBoom) {
return response.customError({
statusCode: e.output.statusCode,
body: { message: e.message },
});
}

return response.customError({
statusCode: 500,
body: { message: e.message },
});
} catch (error) {
return defaultIngestErrorHandler({ error, response });
}
};

Expand Down Expand Up @@ -301,11 +265,8 @@ export const putAgentsReassignHandler: RequestHandler<

const body: PutAgentReassignResponse = {};
return response.ok({ body });
} catch (e) {
return response.customError({
statusCode: 500,
body: { message: e.message },
});
} catch (error) {
return defaultIngestErrorHandler({ error, response });
}
};

Expand All @@ -324,10 +285,7 @@ export const getAgentStatusForAgentPolicyHandler: RequestHandler<
const body: GetAgentStatusResponse = { results };

return response.ok({ body });
} catch (e) {
return response.customError({
statusCode: 500,
body: { message: e.message },
});
} catch (error) {
return defaultIngestErrorHandler({ error, response });
}
};
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import { TypeOf } from '@kbn/config-schema';
import { PostAgentUnenrollResponse } from '../../../common/types';
import { PostAgentUnenrollRequestSchema } from '../../types';
import * as AgentService from '../../services/agents';
import { defaultIngestErrorHandler } from '../../errors';

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

const body: PostAgentUnenrollResponse = {};
return response.ok({ body });
} catch (e) {
return response.customError({
statusCode: 500,
body: { message: e.message },
});
} catch (error) {
return defaultIngestErrorHandler({ error, response });
}
};
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ import {
DeleteAgentPolicyResponse,
GetFullAgentPolicyResponse,
} from '../../../common';
import { defaultIngestErrorHandler } from '../../errors';

export const getAgentPoliciesHandler: RequestHandler<
undefined,
Expand Down Expand Up @@ -64,11 +65,8 @@ export const getAgentPoliciesHandler: RequestHandler<
);

return response.ok({ body });
} catch (e) {
return response.customError({
statusCode: 500,
body: { message: e.message },
});
} catch (error) {
return defaultIngestErrorHandler({ error, response });
}
};

Expand All @@ -91,11 +89,8 @@ export const getOneAgentPolicyHandler: RequestHandler<TypeOf<
body: { message: 'Agent policy not found' },
});
}
} catch (e) {
return response.customError({
statusCode: 500,
body: { message: e.message },
});
} catch (error) {
return defaultIngestErrorHandler({ error, response });
}
};

Expand Down Expand Up @@ -144,11 +139,8 @@ export const createAgentPolicyHandler: RequestHandler<
return response.ok({
body,
});
} catch (e) {
return response.customError({
statusCode: 500,
body: { message: e.message },
});
} catch (error) {
return defaultIngestErrorHandler({ error, response });
}
};

Expand All @@ -172,11 +164,8 @@ export const updateAgentPolicyHandler: RequestHandler<
return response.ok({
body,
});
} catch (e) {
return response.customError({
statusCode: 500,
body: { message: e.message },
});
} catch (error) {
return defaultIngestErrorHandler({ error, response });
}
};

Expand All @@ -200,11 +189,8 @@ export const copyAgentPolicyHandler: RequestHandler<
return response.ok({
body,
});
} catch (e) {
return response.customError({
statusCode: 500,
body: { message: e.message },
});
} catch (error) {
return defaultIngestErrorHandler({ error, response });
}
};

Expand All @@ -222,11 +208,8 @@ export const deleteAgentPoliciesHandler: RequestHandler<
return response.ok({
body,
});
} catch (e) {
return response.customError({
statusCode: 500,
body: { message: e.message },
});
} catch (error) {
return defaultIngestErrorHandler({ error, response });
}
};

Expand Down Expand Up @@ -255,11 +238,8 @@ export const getFullAgentPolicy: RequestHandler<
body: { message: 'Agent policy not found' },
});
}
} catch (e) {
return response.customError({
statusCode: 500,
body: { message: e.message },
});
} catch (error) {
return defaultIngestErrorHandler({ error, response });
}
};

Expand Down Expand Up @@ -292,10 +272,7 @@ export const downloadFullAgentPolicy: RequestHandler<
body: { message: 'Agent policy not found' },
});
}
} catch (e) {
return response.customError({
statusCode: 500,
body: { message: e.message },
});
} catch (error) {
return defaultIngestErrorHandler({ error, response });
}
};
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import { RequestHandler, SavedObjectsClientContract } from 'src/core/server';
import { DataStream } from '../../types';
import { GetDataStreamsResponse, KibanaAssetType } from '../../../common';
import { getPackageSavedObjects, getKibanaSavedObject } from '../../services/epm/packages/get';
import { defaultIngestErrorHandler } from '../../errors';

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

Expand Down Expand Up @@ -157,11 +158,8 @@ export const getListHandler: RequestHandler = async (context, request, response)
return response.ok({
body,
});
} catch (e) {
return response.customError({
statusCode: 500,
body: { message: e.message },
});
} catch (error) {
return defaultIngestErrorHandler({ error, response });
}
};

Expand Down
Loading