Skip to content

Commit 2bfcea6

Browse files
acelyc111tabokie
andcommitted
hook delete dir in encrypted env (facebook#334) (facebook#12)
apache/incubator-pegasus#1575 Cherry-pick from tikv@acc624f * hook delete dir in encrypted env * add a comment Signed-off-by: tabokie <xy.tao@outlook.com> Co-authored-by: Xinye Tao <xy.tao@outlook.com>
1 parent af7c654 commit 2bfcea6

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

encryption/encryption.cc

+10
Original file line numberDiff line numberDiff line change
@@ -539,6 +539,16 @@ Status KeyManagedEncryptedEnv::RenameFile(const std::string& src_fname,
539539
return s;
540540
}
541541

542+
Status KeyManagedEncryptedEnv::DeleteDir(const std::string& dname) {
543+
Status s = target()->DeleteDir(dname);
544+
if (!s.ok()) {
545+
return s;
546+
}
547+
// We don't use a dedicated `DeleteDir` function, because RocksDB already uses
548+
// `RenameFile` for both file and directory.
549+
return key_manager_->DeleteFile(dname);
550+
}
551+
542552
Env* NewKeyManagedEncryptedEnv(Env* base_env,
543553
std::shared_ptr<KeyManager>& key_manager) {
544554
std::shared_ptr<AESEncryptionProvider> provider(

include/rocksdb/encryption.h

+2
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,8 @@ class KeyManagedEncryptedEnv : public EnvWrapper {
9797
Status RenameFile(const std::string& src_fname,
9898
const std::string& dst_fname) override;
9999

100+
Status DeleteDir(const std::string& dname) override;
101+
100102
private:
101103
const std::shared_ptr<KeyManager> key_manager_;
102104
const std::shared_ptr<AESEncryptionProvider> provider_;

0 commit comments

Comments
 (0)