Marton Greber has submitted this change and it was merged. ( http://gerrit.cloudera.org:8080/21823 )
Change subject: KUDU-3608: REST API for Metadata Management ...................................................................... KUDU-3608: REST API for Metadata Management This commit introduces a REST API integrated directly into the Kudu master web server to simplify metadata access and management. The API operates under the /api path and focuses exclusively on metadata-related operations. The following endpoints have been added: - GET /api/v1/tables - Lists all tables by name and ID. - POST /api/v1/tables - Creates a new table. - GET /api/v1/tables/<table_id> - Retrieves table details. - PUT /api/v1/tables/<table_id> - Updates table metadata. - DELETE /api/v1/tables/<table_id> - Deletes a table. HTTP Status Codes: Introduced additional HTTP status codes like 201 Created and 204 No Content for operations such as creating and deleting tables. Enhanced the web server's content-length check to include the PUT method, allowing it to handle errors similar to POST. Limitations: Deleting, altering, or retrieving a table object requires the table's ID. Operations using table names are not yet supported. Testing: Two new test files called rest_catalog-test.cc and spnego_rest_catalog-test.cc have been created to validate these endpoints using an internal mini-cluster setup. Both tests are based on the rest_catalog_test_base.h header file. These test files have been tested for flakiness and evaluated under high load to ensure stability. Usage: When running Kudu, the endpoints are accessible via the /api/v1/ path on the master web server. For POST and PUT endpoints, appropriate data must be provided with the HTTP request (e.g., via curl). Follow-up patches: - Support for multi-master setup - Adding ranger itests - Swagger/OpenAI documentation for the endpoint under /api/docs path Change-Id: I67f964c4f950edfde31772cafd5c3ed5d6b87413 Reviewed-on: http://gerrit.cloudera.org:8080/21823 Tested-by: Kudu Jenkins Reviewed-by: Marton Greber <[email protected]> Reviewed-by: Zoltan Chovan <[email protected]> Reviewed-by: Zoltan Martonka <[email protected]> --- M src/kudu/master/CMakeLists.txt M src/kudu/master/master.cc M src/kudu/master/master.h A src/kudu/master/rest_catalog-test.cc A src/kudu/master/rest_catalog_path_handlers.cc A src/kudu/master/rest_catalog_path_handlers.h A src/kudu/master/rest_catalog_test_base.h A src/kudu/master/spnego_rest_catalog-test.cc M src/kudu/server/webserver.cc M src/kudu/util/web_callback_registry.h 10 files changed, 1,395 insertions(+), 1 deletion(-) Approvals: Kudu Jenkins: Verified Marton Greber: Looks good to me, approved Zoltan Chovan: Looks good to me, but someone else must approve Zoltan Martonka: Looks good to me, but someone else must approve -- To view, visit http://gerrit.cloudera.org:8080/21823 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: kudu Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I67f964c4f950edfde31772cafd5c3ed5d6b87413 Gerrit-Change-Number: 21823 Gerrit-PatchSet: 34 Gerrit-Owner: Gabriella Lotz <[email protected]> Gerrit-Reviewer: Alexey Serbin <[email protected]> Gerrit-Reviewer: Gabriella Lotz <[email protected]> Gerrit-Reviewer: Kudu Jenkins (120) Gerrit-Reviewer: Marton Greber <[email protected]> Gerrit-Reviewer: Zoltan Chovan <[email protected]> Gerrit-Reviewer: Zoltan Martonka <[email protected]>
