Gabriella Lotz created KUDU-3639:
------------------------------------
Summary: Implement {Delete/Alter/Create}Table Functions Without
RpcContext
Key: KUDU-3639
URL: https://issues.apache.org/jira/browse/KUDU-3639
Project: Kudu
Issue Type: New Feature
Reporter: Gabriella Lotz
Assignee: Gabriella Lotz
The CatalogManager::\{DeleteTableRpc, CreateTable, AlterTableRpc} functions
currently rely on rpc::RpcContext to extract the username of the requestor for
authorization. However, in the REST catalog API implementation, RpcContext is
not used, and only the username is directly available.
To support REST API functionality, new functions are required that replace
RpcContext with an explicitly provided username while maintaining the same core
logic for table operations.
{code:java}
Status CatalogManager::DeleteTableRpc(const DeleteTableRequestPB& req,
DeleteTableResponsePB* resp,
rpc::RpcContext* rpc) { LOG(INFO) << Substitute("Servicing
DeleteTable request from $0:\n$1",
RequestorString(rpc), SecureShortDebugString(req));
leader_lock_.AssertAcquiredForReading();
optional<string> user; if (rpc) {
user.emplace(rpc->remote_user().username()); }{code}
Requirements:
* Create new functions:
** CatalogManager::DeleteTableWithUser
** CatalogManager::AlterTableWithUser
** CatalogManager::CreateTableWithUser
* These functions should:
** Accept a username parameter instead of rpc::RpcContext.
** Implement the same authorization, logging, and HMS integration logic as
their corresponding RPC versions (DeleteTableRpc, AlterTableRpc, and
CreateTable).
** Refactor shared logic between the existing RPC functions and the new
\{Delete/Alter/Create}TableWithUser functions into reusable helper functions to
minimize code duplication.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)