def log_source_search(request): """ log_source_serach handles requests from the log_source endpoint to search for logs beginning with given keyword. **GET /v1/log_source/search** Example: ``/v1/log_source/search`` **Query Parameters:** * **request.body** -- the json string of log keyword *Example request.body* :: "{ 'keyword': 'foo', }" *Example Response* :: [ {'bucket': 'bucket_name', 'log_name': 'foo' 'uri': 's3://bucket_name/logs/foo/' }, {'bucket': 'bucket_name', 'log_name': 'foo_bar' 'uri': 's3://bucket_name/logs/foo_bar/' }, ] ============ =========== Status Code Description ============ =========== **200** success **404** invalid value(s) **500** unknown exception ============ =========== * **Encoding type:** *application/json* """ try: return 200, search_log_source_by_keyword(request.body) except ValueError as e: return 404, {"error": repr(e)} except HTTPError as e: return 404, {"error": repr(e)} except Exception as unknown_exception: return 500, {"error": repr(unknown_exception)}
def log_source_search(request): """ log_source_serach handles requests from the log_source endpoint to search for logs beginning with given keyword. **GET /v1/log_source/search** Example: ``/v1/log_source/search`` **Query Parameters:** * **request.body** -- the json string of log keyword *Example request.body* :: "{ 'keyword': 'foo', }" *Example Response* :: [ {'bucket': 'bucket_name', 'log_name': 'foo' 'uri': 's3://bucket_name/logs/foo/' }, {'bucket': 'bucket_name', 'log_name': 'foo_bar' 'uri': 's3://bucket_name/logs/foo_bar/' }, ] ============ =========== Status Code Description ============ =========== **200** success **404** invalid value(s) **500** unknown exception ============ =========== * **Encoding type:** *application/json* """ try: return 200, search_log_source_by_keyword(request.body) except ValueError as e: return 404, {'error': repr(e)} except HTTPError as e: return 404, {'error': repr(e)} except Exception as unknown_exception: return 500, {'error': repr(unknown_exception)}
def test_search_log_source_with_errors(self, mock_response, error_code): mock_response.status_code = error_code request_body = "{'keyword': 'fake_request'}" with pytest.raises(HTTPError): search_log_source_by_keyword(request_body)