Skip to content

Commit

Permalink
Fix database field in audit log move operations (ydb-platform#14652)
Browse files Browse the repository at this point in the history
  • Loading branch information
UgnineSirdis authored Feb 17, 2025
1 parent 43be35b commit 0921658
Showing 1 changed file with 23 additions and 3 deletions.
26 changes: 23 additions & 3 deletions ydb/core/tx/schemeshard/schemeshard_audit_log.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,26 @@ TPath DatabasePathFromWorkingDir(TSchemeShard* SS, const TString &opWorkingDir)
return databasePath;
}

TPath DatabasePathFromModifySchemeOperation(TSchemeShard* SS, const NKikimrSchemeOp::TModifyScheme& operation) {
if (operation.GetWorkingDir().empty()) {
// Moving operations does not have working directory. It is valid to take src or dst as directory for database
if (operation.HasMoveTable()) {
return DatabasePathFromWorkingDir(SS, operation.GetMoveTable().GetSrcPath());
}
if (operation.HasMoveSequence()) {
return DatabasePathFromWorkingDir(SS, operation.GetMoveSequence().GetSrcPath());
}
if (operation.HasMoveIndex()) {
return DatabasePathFromWorkingDir(SS, operation.GetMoveIndex().GetTablePath());
}
if (operation.HasMoveTableIndex()) {
return DatabasePathFromWorkingDir(SS, operation.GetMoveTableIndex().GetSrcPath());
}
}

return DatabasePathFromWorkingDir(SS, operation.GetWorkingDir());
}

} // anonymous namespace

void AuditLogModifySchemeOperation(const NKikimrSchemeOp::TModifyScheme& operation,
Expand All @@ -87,7 +107,7 @@ void AuditLogModifySchemeOperation(const NKikimrSchemeOp::TModifyScheme& operati
ui64 txId, const TParts& additionalParts) {
auto logEntry = MakeAuditLogFragment(operation);

TPath databasePath = DatabasePathFromWorkingDir(SS, operation.GetWorkingDir());
TPath databasePath = DatabasePathFromModifySchemeOperation(SS, operation);
auto [cloud_id, folder_id, database_id] = GetDatabaseCloudIds(databasePath);
auto address = NKikimr::NAddressClassifier::ExtractAddress(peerName);

Expand Down Expand Up @@ -140,7 +160,7 @@ void AuditLogModifySchemeOperation(const NKikimrSchemeOp::TModifyScheme& operati

void AuditLogModifySchemeTransaction(const NKikimrScheme::TEvModifySchemeTransaction& request,
const NKikimrScheme::TEvModifySchemeTransactionResult& response, TSchemeShard* SS,
const TString& peerName, const TString& userSID, const TString& sanitizedToken) {
const TString& peerName, const TString& userSID, const TString& sanitizedToken) {
// Each TEvModifySchemeTransaction.Transaction is a self sufficient operation and should be logged independently
// (even if it was packed into a single TxProxy transaction with some other operations).
const auto txId = request.GetTxId();
Expand All @@ -163,7 +183,7 @@ void AuditLogModifySchemeTransactionDeprecated(const NKikimrScheme::TEvModifySch
for (const auto& operation : request.GetTransaction()) {
auto logEntry = MakeAuditLogFragment(operation);

TPath databasePath = DatabasePathFromWorkingDir(SS, operation.GetWorkingDir());
TPath databasePath = DatabasePathFromModifySchemeOperation(SS, operation);
auto peerName = request.GetPeerName();

auto entry = TStringBuilder();
Expand Down

0 comments on commit 0921658

Please sign in to comment.